| .github | ||
| .run | ||
| build-logic | ||
| config/detekt | ||
| core | ||
| docs | ||
| fastlane | ||
| feature | ||
| gradle | ||
| kotlin-js-store | ||
| libs/mifos-passcode | ||
| mifospay-android | ||
| mifospay-desktop | ||
| mifospay-ios | ||
| mifospay-shared | ||
| mifospay-web | ||
| scripts | ||
| spotless | ||
| .editorconfig | ||
| .gitignore | ||
| build.gradle.kts | ||
| ci-prepush.bat | ||
| ci-prepush.sh | ||
| compose_compiler_config.conf | ||
| Dockerfile | ||
| Gemfile | ||
| Gemfile.lock | ||
| generateModuleGraphs.sh | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
Mobile Wallet
Mobile Wallet is an Kotlin Multiplatform (KMP)-based framework for mobile wallets based on top of Fineract. The app follows clean architecture and contains a core library module that can be used as a dependency in any other wallet based project. It is developed at MIFOS together with a global community.
Run the Project
- Android App: Select the
mifospay-androidrun configuration and click Run. - Desktop App: Select the
mifospay-desktoprun configuration and click Run. - Web App (JavaScript): Select the
mifospay-web-jsrun configuration and click Run.
KMP Status for modules
| Module | Progress | Desktop supported | Android supported | iOS supported | Web supported(JS) | Web supported(WASM-JS) |
|---|---|---|---|---|---|---|
| mifospay-android | Done | ✅ | ✅ | ❔ | ✅ | ❔ |
| mifospay-desktop | Done | ✅ | ✅ | ❔ | ✅ | ❔ |
| mifospay-web | Done | ✅ | ✅ | ❔ | ✅ | ❔ |
| mifospay-ios | NO OP | ❌ | ❌ | ❌ | ❌ | ❌ |
| :core:analytics | Done | ❌ | ✔️ | ❔ | ❌ | ❔ |
| :core:common | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :core:data | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :core:datastore | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :core:datastore-proto | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :core:designsystem | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :core:domain | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :core:model | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :core:network | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :core:ui | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:auth | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:editpassword | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:faq | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:history | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:home | Done | ✅ | ✅ | ❔ | ✅ | ❌ |
| :feature:profile | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:settings | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:payments | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:finance | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:account | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:invoices | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:kyc | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:make-transfer | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:merchants | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:notification | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:qr | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:receipt | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:request-money | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:saved-cards | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:send-money | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:standing-instruction | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
| :feature:upi-setup | Done | ✅ | ✅ | ❔ | ✅ | ✅ |
✅: Functioning properly
❔: Not yet tested, but expected to work
✔️: Successfully compiled
❌: Not functioning, requires further attention
⚠️ Notice:
We are fully using Jetpack Compose and are now in the process of converting to support Kotlin Multiplatform.
Contributions are welcome in the following areas:
- Development and enhancements related to Kotlin Multiplatform.
- Logical changes or improvements in existing Jetpack Compose-based features.
We appreciate your contributions and look forward to collaborating with you!
| Development | Chat |
|---|---|
Join Us on Slack
Mifos boasts an active and vibrant contributor community, Please join us on slack. Once you've joined the mifos slack community, please join the #mobile-wallet channel to engage with mobile-wallet development. If you encounter any difficulties joining our Slack channel, please don't hesitate to open an issue. This will allow us to assist you promptly or send you an invitation.
How to Contribute
Thank you for your interest in contributing to the Mobile Wallet project by Mifos! We welcome all contributions and encourage you to follow these guidelines to ensure a smooth and efficient collaboration process.
The issues should be raised via the GitHub issue tracker. For Issue tracker guidelines please click here. All fixes should be proposed via pull requests. For pull request guidelines please click here. For commit style guidelines please click here.
Branch Policy
For development, always pull the dev branch, as all contributions and updates are pushed here. Once development is complete, changes are merged into the master branch, which contains stable and bug-free code.
To know more about branch policies, click here.
Demo credentials
Fineract Instance: demo.mifos.io
Username: venus
Password: Venus2023#
Development Setup
To learn about the development setup, please visit the following link:
Development Setup Guide
Committing Your Changes
Once you make changes in your local repository, you need to commit them to your GitHub repository.
Don't know how to commit? Click here to learn more.
Making a Pull Request
After pushing your changes to your forked repository, you can create a pull request to propose merging your changes into the main project.
Don't know how to create a pull request? Click here to learn more.
Squashing Your Commits
To maintain a clean and organized Git history, it is recommended to squash your commits before merging.
Don't know how to squash commits? Click here to learn more.
Solving Merge Conflicts
Sometimes, your pull request may encounter merge conflicts that need to be resolved manually.
Don't know how to resolve merge conflicts? Click here to learn more.
Conclusion
By following these contribution guidelines, you're all set to start contributing to the Mobile Wallet (Mifos Pay) project. We appreciate your efforts and look forward to your valuable contributions. Happy coding!
Instructions to get the latest APK
To get the latest apk fom the Github actions artifacts, follow these steps:
- Navigate to the Actions tab of this repository.
- Click the latest workflow from the workflows list.
- Scroll down to the Artifacts section and click the mobile-wallet hyperlink.
- After successful download, extract the zip file to your preferred location.
Wiki
To know more about the project, visit our Wiki.
Screenshots
| OS | Image | More Images |
|---|---|---|
| Android | Load More | |
| iOS | Load More | |
| Windows | Load More | |
| Linux | Load More |
Contributors
Special thanks to the incredible code contributors who continue to drive this project forward.