Google Summer of Code 2019 Final Report
- 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.
Work Done during GSoC period
- 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.
- 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.
- 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.
- 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.
TODO : Add Deeplinks for unique payment.
- 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.
TODO : Edit a standing instruction, and delete it.
- 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.
- Added filters and improved overall UI.
- 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.
- Disable self account transfer
- Fixed various app crash hotspots
- Disabled self account transfer
- Various other small fixes
My Overall Experience with the Mifos Initiative
- 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.
Future Work -
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.