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.
- 1 Get Stoked - End Poverty. One Line of Code at a Time.
- 2 Useful Resources
- 2.1 Staying in Touch
- 3 Example Tasks
- 3.1 Coding
- 3.1.1 Task: Mobile Banking App - Fix Issue with Wrong Values being Displayed.
- 3.1.2 Task: Mifos X Web App - Required Field should not get populated after clicking on cancel button
- 3.1.3 Task: Convert PPI Scorecard and Lookup Tables for Three Countries
- 3.1.4 Task: Fix Localization issues with typos and bad grammar in message strings
- 3.1.5 Task: Swagger Documentation of Fineract API
- 3.2 Documentation/Training
- 3.2.1 Task: Update User Manual for Android Mobile Field Operations App for new Collection Sheet User Interface
- 3.2.2 Task: Create Screencast to Demo Basic Features of Android Mobile Banking App
- 3.2.3 Task: Create a How-To Guide on Submitting a Bug Report in GitHub Issues
- 3.2.4 Task: Document Standard Reports in Mifos X with examples
- 3.2.5 Task: Create Set of Training Slides for Two-Factor Authentication
- 3.2.6 Task: Verify links in Wiki User Manual for Mifos X Web App are Accurate
- 3.3 User Interface
- 3.3.1 Task: Create wireframes for a Mifos AppStore or Markeplace
- 3.3.2 Task: Design Wireframe for Mifos Partner Directory Profile
- 3.3.3 Task: Design Wireframe for Ability to Search for Merchants in a Mobile Wallet
- 3.3.4 Task: Design a landing page for our Mifos Chapters
- 3.3.5 Task: Redesign our Donation Page
- 3.4 Outreach/Research
- 3.4.1 Task: Write a Research Brief on Alternative/Non-Traditional Credit Scoring for the Unbanked
- 3.4.2 Task: Draft Market Research Brief on Financial Inclusion Sector in Jordan
- 3.4.3 Task: Write A New "How Mifos is Used" Page For Mifos.org
- 3.4.4 Task: Create A Best Practices Guide For Using Facebook For Community Growth
- 3.4.5 Task: Design The T-shirt For Our Mifos Summit
- 3.4.6 Task: Update Mifos Events/Conferences Calendar
- 3.4.7 Task: Research Our Major Competitors And Complete Matrix On Financial Inclusion Technology Providers
- 3.5 Quality Assurance
- 3.5.1 Task: Automated Testing Of Mifos Android Self-Service App (Unit Tests)
- 3.5.2 Task: Do Usability Testing On Loans Functionality In The Android Field Officer App
- 3.5.3 Task: Find/Fix Fifteen Broken Links On Our MifosForge Wiki
- 3.5.4 Task: Find And Report Three Bugs Or Usability Improvements In The Mifos X Web App
- 3.5.5 Task: Set Up Integration Tests For SPM (Surveys Framework) APIs Via Rest Assured
- 3.1 Coding
- 4 See also
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.
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:
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
Platform - Apache Fineract: Source Code | Issue Tracker | Mailing List
Web App - Mifos X: Source Code | Issue Tracker | Mailing List | Gitter Chatroom
Mobile App - Android Field Officer App: Source Code | Issue Tracker | Gitter Chatroom
Mifos Mobile - Android Mobile Banking App: Source Code | Issue Tracker | Gitter Chatroom
Online Banking App - Web: Source Code | Issue Tracker | Gitter Chatroom
MifosPay - Mobile Wallet Framework: Source Code | Issue Tracker | Gitter Chatroom
Mifos Payment Gateway: Source Code | Issue Tracker | Gitter Chatroom
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.
Fineract Wiki: https://cwiki.apache.org/confluence/display/FINERACT/
Mifos X User Manual: User Manual
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.
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.
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