Mifos Mobile Documentation Reference Guide
Table of Contents
Product Overview
Mifos Mobile is an Android-based self-service banking application that enables microfinance clients to access their financial accounts, perform transactions, and manage their banking relationships through their mobile devices.
Key Information
Platform: Android (Kotlin/Java)
Architecture: MVVM + Clean Architecture
Backend: Mifos X Self-Service API
Target Users: Microfinance clients, small business owners, rural banking customers
Repository: https://github.com/openMF/mifos-mobile
Core Features
Account Management
View account balances (Savings & Loan accounts)
Account details and statements
Transaction history with filters
Account summary dashboard
Transfer Services
Internal account transfers
Third-party transfers to beneficiaries
Transfer templates and scheduling
Transfer history and receipts
Beneficiary Management
Add/edit/delete beneficiaries
Beneficiary templates
Transfer limits management
Savings and loan account beneficiaries
Loan Services
View loan details and schedules
Loan application submission
Repayment schedule viewing
Loan withdrawal requests
Guarantor management
Profile & Settings
Update personal information
Change password
Notification preferences
Language settings
Security Features
Biometric authentication
PIN-based login
Session management
Secure API communication
Technical Architecture
Frontend (Android App)
├── Presentation Layer (Activities/Fragments)
├── Domain Layer (Use Cases/Business Logic)
├── Data Layer (Repositories/Network/Database)
└── Dependency Injection (Dagger/Hilt)
Key Technologies
Language: Kotlin
Architecture: MVVM + Clean Architecture
DI: Dagger Hilt
Network: Retrofit + OkHttp
Database: Room
UI: Material Design Components
Testing: JUnit, Espresso, Mockito
API Integration
Base URL:
https://tt.mifos.community/fineract-provider/api/v1/Authentication: Basic Auth
API Type: REST (Mifos X Self-Service)
Data Format: JSON
User Personas
Primary Users
Rural Farmers - Basic banking needs, limited tech literacy
Small Business Owners - Regular transactions, loan management
Urban Customers - Full feature usage, tech-savvy
User Journey
Registration → Account verification → Profile setup
Authentication → Dashboard access → Feature exploration
Banking Operations → Transactions → Account management
Support → Help resources → Customer service
Documentation Types
User Documentation
User Manual: Complete feature walkthrough with screenshots
Quick Start Guide: First-time user onboarding (5-minute setup)
Feature Tutorials: Step-by-step guides for each major feature
FAQ: Common questions and troubleshooting
Video Guides: Screen recordings for complex operations
Technical Documentation
Architecture Guide: System design, components, data flow
API Documentation: Self-service endpoints, authentication, examples
Database Schema: Local storage structure, entities, relationships
Integration Guide: Mifos X backend integration details
Performance Guide: Optimization, caching, offline capabilities
Business Documentation
Product Requirements: Features, user stories, acceptance criteria
Business Rules: Banking logic, validation rules, constraints
Compliance Guide: Security standards, regulatory requirements
Market Analysis: Target users, competitive landscape
Success Metrics: KPIs, analytics, performance indicators
Developer Documentation
Setup Guide: Development environment, dependencies, build process
Code Standards: Kotlin conventions, architecture patterns
Contributing Guide: PR process, code review, testing requirements
Release Guide: Build, deployment, app store publishing
Testing Guide: Unit, integration, UI testing strategies
API Endpoints Reference
Authentication
POST /self/authentication- User loginPOST /self/registration- New user registrationPOST /self/registration/user- Verify registration
Account Management
GET /self/clients/{clientId}/accounts- Get all accountsGET /self/clients/{clientId}/transactions- Transaction historyGET /self/clients/{clientId}/charges- Account charges
Transfers
GET /self/accounttransfers/template- Transfer templatesPOST /self/accounttransfers- Execute transferPOST /self/accounttransfers?type=tpt- Third-party transfer
Beneficiaries
GET /self/beneficiaries/tpt- List beneficiariesPOST /self/beneficiaries/tpt- Add beneficiaryPUT /self/beneficiaries/tpt/{id}- Update beneficiaryDELETE /self/beneficiaries/tpt/{id}- Delete beneficiary
Loans
GET /self/loans/{loanId}- Loan detailsGET /self/loans/template- Loan application templatePOST /self/loans- Submit loan applicationGET /self/loans/{loanId}/guarantors- Loan guarantors
Savings
GET /self/savingsaccounts/{accountId}- Savings detailsGET /self/savingsaccounts/template- Savings application templatePOST /self/savingsaccounts- Create savings account
Security & Compliance
Authentication Methods
Basic Authentication: Username/password for API calls
Biometric Authentication: Fingerprint/face recognition
PIN Authentication: 4-6 digit security PIN
Session Management: Token-based session handling
Data Security
Encryption: TLS 1.2+ for data transmission
Local Storage: Encrypted database storage
API Security: HTTPS only, secure headers
Privacy: No sensitive data in logs
Compliance Requirements
Financial Regulations: Local banking compliance
Data Protection: GDPR, local privacy laws
Security Standards: OWASP mobile security guidelines
Audit Trail: Transaction logging and monitoring
Deployment Information
Build Configuration
Minimum SDK: Android API 21 (Android 5.0)
Target SDK: Latest stable Android API
Build Tool: Gradle with Kotlin DSL
Signing: Release builds with keystore
Proguard: Code obfuscation for release
Distribution
Primary: Google Play Store
Secondary: Direct APK distribution
Updates: In-app update notifications
Rollout: Staged rollout strategy
Environment Configuration
Development: Local/staging server endpoints
Production: Live Mifos X server endpoints
Feature Flags: Remote configuration capabilities
Monitoring: Crash reporting and analytics
Support & Maintenance
User Support
In-App Help: Contextual help and tutorials
Contact Methods: Email, phone, chat support
Community: GitHub issues, user forums
Documentation: Online help center, FAQs
Technical Maintenance
Bug Tracking: GitHub Issues integration
Performance Monitoring: Crash analytics, performance metrics
Regular Updates: Monthly releases, security patches
Backup Strategy: Data sync with backend servers
Development Workflow
Version Control: Git with GitFlow branching
CI/CD: Automated testing and deployment
Code Review: Mandatory peer review process
Quality Assurance: Automated and manual testing
Quick Reference for Document Generation
Use this reference to generate specific documentation by expanding any section with detailed examples, screenshots, code snippets, and step-by-step instructions relevant to your target audience (users, developers, or business stakeholders).