Google Summer of Code 2022 Ideas

Google Summer of Code 2022 Ideas

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

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.





2022 Google Summer of Code - Get to Know Mifos

We're looking forward to participating in Google Summer of Code for our tenth year. In 2021 we were not able to directly participate but still helped to mentor 5 interns through the Apache Software Foundation. In 2020, we worked with 17 interns from across the world who are continuing to make substantial contributions to our community. We hope to continue building our next generation of contributors who are joining in our movement to fight poverty through open source software. We want you to be part of our mission of creating a world of 3 Billion Maries.  

GSOC Contributors in 2022 will have the option to work on a variety of projects related to our end to end open source stack for digital financial services including open source core banking, real-time payments integration with Mojaloop, digitizing government to person payments, mobile money and Open Banking APIs, and our suite of cutting edge and web and mobile apps. Participating interns will get to work on our brand new front-end Mifos X web app built on Angular, our suite of mobile apps including field officer apps and mobile banking apps for Fineract and Fineract CN, our mobile wallet and integrations with the GSMA mobile money API and Open Banking API.  We will once again have projects related to our new Payment Hub EE which provides a bridge and connection to real-time payment systems like Mojaloop and for the first time be working with students on OpenG2P, the initiative we've helped to launch to digitize large scale government cash transfer programs. You'll also have the opportunity to build new tools like chatbots and machine learning-based scorecards on the platform.

We have some major refactoring and modularization of Fineract 1.x that contributors could help with, streamlining of the development and design of our mobile apps, and exciting new work around payments orchestration and G2P payments that will be of focus as well.

Mifos is a globally recognized digital public good and an award-wining project that sits at the cutting edge of inclusive fintech and embedded finance. Mifos is the leader of the open source banking movement helping to commoditize core banking infrastructure enabling financial services to be embedded anywhere and everywhere.

The best way to understand what we do is to watch a few videos. 

What is Mifos and What Does our Community Do?

Why Does Google Summer of Code matter so much to Mifos and what do we look for in contributors?

How is the Mifos software used? 

  

Guidelines

  • Getting started Read about setting up the code and understand the basic concepts around MifosX.

Expectations

Contributors working on Mifos X will be expected to:

Prerequisite Skills

Basics 

  • Be a quick learner

  • Be well-behaved, act in good faith and be of good humour.

  • Troubleshooting Wizard

  • Passion for writing beautiful code

  • Excellent communication skills

  • Knowledge of developer tools

    • such as a text editor, source control, how to build software

    • experience with specific tools will also help, such as Eclipse IDE, Git, IntelliJ

Mifos includes a wide variety of technologies, we do not expect a student to be an expert on all of these. But it will be helpful if you have some experience in some of these. Helpful skills (specific technology requirements vary with project chosen) and must be eager to learn and develop with the requirements:

  • Java, Spring, MySQL, Jersey & Hibernate

  • HTML, CSS, JavaScript (JQuery), Angular & Material Design

  • JUnit, REST-assured

  • Android

Source Code

Mobile App Overview: https://openmf.github.io/mobileapps.github.io/

Apache Fineract CN (Gen 3)

Mifos X and Apache Fineract 1.0 (Gen 2)

Hints

  • When you need help, ask for help after exploring all options on the web. We are very excited for you to join us, but we need to know that you're willing to put in the time and effort required to do your part. When you do ask, ask well.

  • Tips for a Good Application from former GSOC intern and Mentor, Ishan Khanna: https://hackernoon.com/7-things-you-need-to-know-to-ace-your-gsoc-proposal-8e422f2b6abe

  • Not sure if you are qualified? Download and build the code, then run the Platform and the Mifos X distribution.

  • Email the mifos-developer mailing list with your questions and project ideas.

  • Install Skype for (generally infrequent) video calls. You'll need a headset for Skype, too.

  • Get started by solving few issues on Fineract here or for the web app here.

Project Ideas

In Progress

Our 2022 Ideas lists is currently being refined. Stay tuned for additional updates. 

All 2022 projects will be related to the Mifos X Web App, our mobile apps including our Android Field Operations app, our Mobile Banking app, or our Mobile Wallet App or our Online Banking App. There will also be projects focused on our payment hub and integrations with open source real-time payments platform - Mojaloop and integrations with the GSMA mobile money API and our Open Banking API. Some projects will also center directly around the Apache Fineract platform for financial inclusion and additional tools, features, or modules on that and our brand-new Apache Fineract CN application framework for digital financial services as well as the mobile apps connecting to Fineract CN.  These apps and modules are built on top of the Apache Fineract platform, the world's only open platform for financial inclusion and is banking delivered as a service via the cloud. Apache Fineract is a true platform in which the back-end is cleanly separated from the front-end and all core platform services are exposed through an API making it easy to develop new applications on top of the Apache Fineract platform. 

Large Projects

For 2022, GSOC projects can be of two durations - large (350 hours) and medium (175 hours). These projects are of the 350 hour duration.

Refactor Android Client & Rewrite using Android SDK

Mentors

@Chinmay Kulkarni @Shashank Priyadarshi

Length

Large - 350 hours

Category

Mobile - Android SDK | Core Development

Overview & Objectives

The goal of this project is to upgrade our Android field officer application to its latest dependencies and to rewrite the application to consume the recently developed Android SDK. The Android client will be the first of the Mifos mobile apps (android-client, mifos-mobile, mobile-wallet) which consume the SDK, reducing repeated code mobile apps, improving developer experience, and making it easier to migrate to newer versions of Apache Fineract 1.x

Description

The student will be working on implementing the following things:

  1. Update the Android client to latest dependencies

  2. Rewrite Android client to consume SDK instead of native code.

  3. Write appropiate unit and integration tests.

  4. Update CI/CD to reflect above changes

  5. Update corresponding documentation for building the app.

Helpful Skills

Java, Kotlin, Android, Swagger Specification, Open API Specification, Spring (Good to have)

Impact

  1. Overall stability by increased testing coverage through a more stable and error-free codebase.

  2. Improved developer experience through faster build time.

  3. More seamless release management and upstream contribution

  4. Reduction of time to upgrade

Other Resources

QA & Testing - https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=195730042

Github

https://github.com/apache/fineract

https://github.com/openMF/fineract-client

https://github.com/openMF/fineract-android-sdk

Expand Unit Testing Coverage of Fineract with Cucumber Testing Framework

Mentors

@Aleksandar Vidakovic

Length

Large - 350 hours

Category

Platform | Core Development | Infrastructure

Overview & Objectives

The goal of this project is to expand unit testing coveragea cross the Finerat platform. Currently most of our automated testing is only through integration tests which take a long time to run and aren’t consistent. Cucumber is being implemented as the unit test framework and this project would focus on converting existing integration tests to unit test and writing new unit tests.

Goals are to increase testing coverage of core modules, reduce run-time at build of completing tests, and implementing some automated reporting to show testing coverage.

Description

The student will be working on implementing the following things:

  1. Collaborate with mentor to implement Cucumber framework

  2. Collaborate with mentor to implement test containers

  3. Refine test data set and scripts

  4. Convert high priority integration tests to unit tests

  5. Write unit tests for key functional modules

  6. Implement reporting to show test coverage.

Helpful Skills

Cucumber, Java, Spring

Impact

  1. Enabling other mifos mobile apps to easily migrate to latest versions of Fineract.

  2. More stable and error free codebase

Other Resources

Last year progress: https://gist.github.com/Grandolf49/f79537436a467dac0baa9458a38290c5

Jira Issue for reference: https://issues.apache.org/jira/browse/FINERACT-838

Github

https://github.com/apache/fineract

https://github.com/openMF/fineract-client

Functional Enhancements to Mobile Wallet

Mentors

@Naman Dwivedi @Devansh Aggarwal @Shivansh Tiwari

Length

Large - 350 hours

Category

Mobile - Mifos X | Core Development

Overview & Objectives

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 2021. 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 or Fineract CN 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, we are targeting to further develop the mobile wallet framework, 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.

  • Implement Mifos' new design library in MifosPay application

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

  • Migrating Java code to Kotlin

Helpful Skills

Android development, Java, Kotlin, 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

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

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

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

Create and Implement UI Library of common components across all Mobile Apps

Mentors

@Chinmay Kulkarni @Devansh Aggarwal @raul.sibaja

Length

Large - 350 hours

Category

Mobile - Mifos X | Core Development | Infrastructure

Overview & Objectives

Our suite of customer-facing mobile applications include our mobile wallet framework, and mobile banking apps for Fineract 1.x and Fineract CN. These are designed to serve as reference implementations for demonstration purposes but also to act as secure and robust starting dough that can be extended and enhanced and white-labeled.

With the move towards more digital financial services, these reference solutions are ever more important and critical and must appear highly polished, clean, and professional. We are working with a designer to provide a set of clean, consistent and professional UI designs and workflows to implement across our customer-facing apps.

This project would focus on implementing these new designs across the customer-facing apps providing a consistent and familiar look and feel. It will build off of efforts in 2020 and 2021 implementing the UI designs previously proposed during GCI. 

Across all our mobile apps, there are common screens and workflows with a lot of redundant and inconsistent design and development from scratch. The creation of a UI library of common shared components and design standards and guidelines would enable the following:

  • Improve developer experience and ease of development

  • Consistent look and feel of UIs for all apps

  • Defined process for updating apps.

  • Develop common UI library to ensure consistency of all apps

  • Design guidelines, principles, and standards

  • Could potentially be a valuable upstream project in and of itself to create mobile fintech apps

Description

With leadership of our mentors, this project would focus on building on the initial shared components of the UI library based off of the common screens and workflows identified across the various mobile apps. These common flows will be broken down into their-base-level elements and components.
If time permits, these common components could be tested and consumed by building out the UI screens for our reference open banking fintech app using this library.

Design enhancements to customer-facing apps include: 

  • Break down common workflows into base-level components

  • Refine and update design standards and guidelines

  • Create and set up repository to house elements, components, and designs.

  • Develop and create base-level elements and components accoring to UI design standards and guidelines

  • Implement screens and workflows to test out on reference open banking fintech app

  • Documentation to ensure how to use UI library and update mobile app when UI library is updated.

Helpful Skills

Android Development, Kotlin, Java, Jetpack Compose, XML, Git

Impact

A clean and simple UI is key for our low-tech audience and professional and consistent look and feel enhances credibility of our stack. 

Other Resources

https://mifosforge.jira.com/wiki/spaces/MIFOSX/pages/3013476363

2020 UI Enhancements: https://gist.github.com/ShivangiSingh17/67b6041387c1e281caa7df23347f549e

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

Mifos Mobile - Android Mobile Banking App: Source Code | Issue Tracker | Gitter Chatroom

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

Open Banking Fintech App Framework 

Mentors

@Naman Dwivedi @Shivansh Tiwari

Length

Large - 350 hours

Category

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

To demonstrate these Open Banking APIs and use cases that third parties and fintechs can provide we have developed a cross-platform reference mobile app on Kotlin to showcase a number of these features. It currently connects with the Open Bank Project that adheres to the UK Open Banking API standard. The API Gateway to connect to is still being chosen (WS02, Gravitee, etc.)

The breadth and variety of apps that could be built leveraging these APIs from region to region is endless. We would like this app to be built in an extensible and modular fashion such that core libraries and components could be re-used across different use cases with this framework as the foundation and multiple reference apps on top. Applications include personal financial management apps aggregating information from multiple bank accounts in one place, wallet apps allowing payments to be made from different banks, lending apps, leveraging data and insight from multiple accounts, savings apps, etc.

Description

Intern would work on refining the initial architecture of the framework, the UI and user experience, core use cases including customer authentication and onboarding that was implemented in 2020 and integrating with the Fineract Open Banking APIs and Mojaloop PISP APIs to demonstrate use cases around account information request and payment initiation. 

  • Aggregating account information across multiple banks/financial institution

  • Initiating payments across multiple financial institutions

  • Integrate with additional Fineract Open Banking APIs

  • Integrate with Mojaloop PISP APIs. 

  • Leverage completed components of UI library

Helpful Skills

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

Impact

By providing an extensible open banking fintech app framework, allow partners a complete stack of Open Banking APIs and reference front-end application to rapidly build innovation via Open Banking APIs.   

Other Resources

2020 Progress: https://gist.github.com/ankurs287/4ef7c3de462073bf36bd5247479cb176

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/

Digital Bank UI on  Fineract CN

Mentors

@Gaurav Saini, @Pranjal Goswami, @Giorgio Zoppi 

Category

Web - Fineract CN Web App, Exploratory

Overview & Objectives

A new reference user interface on Fineract CN for staff of financial institutions such as digital, challenger, and neo-banks that focused on individual accounts is needed for multiple reasons:

  1. The current fims-web-app reference UI on top of Fineract CN is incomplete, unpolished and doesn't serve as a good representation of capabilities of Fineract CN.

  2. As more financial inclusion providers focus on individual lending and savings products and more digital banks/neo-banks and fintechs that don't have group or center-based operations explore Mifos and Fineract CN, we'd need to have a reference UI that is more in line with those requirements. We don't want prospective users to come and see the microfinance-centric UI and immediately think that the platform might not be useful for them.

Description

Intern will work on the following tasks:

  • Upgrade dependencies to latest versions

  • Improve overall user experience and look and feel

  • implement the front-end UI screens for the Fineract CN web UI for the following functionalities and use case:

    • Account Details

    • Notifications

    • Transaction Details

    • Account Opening

    • Accounting

    • Reporting

  • More Use cases to be listed.

Helpful Skills

Javascript, CSS, HTML5. Angular and Bootstrap (CSS framework) is plus

Impact

Reference UI for microfinance institutions on Apache Fineract CN

Other Resources

Usability and Design

Use Cases - https://github.com/openMF/digital-bank-ui/wiki/Use-Cases-&-Requirements

2020 Progress: https://gist.github.com/abhi40308/21cf6f1ac78efe309faaf6a0d6d971e4

Github

https://github.com/openMF/digital-bank-ui

https://github.com/openMF/digital-bank-ui/issues

Mifos X Web App Enhancements 

Mentors

@Abhay Chawla @Jivjyot Singh @Karan Takalkar

Category

Web - Mifos X Web App