Skip to content

Instantly share code, notes, and snippets.

Last active February 23, 2022 15:47
  • Star 2 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save shiv07tiwari/acb5a7266fe685e8332498fd32b00bf0 to your computer and use it in GitHub Desktop.
GSoC'19 - The Mifos Initiative - Final Report

Google Summer of Code 2019 Final Report

1_pOBGFa_k7RN24LlnKcvE6Q (1)

Organization - The Mifos Initiative

Mentor - Naman Dwivedi

Project Summary

  • 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

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. receipt

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.

ph1 ph2

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.

merchant1 merchant2

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.

TODO : Add Deeplinks for unique payment.


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.

TODO : Edit a standing instruction, and delete it.


Sign Up Refractor Pull Request

  • Added password strength checker, alongside with better UI messages and password display option. signup

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.

Screenshot from 2019-08-22 03-52-47 Screenshot from 2019-08-22 03-52-57

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

  • 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment