An open-source mobile banking application powered by the Mifos Initiative, designed to enhance financial inclusion by providing unbanked and underbanked populations seamless access to banking services. It offers account management, loan applications and repayments, savings and deposits management, fund transfers, and transaction tracking through integration with the Mifos X backend via RESTful APIs.
Targeted primarily at emerging markets, Mifos-Mobile empowers users to conveniently manage finances, even in remote areas, while actively supported by a global community dedicated to extending and improving digital financial services.
The project is built on modern, cross-platform technologies ensuring scalability, maintainability, and performance.
Category | Technology / Framework | Purpose |
---|---|---|
Language | Kotlin (Multiplatform) | Shared business logic across Android, iOS, Desktop |
UI Framework | Compose Multiplatform, Jetpack Compose | Declarative UI for all platforms |
Architecture | MVI (Model-View-Intent) | Unidirectional state management with clear separation of concerns |
Networking | Ktor + Ktorfit | Type-safe HTTP client for API requests |
Asynchronous Handling | Kotlin Coroutines + Flows | Structured concurrency and reactive streams |
Dependency Injection | Koin | Lightweight DI framework for modular and testable code |
Database | Room (Multiplatform migration) | Local persistence and caching |
Serialization | Kotlinx Serialization | JSON parsing and serialization |
Image Loading | Coil | Efficient image loading and caching |
Barcode/QR Scanning | ML Kit | QR and barcode recognition |
Design System | Material 3 + Custom Mifos Design System | Consistent UI/UX across the app |
CI/CD | GitHub Actions | Automated builds, linting, and deployment |
Project Management | Jira + GitHub Projects | Issue tracking, sprint planning, progress tracking |
## π― Goals & Mid-Point Milestone
Goals
- Scheduled Payments β Allow users to schedule recurring payments and transfers.
- Transaction Categorization β Automatic categorization of expenses for better financial tracking.
- Redesign Dashboard with given Figma designs & Customizable Dashboard β Let users arrange and prioritize frequently used features.
- In-App Customer Support β Real-time chat and customer support for immediate user assistance.
- Cross-Platform Release β Launch the app on iOS and Desktop platforms.
## π Weekly Progress
Week | Dates | Focus Area | Key Deliverables | PRs Opened |
---|---|---|---|---|
1 | 1β6 Jun | Codebase exploration & Loan migration | Explored architecture, migrated loan feature, reviews | 1 |
2 | 7β13 Jun | Loan module (android-client) | Testing research, CMP migration | 2 |
3 | 14β20 Jun | Loan module (merge) | Finalized loan migration, design discussions | 1 |
4 | 21β27 Jun | Theming & Components | Setup theme/typography, created base components | 4 |
5 | 28 Junβ4 Jul | Auth Screens | Onboarding, Login, Status components | 3 |
6 | 5β11 Jul | Auth Flow + Sprint 1 | Signup, OTP, Password reset | 5 |
7 | 12β18 Jul | Sprint 2 start | Home dashboard, navigation fixes | 2 |
8 | 19β25 Jul | Sprint 2 | Passcode & Savings UI | 4 |
9 | 26 Julβ1 Aug | Sprint 2β3 | Account UIs & Loan modules | 8 |
10 | 2β8 Aug | Sprint 3β4 | Loan Apply, Transactions, Settings | 9 |
11 | 9β15 Aug | Sprint 5β6 | Loan product flows & docs upload | 5 |
12 | 16β22 Aug | Share & Transfers | Share account + Third Party transfer | 7 |
13 | 23-29 Augh | Clean up modules | Focused on loan module improvements, UI consistency, and authentication enhancements | 14 |
## π Detailed Weekly Progress
π Week 1 (1st β 6th June)
Summary
- Explored
openmf/mifos-mobile
codebase architecture (network, data, model, feature layers). - Studied Kotlin Multiplatform + Compose Multiplatform setup.
- Cross-referenced proposal deliverables with current architecture.
- Migrated loan feature in
android-client
. - Reviewed PRs: #2399, #2396
Pull Requests
- #2404 β feat(feature:loan): migrate to CMP
π Week 2 (7th β 13th June)
Summary
- Continued work on loan module migration in
android-client
. - Explored Unit/UI testing approaches.
- Reviewed PRs:
#2402,
#2403,
#2396,
#2394,
#2391,
#2369,
#2382
Pull Requests
π Week 3 (14th β 20th June)
Summary
π Week 4 (21st β 27th June)
Summary
- Setup theme and typography.
- Built first UI components.
- Collaborated with design team on mockups.
- Reviewed PRs:
#2418,
#2419,
#2416,
#2414,
#2413,
#2412,
#2411,
#2410
Pull Requests
π Week 5 (28th June β 4th July)
Summary
- Designed Onboarding language screen + logic in ViewModel.
- Built Login screen + logic in ViewModel.
- Designed Status component.
- Reviewed android-client PRs:
#2427,
#2425,
#2423,
#2422,
#2421,
#2420
Pull Requests
π Week 6 (5th β 11th July)
Summary
- Completed Sprint 1 Figma designs.
- Cleaned auth module.
- Reviewed PRs in android-client & mobile-wallet:
#2432,
#2429,
#2426,
#2428,
#2433,
#1878
Pull Requests
π Week 7 (12th β 18th July)
Summary
- Started Sprint 2 mockups.
- Fixed desktop build issue.
- Designed Home Dashboard + navigation fixes.
Pull Requests
π Week 8 (19th β 25th July)
Summary
- Continued Sprint 2 mockups.
Pull Requests
π Week 9 (26th Jul β 1st Aug)
Summary
- Completed Sprint 2 mockups, started Sprint 3.
Pull Requests
- #2870 β feat: account label card
- #2872 β feat: account details ui & viewModel
- #2875 β feat: update account ui & viewModel
- #2879 β feat: loan account ui & viewModel
- #2880 β refactor: bound dashboard services with screens
- #2883 β refactor: integrate savings transfer & deposit flow
- #2888 β feat: loan account summary
- #2892 β feat: loan repayment schedule
π Week 10 (2nd β 8th Aug)
Summary
- Completed Sprint 3β4 mockups.
- Progressed towards core goals (Figma, Transaction categorization, iOS/Desktop pipelines, Scheduled Payments).
Pull Requests
- #2897 β feat: complete loan apply flow with validation
- #2898 β feat: recent transactions
- #2901 β feat: qr code reader screen
- #2902 β refactor: beneficiary details for qr code generation
- #2903 β refactor: removed redundant card components
- #2904 β refactor: apis setup for receiving server messages
- #2906 β refactor: account top bar title
- #2910 β feat: settings ui
- #2914 β feat: logout
π Week 11 (9th β 15th Aug)
Summary
- Completed Sprint 5β6 mockups.
Pull Requests
π Week 12 (16th β 22nd Aug)
Summary
- Completed Third Party Transfer & Share account application flow.
Pull Requests
- #2937 β chore: remove unused modules
- #2938 β feat: savings application & enhance home navigation
- #2939 β refactor: home dashboard internet handling
- #2940 β refactor: logout dialog
- #2941 β feat: fill savings application
- #2942 β feat: share application details
- #2943 β feat: additional details for share account application
- #2944 β feat: third party transfer ui & viewModel
π Week 13 (23rd β 29th Aug)
Summary
- Focused on loan module improvements, UI consistency, and authentication enhancements.
- Fixed multiple Android build issues and updated theme support.
Pull Requests
- #2947 β refactor: made remarks field mandatory & enhance state handling
- #2948 β refactor: text field
- #2949 β refactor: rounding amount to decimals
- #2950 β refactor: loan repayment schedule with prepopulated data
- #2951 β refactor: use first name instead of username for better readability
- #2952 β refactor(loan): show consistent loan actions for all account statuses
- #2953 β refactor: make middle name optional
- #2954 β refactor: navigation after transfers, update, withdraw
- #2955 β refactor: make transfer handling
- #2956 β feat: updating theme
- #2957 β refactor: auth module with loading animation
- #2959 β refactor(loan-application): dialogs
- #2960 β fix: android build
- #2962 β fix: android build
- Migration to Kotlin Multiplatform and Compose Multiplatform.
- Designing modular UI with Figma β Compose MVI workflow.
- Implementing end-to-end banking features (loan, savings, share, transfers).
- Writing cross-platform auth, onboarding, and navigation flows.
- Improving developer experience with refactors & CI/CD pipelines.
π This is a living blog β progress updates are continuously added. Click on the βΈ arrow buttons above to view weekly details.