Organization - The Mifos Initiative
Project Title - Mobile Wallet - Android App Version 3.0
Mentor - Naman Dwivedi
- Mobile Wallet is an Android-based framework for mobile wallets based on top of Fineract. The app follows the clean architecture and contains a core library module that can be used as a dependency in any other wallet based project.
- During this period, I worked on enabling merchant transactions, integrating the mobile wallet with two Mojaloop payment workflows and Mojaloop, deeper integration with Fineract 1.0, creating standing instructions, adding Kotlin support, adding and improving Deeplinks, redesign the app and improvement of user experience.
Redesign Receipt View Pull Request
- Initially, the payment receipt was a typical receipt view, missing a lot of details. It is improved and PDF downloading is made optional. Also added use case to fetch a transaction using transaction ID.
Integrating Payment Hub and Mojaloop Pull Request
- This enables us to make transactions across any two accounts connected via Mojaloop switch, of which it enables transactions across two different Fineract instances. It was initially not possible.
- It supports two distinct use cases for Mojaloop, peer to peer transfer via MSISDN and merchant payment via dynamic QR code
- User can generate and scan QR with amount to start a transfer.
- User can also pay using MSISDN or IBAN unique identifiers.
Enabling Merchant Transaction Pull Request
- Now, the user can see the Merchant VPA's, initiate a transaction and see the transaction history. A major issue was that ThreadPoolExecuter gave RejectedExecutionException when it was out of space. Created a custom blocking queue so as to prevent the same.
Add and Improve DeepLinks Pull Request
- Added and improved deeplink support for the app. The app contains deeplinks for receipt and invoices, contains error handling in case of invalid deeplink, and auth handling in case the user has not yet entered his passcode.
Create New Standing Instruction Pull Request
- Standing Instructions allow user to create a periodic transaction schedule with a client. Now, user can create a new standing instruction and see the existing standing instructions.
Sign Up Refractor Pull Request
QR Code refractor and amount add option Pull Request
- Changed code for QR decoding. Added Error handling.
- Added a new option to add amount in the QR.
- Share QR and pick QR from local storage.
UI improvements in History Fragment Pull Request
- Added filters and improved overall UI.
Improved User Experience Pull Request
- Tap to reveal for the account balance.
- Search bar in Merchant and Card fragment.
- History button works on Home Screen.
- Flashlight in QR Scanner.
- Added minor animations.
- Removed unnecessary progress bars and empty snackbars.
Minor Bug Fixes Pull Reuest
- Disable self account transfer
- Fixed various app crash hotspots
- Disabled self account transfer
- Various other small fixes
- My overall experience with The Mifos Initiative during this Google Summer of Code has been amazing. I would like to thank Ed Cable, Naman Dwivedi and all other mentors for guiding me throughout this journey and patiently clearing my doubts. I loved the way we, as a community interacted and learned with each other, especially through the active mailing lists and weekly meetings.
- I think a lot of work is yet to be done in the Mobile Wallet. I am really looking forward to keep contributing and working with the community post GSoC.
I would love to work on the following features in future -
- Integrating with mobile money via USSD and the Hover SDK
- Integration with forthcoming API gateway.
- Various other features as per the community requirement.