* chore: Update web dependencies Updated the following dependencies: - Upgraded `enhanced-resolve` from 5.17.0 to 5.18.0 - Upgraded `karma` from 6.4.3 to 6.4.4 - Upgraded `kotlin-web-helpers` to 2.0.0 - Upgraded `mocha` from 10.7.0 to 10.7.3 - Upgraded `webpack` from 5.93.0 to 5.94.0 - Upgraded `ws` from 8.5.0 to 8.18.0 Removed the following dependencies: - `@types/eslint` - `@types/eslint-scope` Also, updated the multi-platform build and publish workflow to use `niyajali/mifos-mobile-github-actions` instead of `openMF/mifos-mobile-github-actions`. * ci: Update GitHub Actions workflow This commit updates the GitHub Actions workflows to: - Remove the pull request trigger from the `build-and-deploy-site` workflow. The workflow will now only be triggered manually or on a schedule. - Add `build_ios` as an input to the `multi-platform-build-and-publish` workflow to control whether the iOS app should be built. - Remove unused inputs from the `multi-platform-build-and-publish` workflow, including `publish_desktop` and `publish_web`. * chore: Add Fastlane lanes and update workflows This commit introduces new Fastlane lanes for Android and iOS: - **Android:** - `assembleDebugApks`: Assembles debug APKs. - `assembleReleaseApks`: Assembles release APKs using a keystore. - `bundlePlayStoreRelease`: Bundles a Play Store release, including generating a version and release notes. - `deploy_on_firebase`: Deploys the release APK to Firebase App Distribution. - `buildAndSignApp`: A private lane to build and sign the app with provided keystore credentials. - `generateVersion`: Generates and sets version information. - `generateReleaseNotes`: Generates release notes from git commits. - **iOS:** - `build_ios`: Builds the iOS app with optional configuration (defaults to Debug). - `increment_version`: Increments the build number using Firebase App Distribution's latest release. - `deploy_on_firebase`: Deploys the iOS app to Firebase App Distribution, including incrementing the build number. - `generateReleaseNotes`: Generates release notes from git commits. It also updates the following workflows: - **promote-to-production.yml**: Removes the manual trigger and workflow dispatch, making it only triggered by GitHub releases. - **tag-weekly-release.yml**: Updates the cron schedule to run weekly. - **multi-platform-build-and-publish.yml**: Switches back to using `openMF/mifos-mobile-github-actions` instead of `niyajali/mifos-mobile-github-actions`. Additionally, it relocates the keystore to a `keystores` directory, updates the `build.gradle.kts` file to reflect this change, and adds necessary metadata for the Play Store. It also updates the `AppFile` to use the playStorePublishServiceCredentialsFile from the secrets directory and adds a `secrets` directory to the `.gitignore`. * ci: Remove `publish_android` input from multi-platform workflow This commit removes the `publish_android` input from the `multi-platform-build-and-publish` workflow. This input was previously used to control whether the Android app should be published to the Play Store. Since this functionality is no longer required, the input has been removed to simplify the workflow configuration. * chore: Remove `repoName` param from `generateReleaseNotes` lane This commit removes the `repoName` parameter from the `generateReleaseNotes` lane in the Fastfile. The `repoName` parameter is no longer needed as the lane now automatically determines the repository name. This change simplifies the `generateReleaseNotes` lane and makes it more robust. |
||
|---|---|---|
| .github | ||
| .run | ||
| build-logic | ||
| config/detekt | ||
| core | ||
| docs | ||
| fastlane | ||
| feature | ||
| gradle | ||
| keystores | ||
| 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 project built on top of Apache Fineract API. Following recommended architecture and design patterns, the application is developed using the latest technologies and frameworks/libraries, such as Jetpack Compose, Ktor, Ktorfit, and Koin. It is designed to be cross-platform, supporting Android, iOS, Desktop, and Web platforms.
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
mifospasy-web-jsrun configuration and click Run. - iOS App: Select the
mifospay-iosrun configuration and click Run.
!Important] To run the iOS app, you must have a macOS device with Xcode installed. Currently, the `mifospay-web-wasm` app is not working as expected. We are working on it and it will be available soon.
Demo Credentials
- Fineract Instance:
venus.mifos.io - Username:
venus - Password:
Venus2023#
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.
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.
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 navigate to the latest release here, and download the APK file from the assets section.
Wiki
To know more about the project details and architecture guidelines, visit our Wiki.
Contributors
Special thanks to the incredible code contributors who continue to drive this project forward.