Google Summer of Code 2018 Ideas

Google Summer of Code 2018 Ideas

The Mifos Initiative has been accepted as a Mentoring Org for 2018

The 2018 Google Summer of Code has now concluded. Stay tuned for our official wrap-up and reflections posts on our blog.

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

 

 

2018 Google Summer of Code - Get to Know Mifos

We're looking forward to participating in Google Summer of Code for our sixth year. In 2017, we worked with 12 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 2018 will have the option to work on a variety of projects related to our front-end Web App built on top of the AngularJS framework, and a variety of other apps including our Android-based field officer app and client banking app, and modules like our data import tool. 

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

2018 GSOC Mentors

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

Mentor

Project

Location

Time Zone

Mobile

India

IST (GMT +5:30)

Mobile

India

IST (GMT +5:30)

Web

India

IST (GMT +5:30)

Platform

India

IST (GMT +5:30)

Platform

India

IST (GMT +5:30)

Mobile

India

IST (GMT +5:30)

Platform

Cameroon

WAT (GMT +1:00)

Platform

India

IST (GMT +5:30)

Web

India

IST (GMT +5:30)

Platform

USA

CST (GMT -6:00)

Web

India

IST (GMT +5:30)

Mobile

India

IST (GMT +5:30)

Web

India

IST (GMT +5:30)

Tentative

India

IST (GMT +5:30)

Platform

USA

EST (GMT -5:00)

Platform

Serbia

CET (GMT +1:00)

Platform

Kenya

EAT (GMT +3:00)

Platform

USA

PST (GMT +8:00)

Platform

india

IST (GMT +5:30)

Fineract CN

Cameroon

WAT (GMT + 1:00)

Fineract CN

Cameroon

WAT (GMT+1:00)

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

Apache Fineract CN (Gen 3)

Mifos X and Apache Fineract 1.0 (Gen 2)

Hints

Project Ideas

All 2018 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. Some projects will also center directly around the Apache Fineract platform for financial inclusion and additional tools, features, our modules on that and our brand-new Apache Fineract CN application framework for digital financial services. 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. 

Fineract CN REST API Documentation

Mentors

@Isaac Kamga (Deactivated)@Aleksandar Vidakovic@Sanyam Goel

Category

Apache Fineract CN

Overview & Objectives

Our newest generation architecture, Apache Fineract CN has a set of REST APIs that are not documented yet. Given that the architecture is microservices-based, Spring REST Docs will be the chosen tool of choice to overcome limitations of static documentation:

  1. Live documentation that is accurate, based on Test-driven development and does not need to be maintained manually in parallel to the source code which actually defines the REST API, and therefore can stay in sync

  2. It will be live and you won't have to set up a REST tool such as e.g. Postman & Co. to "explore" it. 

The goal of this project is address this by using Spring REST Docs

Description

  • Familiarize yourself with Spring REST Docs

  • Create working v1 code demonstrating feasibility of approach

  • Propose it to the community (mailing list), and react to feedback

  • Implement the API Docs

Helpful Skills

Java, Spring MVC Test, Spring REST Docs, Asciidoctor, REST, Git, Gradle

Impact

Easier to consume Fineract CN REST API for front-end/mobile etc. developers.

Other Resources

  1. Spring MVC Test : https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html 

  2. Spring REST Docs : https://spring.io/guides/gs/testing-restdocs/ 

  3. Asciidoctor : http://asciidoctor.org/ 

JIRA Task

https://issues.apache.org/jira/projects/FINCN/issues/FINCN-6

Fineract CN SMS & Email Notifications

Mentors

@Isaac Kamga (Deactivated)

Category

Apache Fineract CN

Overview & Objectives

The SMS/Email Notifications service would be a microservice developed on Apache Fineract CN to enable MFI members to get notified on events occurring on their accounts.

Members have an array of events which can occur on their accounts such as;

  • Account creation for a member

  • Update address for a member

  • Update contact details for a member

  • Upload update and delete a member’s identification card

  • Activate lock, unlock and reopen a member account

  • Upload and delete member’s portrait

  • Upload,update and delete a member’s document

The objective of this project is to build functionality which will enable the MFI staff enable notifications which the member chooses when creating their account.

Description

There are a number of SMS Campaign APIs out there like Twilio to send SMS notifications to members. Also, there are tools out there to send emails to members such as SMTP server.

  1. Develop the smsemail notifications microservice

  2. Incorporate the smsemail into demo-server

  3. Incorporate UI in fims-web-app where-in MFI staff selects the notifications and frequency the member has to receive them.

Helpful Skills

Java, JavaScript, Spring Boot, REST, Git, Gradle

Impact

This Project Will Enhance Know Your Customer (KYC) In Apache Fineract CN

Other Resources

  1. Gmail With SMTP Server : https://sanaulla.info/2017/09/15/using-gmail-as-smtp-server-from-java-spring-boot-apps/

  2. Twilio SMS Sender : https://www.twilio.com/docs/api/messaging/send-messages

  3. Apache Fineract CN Customer : https://github.com/apache/fineract-cn-customer

JIRA Task

https://issues.apache.org/jira/projects/FINCN/issues/FINCN-5

Fineract CN Mobile 2.0

Mentors

@Rajan Maurya

Category

Mobile - 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 2017, our Google Summer of Code intern built the initial version and baseline set of functionality. In 2018, the student will work on the following tasks:

  • Add Multiple account login and maintain session of the account.

  • Add Passcode feature to avoid the everytime login.

  • Sync Adapter to sync clients and client data that is assigned to him.

  • Add Kotlin support in app and initially change the retrofit models in kotlin.

  • Add review screen in every new records creation form.

  • Edit Loan application feature if loan is not approved 

  • Add new data views in different different pages like customer detail page according to API, same as in loan, deposit account details 

  • Add feature to take high quality picture and compress with the same quality for uploading (Uploading feature already exist, student need to enhance picture quality)

Helpful Skills

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

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

https://github.com/openMF/Fineract-CN-mobile

JIRA Task

https://issues.apache.org/jira/projects/FINCN/issues/FINCN-7

AngularJS Web App Enhancements

Mentors

@Gaurav Saini, @Pranjal Goswami, @Maulik Soneji

Category

Web - Mifos X Web App

Overview & Objectives

Our AngularJS Web 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 2017, our Google Summer of Code intern re-designed and optimized a number of key workflows, wizards, an screens throughout the app. . This project would continue by making additional UI enhancements including:

  • Optimize the client, group, and center records

  • Optimize the loan and summary savings pages

  • Implement additional Wizard user interfaces 

  • Improve the collection sheet UI

  • Improve the drill down navigation

  • Extend the notifications framework with additional notifications at https://goo.gl/HZsE75

  • Improve interface for role-based dashboards.

  • Improve the screens for our surveys framework

List of tickets which will be part of project can be found at https://github.com/openMF/community-app/projects/3

Helpful Skills

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

Impact

Enhanced User Experience, Intuitive application design

Other Resources

Usability and Design

Web UI for Microfinance Institutions on Fineract CN

Mentors

@Gaurav Saini, @Pranjal Goswami, @Maulik Soneji