Google Code-In 2018

Google Code-In 2018

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

The Mifos Initiative will be participating in Google Code-In 2018 as a sub-organization underneath DIAL as the umbrella organization.  Browse sample tasks below for an understanding of the types of work we have available. 

2018 Google Code-In (GCI) - Get To Know Mifos

After participating in Google Summer of Code in seven different summers and GCI in 2014, 2016 and 2017 we look forward to the opportunity to work with pre-university students through Google Code-In. As both a 501(c)3 non-profit and an open source project, our global community has a diverse range of tasks (both technical and non-technical) that will be a valuable experience for the students. Students will gain exposure to an active open source project, a widespread global community, and expand upon a wide range of discipline as they use technology to help alleviate global poverty.

Students in 2018 will have the option to work on a variety of projects related to the back-end Apache Fineract platform, our front-end Web App built on top of the AngularJS framework, and a suite of mobile apps including our Android field officer app, Android mobile banking app, Android mobile wallet framework and AngularJS Online Banking App. 

Get Excited!

Watch the following videos to learn about our gigantic mission and the game-changing platform we've built to achieve it. 

http://youtu.be/co5cK2cYVU0

Useful Resources

Staying in Touch

The best place to find someone to chat to about Mifos is in our main Gitter Chatroom at https://gitter.im/openMF/mifos. For coding related questions, you should subscribe to our Mifos and Apache Fineract developers lists which can be accessed from http://mifos.org/resources/community/communications/

GCI students will have the opportunity to work on the following types of tasks:

  1. Code: we have a range of introductory coding tasks across our Java platform, AngularJS community app, and Android field officer and client self-service apps 

    1. Platform - Apache Fineract: Source Code | Issue Tracker | Mailing List

    2. Web App - Mifos X: Source Code | Issue Tracker | Mailing List | Gitter Chatroom

    3. Mobile App - Android Field Officer App: Source Code | Issue Tracker | Gitter Chatroom

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

    5. Online Banking App - Web: Source Code | Issue Tracker | Gitter Chatroom

    6. MifosPay - Mobile Wallet Framework: Source Code | Issue Tracker | Gitter Chatroom

    7. Mifos Payment Gateway: Source Code | Issue Tracker | Gitter Chatroom

  2. Documentation/Training: Most of the end users of our software aren't super-technical. Documentation is critical - we have a number of short how-to guides, training slides, and video tutorial to work on for using the software and engaging with the community. 

    1. Fineract Wiki: https://cwiki.apache.org/confluence/display/FINERACT/

    2. Mifos X User Manual: User Manual

  3. Outreach/Research: As a global non-profit with a rich social mission to bring financial services to the poor, we have an enormous amount of non-coding work to get done in our community - on the marketing front this involves product positioning and collateral, donor and volunteer outreach, social media management, CRM & contact management, digital media design, as well as analysis and research of our competitors and new financial inclusion products and services. 

  4. Quality Assurance: Mifos X is enterprise-grade, mission-critical software to run a bank - quality, security, and performance couldn't be more important - as our software continues to grow, we have a range of manual and automated testing tasks as well as simply user testing our web and mobile apps and reporting usability improvements. 

  5. User Interface: Since many end users of our software aren't that technically literate, an optimal user experience is ever more valuable, various areas of our web and mobile apps as well as our community websites could use some mockups and wireframes.

Example Tasks

Coding

Task: Mobile Banking App - Fix Issue with Wrong Values being Displayed.

Full details of this issue can be found in Github Issues along with screenshots and steps to reproduce at https://github.com/openMF/self-service-app/issues/456. Under the loan details view in the Android Mobile Banking App, both values are wrong for Next Installment Amount should be 987.72 (but showing total outstanding) and Next Due Date should be 02 February 2017 (but showing disbursement date)

Tags: Android, Mobile Banking, Java, Fintech

Task: Mifos X Web App - Required Field should not get populated after clicking on cancel button

In the Mifos X Web App,  after clicking on cancel button "Required Field" get populated in the particular page in several sections including Create Office page, Create Holiday page, and Create Savings Product page. Required Field should not get populated. Please see https://github.com/openMF/community-app/issues/1655 for full details.

You can test this out at https://demo.openmf.org (mifos/password). This can be changed by updating the Mifos X Web App (Community App) with source code located at https://github.com/openMF/community-app. Please reference this Getting Started Guide to familiarize with the codebase.

Tags: Web, Angular, Fintech, Core Banking

 

Task: Convert PPI Scorecard and Lookup Tables for Three Countries

The PPI is a ten-question survey with lookup tables to assess how much a client a is moving out of poverty. It's a valuable social impact measurement tool and we have support in Mifos for capturing these surveys. However the surveys must be in XML format.

Please refer to the main ticket https://mifosforge.jira.com/browse/MIFOSX-2407 and complete the manual conversion process for three countries starting from the top of the list and moving down working on the sub-tasks that aren't in progress or resolved.

https://mifosforge.jira.com/browse/MIFOSX-2407

Tags: XML, PPI, Statistics, Surveys, Data Migration

Task: Fix Localization issues with typos and bad grammar in message strings

In several of the message strings available for translation, there are both typos and grammatical mistakes which need to be addressed. The listing strings can be found at https://github.com/openMF/community-app/labels/TranslateWiki. Pull requests can be made for each separate commit. 

You can test this out at https://demo.openmf.org (mifos/password). This can be changed by updating the Mifos X Web App (Community App) with source code located at https://github.com/openMF/community-app. Please reference this Getting Started Guide to familiarize with the codebase.

Tags: AngularJS, Java, Javascript

Task: Swagger Documentation of Fineract API

Swagger is used for the dynamic documentation of REST API for Apache Fineract which can easily replace apiLive.htm ( which is the current documentation)

In most of our cases we are using @Api, @ApiOperation, @ApiImplicitParams, @ApiResponses, @ApiParam annotations for dynamic documentation of Fineract API’s
For Information about Swagger Annotations refer Swagger-Core Annotations
Refer the PR #409 to get details about the integration of Swagger on Fineract and how Annotation are used in the Pull Request
Follow more on the Documentation for Integration of Swagger on Fineract at [ https://goo.gl/6cHv8F ]

Overview and Objectives: Annotate the StandingInstructionHistoryApiResource.java with Swagger Annotations and in the field description and for the specific values for the annotation can easily be found at the current documentation
Description: Don't loose any documentation that's already on the current (manual) REST API doc, maintain it's human readable comments (by moving that into JavaDoc/annotations in code which SpringFox/Swagger exploit), the "sections", etc.
Helpful Skills: Java, Spring, Jersey, Swagger, REST, Git, Gradle
Resources: See the starting of Document

Tags: Java, Swagger, APIs, Documentation, Spring

 

Documentation/Training

Task: Update User Manual for Android Mobile Field Operations App for new Collection Sheet User Interface 

During the past Google Summer of Code program, Tarun Mudgal, built in support for a mobile interface for the collection sheet for the bulk entry of data. Based on the user manual for the collection sheet in the web app, the screencshots provided by Tarun, you should add a new section to the user manual on our MIfosForge wiki powered by Atlassian's confluence. You should download the app from the Google Play store, and follow the instructions to load a collection sheet for a given date for groups, load a collection sheet for a given date for individuals, apply payments, and submit the collection sheet. Screenshots should be taken throughout the process and included in the documentation at Mifos Android Client User Guide. Source code and technical documentation can be found at https://github.com/openMF/android-client