A reference implementation of Mifos platform wallet and payment capabilities
Go to file
Sk Niyaj Ali f0d3d72e05
chore(actions): Migrated Android & iOS Workflows to use Fastlane (#1841)
* 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.
2024-12-30 22:24:06 -05:00
.github chore(actions): Migrated Android & iOS Workflows to use Fastlane (#1841) 2024-12-30 22:24:06 -05:00
.run chore: Updated Readme (#1834) 2024-12-11 09:46:15 -05:00
build-logic chore: Update dependencies and remove READ_CONTACTS permission 2024-12-24 13:51:06 +05:30
config/detekt Feat - Enabled Firebase App Distribution & Updated App Icon (#1817) 2024-11-20 17:34:35 -05:00
core chore(docs): Updated module graph (#1840) 2024-12-30 18:04:31 +05:30
docs Readme Updated (#1818) 2024-11-23 16:51:27 -05:00
fastlane chore(actions): Migrated Android & iOS Workflows to use Fastlane (#1841) 2024-12-30 22:24:06 -05:00
feature chore(docs): Updated module graph (#1840) 2024-12-30 18:04:31 +05:30
gradle chore: Update dependencies and remove READ_CONTACTS permission 2024-12-24 13:51:06 +05:30
keystores chore(actions): Migrated Android & iOS Workflows to use Fastlane (#1841) 2024-12-30 22:24:06 -05:00
kotlin-js-store chore: Updated Web Dependencies (#1839) 2024-12-24 17:07:46 +05:30
libs/mifos-passcode Merge kmm-impl into dev (#1813) 2024-11-06 10:22:46 -05:00
mifospay-android chore(actions): Migrated Android & iOS Workflows to use Fastlane (#1841) 2024-12-30 22:24:06 -05:00
mifospay-desktop chore(docs): Updated module graph (#1840) 2024-12-30 18:04:31 +05:30
mifospay-ios Ios,web,dev testing (#1830) 2024-12-07 14:53:07 -05:00
mifospay-shared chore(docs): Updated module graph (#1840) 2024-12-30 18:04:31 +05:30
mifospay-web chore(docs): Updated module graph (#1840) 2024-12-30 18:04:31 +05:30
scripts Merge kmm-impl into dev (#1813) 2024-11-06 10:22:46 -05:00
spotless Refactor - [:feature:make-transfer] Applied Spotless & Detekt Compose Rules (#1724) 2024-08-11 13:36:53 -04:00
.editorconfig Refactor - [:feature:make-transfer] Applied Spotless & Detekt Compose Rules (#1724) 2024-08-11 13:36:53 -04:00
.gitignore chore(actions): Migrated Android & iOS Workflows to use Fastlane (#1841) 2024-12-30 22:24:06 -05:00
.ruby-version chore: Fixed Fastlane & Firebase App Distribution Workflow (#1822) 2024-11-27 15:19:31 +05:30
build.gradle.kts Refactor: Migrate to fastlane for android & ios firebase app distribution (#1824) 2024-11-29 16:32:03 -05:00
ci-prepush.bat Merge kmm-impl into dev (#1813) 2024-11-06 10:22:46 -05:00
ci-prepush.sh Merge kmm-impl into dev (#1813) 2024-11-06 10:22:46 -05:00
compose_compiler_config.conf fix: implement material theme 2024-03-24 19:14:21 -04:00
Dockerfile fix: update Dockerfile 2024-01-20 17:52:03 -05:00
Gemfile chore: Fixed Fastlane & Firebase App Distribution Workflow (#1822) 2024-11-27 15:19:31 +05:30
Gemfile.lock Refactor: Migrate CI to Use Github Actions 2024-12-17 15:49:05 +05:30
generateModuleGraphs.sh fix: generate README and dep graph 2024-05-20 13:30:11 -04:00
gradle.properties feat: Final KMM Clean Up (#1814) 2024-11-18 22:17:00 -05:00
gradlew initial mvp-clean project 2017-06-16 22:53:21 +05:30
gradlew.bat initial mvp-clean project 2017-06-16 22:53:21 +05:30
LICENSE feat: Final KMM Clean Up (#1814) 2024-11-18 22:17:00 -05:00
README.md Updated Wiki links 2024-12-13 03:20:31 +05:30
settings.gradle.kts fix: Fixed Desktop Build & Added Firebase App Distribution (#1816) 2024-11-19 12:17:20 -05:00

Frame 9 (2)

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.

Kotlin Kotlin Multiplatform Compose Multiplatform

badge-android badge-ios badge-desktop badge-js

PR Checks Join the chat at https://mifos.slack.com/

Run the Project

Screenshot (154)

  • Android App: Select the mifospay-android run configuration and click Run.
  • Desktop App: Select the mifospay-desktop run configuration and click Run.
  • Web App (JavaScript): Select the mifospasy-web-js run configuration and click Run.
  • iOS App: Select the mifospay-ios run 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.

mobile wallet contributors

Back To Top