Versions Compared

Key

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

Mifos Initiative has been accepted as a mentoring org for GSOC 2022.

Info

Mifos has been accepted as a mentor organization for the 2022 Google Summer of Code. Please engage with the community via our mailing lists, slack, and gitter. Stay tuned for ongoing changes and refinement to our list of ideas and mentors.

Get Stoked - End Poverty. One Line of Code at a Time.

...

Mentors

Naman Dwivedi Avik Ganguly

Length

Large - 350 hours

Category

Mobile/Platform

Overview & Objectives

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 UIk 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

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 each API with an equivalent Open Banking API, the interns must: Take rest api, upload swagger definition, do transformation in OpenBanking Adapter, and publish on API gateway.

For back-office and/or self-service APIs with no equivalent Open Banking API, the process is: Take rest api, upload swagger definition, and publish on API gateway.

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 standard UK Open Banking API layer we can provide both a secure way for our 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

Naman Dwivedi Avik Ganguly Garvit Agarwal

Length

Large - 350 hours

Category

Mobile/Platform | Exploratory

Overview & Objectives

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 UIk 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

This project focues on Mifos Mobile CN, our mobile banking app  on top of Fineract CN - no self-servcie APIs exist yet, only back-office ones. 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 each API with an equivalent Open Banking API, the interns must: Take rest api, upload swagger definition, do transformation in Open Banking Adapter, and publish on API gateway.

For back-office and/or self-service APIs with no equivalent Open Banking API, the process is: Take rest api, upload swagger definition, and publish on API gateway.

For example: 

Sample APIs to be Documented

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

Mifos Mobile CN API Matrix (completed by Garvit)

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

https://docs.google.com/document/d/15LbxVoQQRoa4uU7QiV7FpJFVjkyyNb9_HJwFvS47O4I/edit?pli=1#

Mobile Wallet API Matrix (completed by Devansh)

https://docs.google.com/spreadsheets/d/1VgpIwN2JsljWWytk_Qb49kKzmWvwh6xa1oRgMNIAv3g/edit#gid=0


Helpful Skills

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

Impact

By providing a standard UK Open Banking API layer we can provide both a secure way for our 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

Naman Dwivedi Avik Ganguly Devansh Aggarwal

Category

Mobile/Platform

Overview & Objectives

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 UIk 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

This project focues on Mifos Mobile CN, our mobile banking app  on top of Fineract CN - no self-servcie APIs exist yet, only back-office ones. 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 each API with an equivalent Open Banking API, the interns must: Take rest api, upload swagger definition, do transformation in Open Banking Adapter, and publish on API gateway.

For back-office and/or self-service APIs with no equivalent Open Banking API, the process is: Take rest api, upload swagger definition, and publish on API gateway.

For example: 

Sample APIs to be Documented

Mobile Wallet API Matrix (completed by Devansh)

https://docs.google.com/spreadsheets/d/1VgpIwN2JsljWWytk_Qb49kKzmWvwh6xa1oRgMNIAv3g/edit#gid=0

Helpful Skills

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

Impact

By providing a standard UK Open Banking API layer we can provide both a secure way for our 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

Naman Dwivedi Avik Ganguly Devansh Aggarwal

Category

Mobile/Platform

Overview & Objectives

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 UIk 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

This project focues on Mifos Mobile CN, our mobile banking app  on top of Fineract CN - no self-servcie APIs exist yet, only back-office ones. 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 each API with an equivalent Open Banking API, the interns must: Take rest api, upload swagger definition, do transformation in OpenBanking Adapter, and publish on API gateway.

For back-office and/or self-service APIs with no equivalent Open Banking API, the process is: Take rest api, upload swagger definition, and publish on API gateway.

For example: 

Sample APIs to be Documented

These are for the mobile banking app but they effectively provide the same functionality. 

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, Angular

Impact

By providing a standard UK Open Banking API layer we can provide both a secure way for our 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

Rahul Goel Manthan Surkar Aleksandar Vidakovic

Category

Platform, Core Development

Overview & Objectives

Mifos X and Apache Fineract is widely used by financial institutions of all different sizes and methodologies around the world. With that widespread user base there is a vast array of different processes and procedures that would like to be supported as slight modifications over the common functionality provided. Over the past several years, we have captured these minor enhancements in our issue tracker as feature requests. Also included in this backlog or additional minor and less critical bugs that have been reported but have not been fixed yet.  This backlog has grown and it would be a very impactful project for an intern to work on completing as many of these bug fixes and minor enhancement as possible.

The difficult level of these issues ranges from low to higher and touch all componets of the platform - most don't require too much domain knowledge but some will. 

There are ~600 open issues for Apache Fineract; our JIRA Dashboard is a nice way to get an overview.

Your mission for this project, should you choose to accept it, is to reduce the number of open issues. The work required to do so will range from trivial old issues that are stale which you can close after doing some initial triage, to fascinating work required on both the functional as well as the technical side of our community to drive down the count of our open bugs.

This project is ideal to share among several GSOC participants, possibly in combination with other projects listed below.

Description

We have groomed the backlog and tagged issues and feature requests that are relevant for this project with the labels gsoc and/or Volunteer.  Priority level of tasks is measured by p1 being the highest priority. Tasks with an assigned fix version of 1.7.0 have a higher priority. 

There are more than 120 tickets in the saved filter. You are not expected to complete all of the tasks in the backlog but throughout the internship you should fix as many issues/feature requests as possible. You will work with your mentor to deliver a plan for each sprint and adjust velocity as you get scaled up.

Issues to be worked on can be found at https://issues.apache.org/jira/issues/?filter=12345785 - the saved filter is named 2022 Intern Project. 

Helpful Skills

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

Impact

Better internal control and financial transparency

Other Resources

Getting Started with Apache Fineract: https://cwiki.apache.org/confluence/display/FINERACT/Getting+Started+Docs

Reduce Boilerplate Code by Introducing

...

lombok to Reduce getters/setters and Mapstruct to map REST DTO to Entity Objects

Mentors

Aleksandar Vidakovic

Length

Large - 350 hours

Category

Platform, Core Development

Overview & Objectives

TBD

Description

Lombok could help us to not only reduce a large amount of code, but also to fix a couple of inconsistencies in the code base:

  • getters/setters with non-standard characters (e. g. underscores)

  • getters/setters with typos

The layered architecture of Fineract requires mapping between REST DTO classes and internal entity classes. The current code base contains various strategies to achieve this:

  • private functions

  • static functions

  • mapping classes

All of these approaches are very manual (and error prone) and difficult to maintain. Mapstruct can help here:

  • throw errors at compile time (missing new attributes, type changes etc.)

  • one common concept (easier to understand)

  • reduce manually maintained code and replace mostly generated code

Challenges:

  • maintain immutability (especially in DTO classes)

  • should we fluent builder pattern?

  • backwards compatibility

  • these improvements cannot be introduced as one pull request, but have to be split up at least at the “module” level (clients, loans, accounts etc.). This would result in approximately 30 pull requests; if we split up Lombok and Mapstruct then it would be 30 PRs each (=60); we would need this fine grained approach to make a transition as painless as possible

  • some classes are maybe beyond repair (e. g. Loan.java with 6000 lines of code, the smaller part getters/setters and a long list of utility/business logic functions)

Helpful Skills

Java, Spring, Gradle, refactoring large code bases, testing

Impact

Better code navigation for new and existing developers, increase focus on business logic, reduce code maintenance. Note: this change is potentially very disruptive, but would reduce the existing code base by 20% (a guess, but I’m confident that this number is more or less true); less code, less bugs, better readability, more focus on features, faster turn around (a lot of time is lost maintaining boilerplate code).

Other Resources

...

Mentors

Aleksandar Vidakovic

Length

Large - 350 hours

Category

UI

Overview & Objectives

TBD

Description

Create a React microfrontend with latest state of the art UI components. Emphasize re-usability and speed. The current standard UI for Fineract is still the Community App which is the only one that covers 100% of the feature set. Unfortunately it’s based on AngularJs which itself is end of life and on occasions standalone libraries like jQuery were used. This makes 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 to https://www.npmjs.com/ for easy consumption by other developers.

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

Tooling should help with consistency and reduce handwritten code as much as possible. Using Nx (https://nx.dev/ ) is strongly suggested.

Helpful Skills

React, NodeJs, NPM, E2E testing, Cucumber

Impact

Other Resources

  • https://mui.com/

  • https://nx.dev/

OpenG2P  - Digital Identity Proof of Concept with MOSIP

Mentors

Ed Cable Avik Ganguly

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

...