* Refactor: Migrate to fastlane for android & ios firebase app distribution This commit migrates the Android and iOS Firebase app distribution process to use Fastlane. - Removed the custom Gradle task for Firebase app distribution. - Removed the firebase appdistribution plugin from the project. - Implemented `android deploy_on_firebase` Fastlane lane for Android Firebase app distribution. - Implemented `ios deploy_on_firebase` Fastlane lane for iOS Firebase app distribution. - Updated the internal release workflow to trigger the Fastlane lanes. - Updated documentation to reflect the changes. - Updated the weekly schedule workflow to trigger the new workflow for internal release. * Added Documentation & Comments |
||
|---|---|---|
| .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 | ||
| .ruby-version | ||
| 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 a Kotlin Multiplatform (KMP)-based application for mobile wallets built 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.
Demo Credentials
- Fineract Instance: demo.mifos.io
- Username:
venus - Password:
Venus2023#
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
The project fully utilizes Jetpack Compose with complete support for Kotlin Multiplatform.
We invite contributions in the following areas:
- Development of new features and enhancements using Kotlin Multiplatform.
- Improvements and refinements to existing Jetpack Compose-based functionalities.
We appreciate your contributions and look forward to collaborating with you!
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 purposes, always pull from the dev branch, as all contributions and updates are merged into this branch. Upon completion of development, changes are subsequently merged into the master branch, which represents the stable and bug-free version of the code.
For more detailed information about the branch policies, please refer to the Branch Policy.
Development Setup
Please refer to the Development Setup Guide for detailed instructions on configuring the development environment.
Committing Your Changes
After making changes in your local repository, you will need to commit them to your GitHub repository.
If you are unfamiliar with the process of committing changes, please refer to the Committing Your Changes guide.
Making a Pull Request
Once your changes have been pushed to your forked repository, you can create a pull request to propose integrating your updates into the main project.
For guidance on creating a pull request, please visit the Making a Pull Request guide.
Squashing Your Commits
To ensure a clean and organized Git history, contributors are encouraged to squash their commits before merging.
Instructions on how to squash commits can be found in the Squashing Your Commits guide.
Resolving Merge Conflicts
Occasionally, merge conflicts may arise when your pull request is being reviewed. These conflicts need to be resolved manually.
To learn how to resolve merge conflicts, please refer to the Solving Merge Conflicts guide.
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 download the latest APK from the GitHub Actions artifacts, follow these steps:
Step 1: Access the Actions Tab
- Navigate to the Actions Tab of this repository.
Step 2: Select the Latest Workflow
- Click on the most recent workflow from the workflows list.
Step 3: Locate the Artifacts Section
-
Scroll down to the Artifacts section, where you will find:
- Android APKs
- Linux-App
- MacOS-App
- Windows-Apps
-
Download all the available zip files.
Step 4: Extract the Files
- After downloading the files, extract the zip archives to your preferred location.
Step 5: Install the Application
- Open the extracted files and install the application on your device.
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.