Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Info

The Mifos Initiative was accepted as a mentoring org for the 2024 Google Summer of Code. We are continuing to update and refine our list of ideas and assigned mentors. Attend our AMA on March 7 at 1500GMT. Applications open up on March 18. 

...

Mentors

Rajan Maurya Avinash Vijayvargiya

Length

Large - 350 hours

Category

Mobile - Mifos X | Core Development

Overview & Objectives

2024 development will focus on refining our current Mobile Wallet to be a strong reference implementation of feature-rich and secure mobile wallet application for G2P use cases. While our mobile wallet is a powerful tool for all fintechs and financial institutions, we want to powerfully and simply demonstrate the ability for governments to disburse G2P Payments to highly functional mobile wallet and then be able to transact with that wallet by paying for bills, sending transfers, and paying for goods and services via merchants. We provide a reference mobile wallet application for consumers and merchants that has been developed by our Google Summer of Code interns from 2017 to 2023. The mobile wallet provides an extensible mobile wallet framework to support the basic use cases of a mobile wallet as documented in the Level One Project mobile wallet requirements. This extensible framework should support both merchant and client use cases as well as be capable of integrating with a Fineract back-end

Over time, we would like Mifos X to be more generically a wallet management system and this reference application is a powerful tool to support that. 

Description

The initial mobile wallet framework along with 2 reference apps, PixieCollect and MifosPay, were developed in 2017. Later we decided to continue with MifosPay application only which as mentioned uses the mobile wallet framework.

In 2019, these functionalities were extended further by Shivansh including improving user experience and redesigning the app, support for Kotlin, integration with two Mojaloop transaction flows via the Paymeht Hub, adding improving Deeplinks, support for standing instructions and more well-rounded support for merchant transactions.

In 2020, Devansh Aggarwal further added complete support for standing instructions, integrated with Fineract CN for core use cases by mapping Fineract back-office APIs to Fineract CN APIs, added multi-theme support, completed integration with Payment Hub EE, added support for Hover, and converted Java code to Kotlin (in progress). For more details refer this

In 2021, Kinar Sharma, worked on developing a new multiplatform mobile wallet application using Kotlin multi-platform. This new application consumes FineractCN APIs and is built upon clean architecture. Kinar completed the data, domain and presentation layer (only for Android) for usecases available in FineractCN.

In 2022, Prashant Singh continued to evolve the app.

In 2023, Rachit focused on refining the architecture, streamlining the design and implementing some of the G2P use cases.

In 2024, we are targeting to make production-ready our cases for G2P, update dependencies, consume more uniformly our SDKs fix pending issues and introduce new features. Functional enhancements include:

  • Integrate latest version of Payment Hub EE

  • Integrate Mifos' notifications framework to provide support for usecases like merchant request to pay.

  • Incorporate Mifos' new design library

  • Migrate xml to Jetpack compose

  • Basic implementation of multi-platform

  • Implemented Playstore release github action pipeline

  • Update wallet framework to be make use of Mifos' Android SDK

  • Complete migration of Java code to Kotlin

  • Improving the security framework to integrate more seamlessly with middlewares, API gateway, and identity management software

  • Exploring proof of concept architecture or redesigns to align with movements like the Open Wallet Foundation.

Helpful Skills

Android development, Java, Kotlin, Jetpack compose, Rest, SQL, Git

Impact

By providing an extensible mobile wallet framework, allow partners a complete reference stack of back and front-end applications to offer digital financial services to clients.

Other Resources

2023 Mobile Wallet Final Report: https://docs.google.com/document/d/1xHDVzmxuBj5KA0vHiJS_UGrs0Zb6IrpqwRmSdW3uExM/edit#heading=h.h4y8eq18ezr9

2020 Mobile Wallet Progress: https://gist.github.com/devansh-299/e2041c07d9ab55a747391951e9090df4

Mobile Wallet Framework: Source Code | Issue Tracker | Gitter Chatroom | Slack

See https://openmf.github.io/mobileapps.github.io/

...

Mentors

Victor Romero

Length

Large - 350 hours

Category

Mobile/Platform

Overview & Objectives

We currently have a self-service API layer which is valuable for demonstrating customer-facing actions that can be performed via mobile banking and online banking apps but these APIs were not intended for deployment in a live productino environment and are being deprecated for a more secure option.


This project would focus on building out the self-service middleware SDK for Apache Fineract by defining a subset of the APIs to secure expose such that external users can inititate transactions and interact with accounts within Finerat.

Some of these effort will also align with previous efforts around Open Banking APIs. Across our ecosystem we're seeing more and more adoption and innovation from fintechs. A huge democratizing force across the financial services sector is the Open Banking movement providing Open Banking APIs to enable third parties to directly interact with customers of financial institutions. We have recently started providing an Open Banking API layer that will allow financial institutions using Mifos and Fineract to offer third parties access to requesting account information and initiating payments via these APIs. Most recently the Mojaloop community, led by Google, has led the development of a centralized PISP API.  We have chosen to the folow the comprehensive UK Open Banking API standard which is being followed and adopted by a number of countriues through Sub-Saharan Africa and Latin America. 

Tremendous impact can be had at the Base of the Pyramid by enabling third parties to establish consent with customers authorize transactions to be initiated or information to be accessed from accounts at their financial institution. This  Open Banking API layer would enable any instituion using Mifos or Fineract to provide a UK Open Banking API layer  to third parties and fintechs.  

 The API Gateway to connect to is still being chosen (WS02, Gravitee, etc.)

Description

In 2024, Intern would need to follow the existing architectural patterns of our SDKs and clients, and design a new one that exposes the appropriate APIs using coroutines and publishes them in a secure manner. The APIs that are consumed by the mobile banking applications have been documented in the spreadsheet below. The APIs have also been categorized according to whether they are an existing self-service API or back-office API and if they have an equivalent Open Banking API and if so, a link to the corresponding Open Banking API.

For example: 

Sample APIs to be Documented

-------------------------------------------

Mifos Mobile API Matrix (completed by Ashwin)

https://docs.google.com/spreadsheets/d/1gR84jZzLF-mM0iRw5JyeMAsHMK6RQPK0vyDmNAY9VhE/edit#gid=0

MIfos Mobile API Matrix (completed by Shivangi)

https://docs.google.com/spreadsheets/d/1exTv68v1IW_ygS7mSj0_ySFWGTj06NcxPZeNLjNIy6Y/edit?pli=1#gid=0

Helpful Skills

Android development, SQL, Java, Javascript, Git, Spring, OpenJPA, Rest, Kotlin, Gravitee, WSO2

Impact

By providing a secure middleware layer we can enable both trusted first party apps to allow customers to autheniticate and access their accounts as well as an API layer for third party fintechs to securely access FIneract and request information or initiate transactions with the consent of customers.

Other Resources

CGAP Research on Open Banking: https://www.cgap.org/research/publication/open-banking-how-design-financial-inclusion

Docs: https://mifos.gitbook.io/docs/wso2-1/setup-openbanking-apis

Self-Service APIs: https://demo.mifos.io/api-docs/apiLive.htm#selfbasicauth

Open Banking Adapter: https://github.com/openMF/openbanking-adapte

    • Transforms Open Banking API to Fineract API

    • Works with both Fineract 1.x and Fineract CN

    • Can connect to different API gateways and can transform against different API standards.

Reference Open Banking Fintech App:

Google Whitepaper on 3PPI: https://static.googleusercontent.com/media/nextbillionusers.google/en//tools/3PPI-2021-whitepaper.pdf

UK Open Banking API Standard: https://standards.openbanking.org.uk/

Open Banking Developer Zone: https://openbanking.atlassian.net/wiki/spaces/DZ/overview

Examples of Open Banking Apps: https://www.ft.com/content/a5f0af78-133e-11e9-a581-4ff78404524e

See https://openmf.github.io/mobileapps.github.io/

...

Mentors

Aleksandar Vidakovic

Length

Large - 350 hours

Category

UI, Mobile

Overview & Objectives

This project would extend up on existing efforts to create a micro front-end approach for our UIs. As the userbase for Mifos/Fineract extends beyond just microfinance and financial inclusion we need to enable developers to easily build front-end user experiences that align with the wide variety of back-end use cases supported by our platform being used by MFIs, credit unions, banks, fintechs and governments. Additionally, many of the flow and screens used by staff as well as customers are common across mobile and web application.

Description

This project would aim build both the micro front-end framework and set of UI components that can be deployed as individual flows or end to end applications across both web and mobile. Recently emerging is the Compose Multiplatform which extends Jetpack Compose to work beyond just mobile devices.

The current standard UI for Fineract is still the Web App which is the only one that covers 100% of the feature set. While based on Angular and more modern than our previous Community App, the project hard to maintain and - apart from the occasional color change - hard to customize let alone integrate in other web applications. Developers should be able to pick any number of standalone components and integrate them in custom UI projects (where Fineract is one among multiple backends). All Fineract UI components should be published for easy consumption by other developers.

Documentation of the project could follow latest best practices (aka “Storybook”)

Tooling should help with consistency and reduce handwritten code as much as possible. Using Monorepos is strongly suggested.

Helpful Skills

JS, Android, Angular, E2E testing, Cucumber

Impact

Other Resources

OpenG2P  - Digital Identity Proof of Concept with MOSIP (GovTech)

Mentors

Ed Cable Avik Ganguly Paras Dhama

Length

Large - 350 hours

Category

Platform & Modules - Digital ID, Exploratory, Bleeding Edge

Overview & Objectives

Digital Identity is a pressing topic and for both generations of Fineract (1.x and CN), we'd like to have integration with emerging KYC and digital identity solutions.

KYC (Know your customer) is a fundamental banking concept. It refers to the process of identifying a new customer at the time of account opening, in compliance with law and regulation. The identification requirements may be lower for low value accounts ("Tiered KYC"). The term is also used in connection with regulatory requirements for a provider to understand, on an ongoing basis, who their customer is and how they are using their account. Most of the banks are mandated to perform basic/extensive KYC, before they can serve their customers.

Traditionally KYC is done in a centralised fashion where a central agency has the control over all the data. For example consider each bank like SBI, Deutsche, JP Morgan, etc. when creating a bank account, each of them requires a separate KYC process to be completed and all this data gets stored in their respective databases. Even the systems like Aadhar or social security number, etc. have the data stored in a central manner and maintained by the government. However, in recent times all these centralised identity servers continue to be hacked and the important and private data being stolen regularly.

Omidyar Network along with Gates Foundation have developed the MOSIP project which provides an open source digital ID platform. Integration between Mifos along with Mojaloop can provide an end to end reference architecture for a digital cash transfer system built on open source digital public goods. 

  • Decentralised system means that no one person has control over sensitive data.

  • It enables the re-use of KYC, i.e. each financial institution or in our case each customer using Fineract may not have to perform its own complete KYC, but re-use the KYC already performed by others (those who have the power as issuing authority for any kind of claim).

  • Cryptographic security is the heart of blockchain technologies enhancing privacy.

  • Claim-based system where the end user/customer has the control over his data.

Description

Integration between Mifos/Fineract and digital identity systems and KYC protocols could be deepened. This project would focus on an initial proof of concept integration with MOSIP APIs for digital identity including

  • ID Repository

  • ID authentication

  • Biometric Integration 

  • Registration 

Registering a client with a MOSIP-powered Digital Identity in a Fineract system and verifying that digital identity to perform transactions. 

Helpful Skills

HTML, Spring, Hibernate, REST, Java, AngularJS, Javascript, SQL, 

MOSIP 

Impact

Other Resources

...