Google Summer of Code 2020 Ideas

2020 Mifos GSOC Complete with 17 interns graduated

Seventeen interns successfully completed their 2020 GSOC internships with the Mifos Initiative. We look forward to paricipating in 2021 for the 10th time. 

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



2020 Google Summer of Code - Get to Know Mifos

We're looking forward to participating in Google Summer of Code for our ninth year. In 2019, we worked with 14 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.  

Students in 2020 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, 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. You'll also have the opportunity to build new tools like chatbots and  machine learning-based scorecards on the platform.

In addition, we'll be working with students on both our Apache Fineract 1.x platform for financial inclusion and our cloud-native Apache Fineract CN application framework for digital financial services. 

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 students?

How is the Mifos software used? 

  

2020 GSOC Mentors

In Progress

The list of mentors for 2020 is currently being finalized. 


We have a talented and passionate group of mentors from across our global community who are eager to help guide the next generation of HFOSS contributors. These mentors come from various backgrounds - partners deploying Mifos, financial institutions using Mifos, volunteers, and even former GSOC students but they all share a common goal of ending poverty one line of code at a time!

Mentor

Project

Location

Time Zone

MobileIndiaIST (GMT +5:30)
MobileIndiaIST (GMT +5:30)
MobileIndiaIST (GMT +5:30)
MobileIndiaIST (GMT +5:30)
WebIndiaIST (GMT +5:30)
WebNigeriaWAT (GMT +1:00)
Fineract CNCameroonWAT (GMT +1:00)
PlatformIndiaIST (GMT +5:30)
MobileIndiaIST (GMT +5:30)
Kelvin IkomePlatformCameroonWAT (GMT +1:00)
PlatformIndiaIST (GMT +5:30)
Raul SibijaPlatformMexicoCST (GMT -6:00)
Karina OrtizPlatformMexicoCST (GMT -6:00)
Gustavo EspindolaMobileMexicoCST (GMT -6:00)
Manoj VMPlatformIndiaIST (GMT +5:30)
WebIndiaIST (GMT +5:30)
WebIndiaIST (GMT +5:30)
WebIndiaIST (GMT +5:30)
PlatformUSACST (GMT -6:00)
WebIndiaIST (GMT +5:30)
PlatformIndiaIST (GMT +5:30)
MobileIndiaIST (GMT +5:30)
WebIndiaIST (GMT +5:30)
Patrick FinkenPlatformCanadaIST  (GMT -5:00)
Rachit Kansal 
TentativeIndiaIST (GMT +5:30)
PlatformUSAEST (GMT -5:00)
PlatformSerbiaCET (GMT +1:00)
PlatformUSAPST (GMT +8:00)
PlatformindiaIST (GMT +5:30)
PlatformIndiaIST (GMT +5:30)
Fineract CNCameroonWAT (GMT + 1:00)
WebIndia IST(+5:30)

Guidelines

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

Expectations

Students 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

Mifos includes wide variety of technologies, we do not expect a student to be 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):

  • Java, Spring, MySQL, Jersey & Hibernate
  • HTML, CSS, JavaScript (JQuery), AngularJS & Material Design
  • JUnit, REST-assured

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 2020 Ideas lists is currently being refined. Stay tuned for additional updates. 

All 2020 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 develop new applications on top of the Apache Fineract platform. 

Mobile Wallet 4.0 

Mentors
CategoryMobile - Mifos X 
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 2019. 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. In 2019, these functionalities were extended further by Shivansh including 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, major areas of focus will include transitioning the wallet to consuming our Open Banking API layer and deeper integration with external payment systems including Mojaloop, Hover, and mobile money API integration.

In 2019 we introduced an Open Banking API Layer using the WS02 API Gateway in compliance with the UK Open Banking API standard to provide a secure point of authentication for first party apps, replacing the current connection via self-service APIs.  New features to be added include: 

    • Map existing APIs to Open Banking APIs
    • Integrate with Hover USSD Automation Integration with additional mobile money providers using the payment hub
    • Integration with Fineract CN for core use cases.
    • Implement core mobile wallet use case identified by pilot customers for Fineract CN. 
    • Deeper Support for merchant payment transactions
    • Tighter integration with our notifications framework. 
    • Integrate with additional core Mojaloop use cases - merchant request to pay. 
    • Improved support for peer to peer transactions
    • Customer support/communications features with Rocketchat. 
    • Improvements to user experience
    • Implement more widespread automated testing coverage. 

In 2020 we aim to complete an MVP of a mobile wallet on top of the Fineract CN back-end so most of the major work will be around Fineract CN and Payment Hub integration and improving peer to peer and merchant transactions (initiating transactions to merchants, maintaining history of users with which recent transactions took place, adding deeplink support for unique payment links, payment related notifications using FCM). Payment Hub and Mojaloop integration will allow us to make payments across tenants and fineract deployments. A very basic integration of payment hub with mobile wallet is already in work but that will need to be extended to fully support all use cases.

Helpful SkillsAndroid development, SQL, Java, Javascript, Git, Spring, OpenJPA, Rest, Kotlin
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

2019 Mobile Wallet Progress: https://gist.github.com/shiv07tiwari/acb5a7266fe685e8332498fd32b00bf0

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

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

Fineract CN Mobile 4.0 

Mentors
CategoryMobile - Apache Fineract CN 
Overview & Objectives

Just as we have a mobile field operations app on Apache Fineract 1.0, we have recently built out on top of the brand new Apache Fineract CN micro-services architecture, an initial version of a mobile field operations app with an MVP architecture and material design. Given the flexibily of the new architecture and its ability to support different methodologies - MFIs, credit unions, cooperatives, savings groups, agent banking, etc - this mobile app will have different flavors and workflows and functionalities. 

Description

In 2019, our Google Summer of Code intern worked on additional functionality in the Fineract CN mobile app. In 2020, the student will work on the following tasks:

  • Add in support for creation of Centers
  • Extend Kotlin support in app and continue changing the retrofit models in kotlin.
  • Offline mode via Couchbase support
  • Integrate with Payment Hub to enable disbursement via Mobile Money API
  • Add GIS features like location tracking, dropping of pin into the app
  • Add Task management features into the app. 
  • Enable collection of data in field via the app.
  • Build and design interface for bulk collections 
Helpful SkillsAndroid development, SQL, Java, Javascript, Git, Spring, OpenJPA, Rest,
ImpactAllows staff to go directly into the field to connect to the client. Reduces cost of operations by enabling organizations to go paperless and be more efficient.
Other Resourceshttps://github.com/apache/fineract-cn-mobile
JIRA Task

Open Banking Fintech App Framework 

Mentors


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

To demonstrate these Open Banking APIs and use cases that third parties and fintechs can provide we would like to developer a reference mobile app to showcase a number of these features. We would like for the app to be cross-platform (framework/language to be chosen - React Native, NativeScript, Flutter, Kotlin, etc) and we will use 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 designing the initial architecture of the framework, the UI and user experience, core use cases including customer authentication and onboarding, and demonstrating Open Banking APIs through use cases center around account information request and payment initiation including:

  • Aggregating account information across multiple banks/financial institution
  • Initiating payments across multiple financial institutions


Helpful SkillsAndroid 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

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/

Mifos X Web App Angular 7 Rewrite

Mentors
CategoryWeb - Mifos X Web App
Overview & Objectives

Our AngularWeb App is the standard application on the Mifos X distribution that provides all the core functionality for the most common methods of financial inclusion and products and services. It's also the starting point for any partners looking to customize or extend the UI. It's constantly being improved based on user feedback, better performance, and to integrate new design standards.

Description

In 2018, we made the decision to re-write the entire Mifos X web app from Angular 1.75 to Angular 6 providing cleaner Material design, access to brand new libraries, better theming/skinnability, and a more stable and modern codebase. In 2019 we continued the re-write and upgraded to Angular 7. We need to try and bring the rewrite to completion this year. You can see the in-progress new UI at https://openmf.github.io/web-app/ (mifos/password)

The entire web app needs to be re-written so a list of a few tickets of remaining work which will be part of project can be found at https://github.com/openMF/web-app/issues

The progress is being tracked here: https://docs.google.com/spreadsheets/d/1JxeJjG1GdZ3BNJi-sScCQLirfevSc8amFr8o3SfUj4U/edit?usp=sharing

Some additional work also includes adding in comprehensive keyboard shortcuts to enable power-users of the app and to ensure that the tabs and arrow keys work appropriately for navigating through the app.

Helpful SkillsJavascript, SCSS, HTML5, Angular 7, Angular Material, Flex Layout
ImpactEnhanced User Experience, Intuitive application design
Other ResourcesUsability and Design

Improve Robustness of Mifos X and Apache Fineract by Fixing Issues/Feature Requests in Backlog

Mentors
CategoryPlatform
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. 

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 either 1.4.0 or 1.5.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 2019 Intern Project. 

Helpful SkillsHTML, Spring, Hibernate, REST, Java, AngularJS, Javascript, SQL
Impact

Better internal control and financial transparency

Other Resources

Strengthen/Harden Fineract 1.x to LTS Version by Upgrading Java & Improving Code Coverage of Tests

Mentors
CategoryPlatform
Overview & Objectives

The Fineract 1.x code base powering Mifos X and dozen of cloud-based core banking and fintech solutions around the world supporting millions of clients is very robust and feature-rich. With the wide functional footprint, there comes greater complexity in the code that  makes maintainability more difficult. Additionally, as new features have been added the test coverage hasn't been extended at the same rate. The combination of these multiple factors - a large and varied user base that is reliant upon this vast codebase, the high maintenance burden, the need for increased testing coverage, and the need for a stable point for migration to the new architecture - merits this very important project will consist of these major tasks, documented in the following issues:


Description
Helpful SkillsHTML, Spring, Hibernate, REST, Java, AngularJS, Javascript, SQL
Impact

Improved functionality and increased stability of the core Fineract platform

Other Resources

Digital Identity Proof of Concept on Sovrin & Hyperledger Indy

Mentors

Rachit Kansal

CategoryPlatform & Modules 
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.

With the advent of blockchain concepts and technologies, it is not ideal but imperative that we shift from the traditional identity management to a more secure decentralised claim-based identity management system. This kind of system has multiple benefits:

  • 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

See https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=103093257 for details on the proof of concept 

P0 requirements

  1. Setup and run an Hyperledger Indy Network with Stewards.
  2. Opening a bank account scenario.
  3. Applying for a loan scenario.

P1 requirements

  1. Performing money transfer to a merchant online.
Helpful SkillsHTML, Spring, Hibernate, REST, Java, AngularJS, Javascript, SQL, Hyperledger Indy
Impact


Other Resources

Update Remaining APIs to Swagger/OpenAPI format

Mentors
CategoryPlatform
Overview & Objectives

One of the most powerful aspects of the Apache Fineract platform and the Mifos X solution stack built on top of it, is the full set of APIs that are available to enable any third party to build new financial inclusion solutions on the platform. It is truly open source core banking software from the ground up. As part of an Apache Fineract project for GSOC in 2017, all of the API docs were converted from manually-generated API docs to live API docs based on the Swagger/OpenAPI format. Moving from our manually generated API docs to this live format would enable all the benefits such as easier testing through live examples, improved standardization, better sharing and portability, and increased automation of API-related processes. Documentation and learnings from that project can be found at https://goo.gl/rL3zdF

The majority of the conversion of the API docs was completed during GSOC and then finalised during GCI 2017. However, since then new APIs have been added and these have not been documented in the Swagger format. Likewise, Phase 2 tasks of the Swagger API work like leveraging Swagger Codegen to enable the creation of language-specific SDKs and client libraries through the Swagger format. Other additional work includes the ability to import Swagger APIs into Postman enable the creation of a Run in Postman button.


Description

Full details of this project can be found at https://jira.apache.org/jira/browse/FINERACT-733

Goals and the tasks of the project include:

  • Deprecate existing API docs and rewrite overview section so it's not reliant upon hyperlinks to the old API docs.
  • Improve home page for Swagger Documentation with either a sidebar or a navbar (similar to the one in the existing documentation) which groups together related API's and provides hyperlinks to their swagger documentation (Can be done with the help of Angular or any suitable platform)
  • Reflect entity description in the swagger documentation itself 
  • Automatically generate swagger.json while building the Fineract.
  • Ensure details and descriptions of fields like "transactionProcessingStrategyId" are carried over. Without this information, an API consumer would not understand what each of these (non-obvious) fields mean and how they are to be used.
  • Ensure the amount of information present for an API in Swagger is equivalent to that of original API documentation (https://demo.openmf.org/api-docs/apiLive.htm#batch_api) Detailed description, possible errors, command strategies supported etc need to be migrated over. 
  • Round of QA on all Swagger Docs.
  • Convert remaining APIs that have been created since December 2017 into Swagger/OpenAPI format including new self-service APIs, APIs for data import.
  • Utilize Swagger Codegen to enable the creation of language-specific SDKs and client libraries through the Swagger format such as for Java and Angular.
  • Create a Run in Postman button by importing Swagger APIs into Postman.
Helpful SkillsHTML, Spring, Hibernate, REST, Java, AngularJS, Javascript, SQL, Swagger/OpenAPI
Impact

Improved functionality and increased stability of the core Fineract platform

Other Resources

Self-Service User Administrative Portal on Angular 7 

Mentors
CategoryWeb - Mifos X Web App
Overview & Objectives

Now that we have a robust mobile banking and online banking application which allows for users to self-create their own accounts, we need to add better back-end administrative support for staff of the financial institution to manage their self-service operations including user management, notifications to clients, task management, logo uploads, etc. 

Description

This project would involve front-end development of the new UI screens (some part has been already been implemented but may be enhanced) and development of additional APIs on the Apache Fineract back-end to support the following use cases:

  • User Management - creation of new users, reset of user password, user activity tracking, searching of users, freezing/closing of self-service user accounts
  • App configuration - upload of custom logo, look and feel, about app details.
  • Customer Support/Communications - schedule campaigns to be delivered as in-app notifications, respond to incoming client support requests
  • Task Management - view and respond to pending tasks - new loan applications, loan disbursements, etc.
Helpful SkillsJavascript, CSS, HTML5. Angular 7, Angular Material, Flex Layout
ImpactImproved usability and staff control for self-service operations.
Other Resources

Android Field Operations App Version 7.0

MentorsIshan KhannaTarun Mudgal
CategoryMobile - Mifos X Android Field Operations App
Overview & Objectives

We have released several versions of our Android app for field officers to go out in the field to process transactions, create clients, etc. Most recently in 2019, our Google Summer of Code intern, Moksh, added support for fingerprint authentication, bulk approval of tasks via Checker Inbox, migration of the project to Android X and support for Kotlin as well as a number of bug fixes and minor enhancements. 

For 2020, the focus would be on continuing additional refactoring and performance enhancements, along with building out new functionalities, UI enhancement to the application, and providing widespread coverage of automated testing throughout the app.   


Extend our existing Android Field Operations App from Version 6 to Version 7.0

  • Extending support of Kotlin.
  • Continued refactoring and performance enhancements. 
  • Redesign of UIs and Workflows
  • Improved GIS features
  • Improved KYC/Client Onboarding Workflows. 
  • Deeper integration of the notifications framework
  • Integrating SMS communications (Sms Communication will be in the form of in-app push notifications. User will receive a push notification is three case:
    1. Triggered (when user has applied for a loan and the loan get approved then user will receive a notification)
    2. Scheduled (when we want that user should receive a notification on a scheduled date and time).
    3. Direct (when users receives a notification when loan payment is overdue or a happy birthday wish on his birthday
  • Unit and Integration Testing

This would all be on top of the corresponding APIs on the Mifos platform.

Helpful SkillsAndroid development, SQL, Java, Javascript, Git
Impact

Allows staff to go directly into the field to connect to the client. Reduces cost of operations by enabling organizations to go paperless and be more efficient.

Other Resources

2019 Progress: https://gist.github.com/moksh-mahajan/cf080d66b72659713dbc8336ca19976e

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

Architecture overview: 
Code style conventions guide:

Live Fineract CN API Documentation as Part of Developer Portal 

Mentors
Overview & Objectives

The aim of this project is to provide a visual display of the Fineract CN API Documentation. We are now starting to use more of the Postman toolset for our developer portal and this project would focus on extending the existign work that was done. 

Description

This project involves providing a visual display of the API Documentation of Apache Fineract CN. Student would have to optimize documentation snippets ( .adoc ), document any service which isn't completely documented like template and reporting, document failing unit tests too and develop a visual website where these html files will be hosted.

SkillsJava, PostgreSQL, MariaDB, Cassandra, TDD With JUnit 4, Spring REST Docs, Asciidoctor, HTML/CSS, Graphic Design
ImpactA visual presentation of the Fineract CN APIs will be a key building block for an enabling environment for developers working on Fineract CN.
Other Resources

https://github.com/aasaru/fineract-cn-api-docs

Mifos Mobile 5.0 - Mobile Banking App

Mentors

Satya Naryan, Ishan Khanna

CategoryMobile - Mifos X 
Overview & Objectives

Mifos Mobile is a reference mobile banking app which enables clients to authenticate themselves, view and edit their account details. and make repayments or transactions between their own accounts. It is now possible for any It is now possible for any financial institution using Mifos to provide an omni-channel banking experience including  including smartphone-based mobile banking, USSD-based mobile banking, and online banking via a web app.

In 2019, our Google Summer of Code intern, Prashant, extended our mobile banking app, completing a mix of functional, architectural, and design improvements including improving the outbound notification system by migrating from GCM to FCM, initial integration with RocketChat for direct customer support between staff and clients, a dark theme and better support for skinning, and phase 1 of integration with Mojaloop via the payment hub.

With the payment hub and API Gateway now in place, next we look to add additional mobile money and payment system integrations into the app as well as having the app connect via the Open Banking API rather than the self-service APIs. This exercise of mapping the Fineract self-service APIs to the Open Banking APIs will be the major focus of this project. 

It was built on top of the Apache Fineract 1.x client-facing APIs to enable self-service channels for clients to interact with their own data and transact in a self-service manner.

Description

Work will involve both development of the Android application as well as work on the back-end to map the Fineract APIs to Open Banking APIs. New features to be added for 2020: 

    • Replace API layer from self-service Fineract APIs to Open Banking APIs
    • Complete Support for customer support/chat via RocketChat
    • Integration with an external payment system (Mojaloop, mPesa) via our payment hub. 
    • Improved support for skinning/theming/white-labeling of the app
    • Implement dashboards and visuals to provide more user insight. 
    • Implementation of Unit and Integration testing
    • Refine UI and overall user experience in accordance with new designs found at https://docs.google.com/presentation/d/1yFR19vGlKW-amxzGms8TgPzd1jWkrALPFcaC85EyYpw/edit?usp=sharing
Helpful SkillsAndroid development, SQL, Java, Javascript, Git, Spring, OpenJPA, Rest, WS02 API Gateway
Impact

By providing an extensible mobile banking app, allow a member/client in having a self-service channel allowing them more direct control and visibility into their financial livelihood.

Other Resources

User Stories - https://goo.gl/3xuUko

Wireframes - https://goo.gl/3xuUko

Customer Self Service APIs - https://cwiki.apache.org/confluence/display/FINERACT/Customer+Self-Service

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

Source Code: https://github.com/openMF/mifos-mobile

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

Mifos Webinar on Open Banking API: 

Mifos Open Banking API Documentation: https://app.gitbook.com/@mifos/s/docs/


Build Beyonic Connector for Mifos Payment Hub

Mentors
CategoryPlatform - Payments Integrations
Overview & Objectives

Mobile money is rapidly transforming financial inclusion by providing more immediate, impactful, affordable, and secure financial services to the client. Mobile money platforms like M-Pesa offer the client unparalleled value in terms of convenience, security and the possibility of new services and products that are more in line with real-world financial habits.  For financial institutions and their clients to fully scale mobile money and leverage its potential, it needs to be fully integrated with their core-banking system.

Description

As part of our DIAL-funded project to integrate Mifos with the open source Mojaloop payments platform the team from DPC consulting built out a middleware component called the payment hub to enable the integration with the Mojaloop APIs. This middleware will also serve as the point of integration for all other external payment systems - the payment hub is extendable by additional payment connectors. This project would focus on adding the connector for the Beyonic APIs. Beyonic is a global mobile money aggregator which provides a common set of payment and collection APIs to seamlessly integrate with the leading mobile money platforms in East and West Africa. 

The payment hub built upon the work of previous interns, most recently the efforts on the Mifos Payment Gateway which were led by Sidhant Gupta in 2019.

This project will involve building the Beyonic connector and integrating with the specific Beyonic APIs for the mobile money use cases to be supported.

Helpful SkillsWeb Services, Java, SQL , JavaScript , Git, Sprint
Impact

Great efficiency, reduced risk for clients, more impactful and relevant products & services.

Other Resources

Build GSMA Mobile Money API Connector for Mifos Payment Hub

Mentors
CategoryPlatform - Payments Integrations
Overview & Objectives

Mobile money is rapidly transforming financial inclusion by providing more immediate, impactful, affordable, and secure financial services to the client. Mobile money platforms like M-Pesa offer the client unparalleled value in terms of convenience, security and the possibility of new services and products that are more in line with real-world financial habits.  For financial institutions and their clients to fully scale mobile money and leverage its potential, it needs to be fully integrated with their core-banking system.

Description

As part of our DIAL-funded project to integrate Mifos with the open source Mojaloop payments platform the team from DPC consulting built out a middleware component called the payment hub to enable the integration with the Mojaloop APIs. This middleware will also serve as the point of integration for all other external payment systems - the payment hub is extendable by additional payment connectors. This project would focus on adding the connector for the GSMA Mobile Money API. In 2016 GSMA published a first set of harmonized mobile money APIs to "ensure best practice in API design, security design, and more and to "address the complexity and fragmentation that is apparent in the fast-growing industry. 

The GSMA Mobile Money APIs are OTT (Over the Top) APIs that have been designed to cater for a core set of mobile money use cases:

  • Interoperability between mobile money and banks, or among mobile money providers
  • Merchant payments, online and offline, including delegated authentication of transactions
  • Bill payments and instant notification of payment
  • Basic account management
  • International transfers, including request for quotation
  • Bulk transactions
  • Cash in / Cash out

This project will extend the work started by Sidhant Gupta under the mentorship of Avik Ganguly in 2019. 

This project will involve building the GSMA Mobile Money API connector and integrating with the specific APIs for the mobile money use cases to be supported.

Helpful SkillsWeb Services, Java, SQL , JavaScript , Git, Spring
Impact

Great efficiency, reduced risk for clients, more impactful and relevant products & services.

Other Resources