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 | |
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.
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
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 |
...
Mentors | |
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 2023 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 |
Fineract Refactoring - Adding Type-Safe REST API Layer & Adding Type-Safe Native SQL Queries
Mentors | |
Length | Large - 350 hours |
Category | Platform, Core Development |
Overview & Objectives | Over the years as the breadth of functionality in Fineract has grown as support for more and more use cases was added, technical debt has continued to accrue, blocking the community from moving towards a fully modularized yet still monolithic codebase. This has hampered the developer experience, creating a high learning curve for even experienced developers due to how coupled together everything is and the cross-dependencies across the business logic. This project would focus on having interns contribute to major refactoring efforts to help address the technical debt and reduce all the boilerplate code that needs to be maintained. The first is adding a type-safe REST API layer(https://issues.apache.org/jira/browse/FINERACT-2021 ) and the second, adding type-safe native SQL queries through the introduction of QueryDSL (https://issues.apache.org/jira/browse/FINERACT-2022) . |
Description | This project would have the intern start on either of these two tasks which are documented in the Jira issues above. This project could involve multiple interns working in parallel. Progress on these two tasks would achieve the following benefits:
|
Helpful Skills | Java, Spring, Gradle, refactoring large code bases, testing, SQL |
Impact | Improved developer experience and increased maintainability of the codebase by removing boilerplate code. Ease of maintaining auto-generated Java and Typescript clients. |
Other Resources |
Phase 2 of Lombok to Reduce Boilerplate Code and Mapstruct to map REST DTO to Entity Objects
...
Mentors | |
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 | |
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.
|
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
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 |
|
...