Google Summer of Code 2015 Ideas
Get Stoked - End Poverty. One Line of Code at a Time.
- 1 Get Stoked - End Poverty. One Line of Code at a Time.
- 2 Guidelines
- 2.1 Expectations
- 2.2 Prerequisite Skills
- 2.3 Hints
- 3 Mentoring
- 4 Project Ideas
- 4.1 Business Rules Engine
- 4.2 Mobile Field Office Planner
- 4.3 Mifos X Android Client Version 2
- 4.4 Improvements to User Generated Documents
- 4.5 AngularJS Community App Enhancements
- 4.6 Batch Jobs for Loan Loss Provisioning and Dividend posting
- 4.7 Two Factor Authentication for certain types of transactions
- 4.8 Self-Service Application - Mifos Platform Changes
- 4.9 Self-Service - Web App development
- 4.10 Self-Service - Android App development
- 4.11 Data Tables Improvements to Support Workflows
- 4.12 Mobile Money Integration
- 4.13 Inbound SMS Integration
- 4.14 Client Impact Portal Phase 2
- 4.15 Credit Bureau Integration
- 4.16 Clean Energy Integration
- 4.17 Pay as you Go Solar Module Phase 2
- 4.18 Data Migration Tools
- 4.19 Web-based Ad Hoc Query and Reporting Tool Phase 2
- 4.20 Actionable notifications/alerts/status updates in Mifos X
- 4.21 Basic CRM Functionality - Inquiries/Complaints Module
- 4.22 Security Penetration testing
- 4.23 Scaling MifosX to serve 2 million+ customer accounts
- 4.24 Mifos ID/Profile - Single Sign On for Community Infrastructure
- 4.25 Make Mifos X DB-Agnostic - Flexible configuration allowing other databases, incl. tests & doc on Oracle
- 4.26 POC of a Scalable MifosX deployment on Openstack
- 4.27 Mifos X on "Enterprise Stack" - IBM WebSphere and Oracle WebLogic tests & documentation
- 4.28 Mifos X SDK
- 4.29 Automation of Conversion of AngularJS Community App into Chrome App
- 4.30 UI meta modeling, making screen adaption a configuration instead of coding activity
- 4.31 Extend Community app to run on Mobile devices with Offline Support
- 4.32 Business Analytics (OLAP)
- 4.33 Web UI quality cross browser non-regression testing
- 4.34 JPOS Integration - Point of Sale Cash Out
- 4.35 Custom Fantastic Mifos Project
- 5 See also
We're currently working on our application and ideas lists for the 2015 Google Summer of Code. Applications are due on February 20 and Mentoring Orgs are announced on March 2.
2015 Google Summer of Code - Get to Know Mifos
We're looking forward to participating in Google Summer of Code for our fifth year. In 2014, we successfully graduated seven stellar 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 2015 will have the option to work on a variety of projects related to Mifos X - our core back-end Java platform which provides a full set of RESTful APIs to deliver financial inclusion, our front-end Community App built on top of the AngularJS framework, and a variety of other apps including our Android-based mobile client.
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:
Use the mifos-developer mailing list
follow the Mifos coding standards
have access to reasonable bandwidth, ie: have a fast, reliable Internet connection
track and report on progress daily
Prerequisite Skills
Basics
Quick learner
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):
MySQL,Jersey, Hibernate, Spring,
HTML, CSS, JavaScript (JQuery), AngularJS
JUnit, REST-assured
Hints
When you need help, ask for help! Do some searches before asking, please. 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.
Not sure if you are qualified? Download and build the code, then run the Platform and the reference user interface. Instructions for doing so are available at Getting started - Contributing to MifosX.
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.
Mentoring
Mifos folks are constantly working remotely (mainly using Skype), especially in supporting remote contributors. We often do video calls and desktop sharing If possible, we'd love to meet you in person! Specific mentors for each project will be listed below.
These are the tentative mentors for the 2015 program - we'll update with any changes.
Mentor | Project | Location | Time Zone |
|---|---|---|---|
| India | IST (GMT +5:30) | |
| India | IST (GMT +5:30) | |
| Ghana | GMT | |
| USA | PST(GMT -8:00) | |
| India | IST (GMT +5:30) | |
| Sri Lanka | IST (GMT +5:30) | |
| India | IST (GMT +5:30) | |
| Netherlands | CET (GMT+1:00) | |
| USA | PST(GMT -8:00) | |
| Germany | CET (GMT+1:00) |
Project Ideas
All 2015 projects will be on the new Mifos X platform or various apps built on top of its RESTful APIs. Mifos X is the world's only open platform for financial inclusion and is banking delivered as a service via the cloud. Mifos X 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 Mifos X platform.
Business Rules Engine
Mentors | @Nayan Ambali |
Overview & Objectives | A business rule system enables these financial institutes policies and other operational decisions to be defined, tested, executed. Rule engines typically support rules, facts, priority (score), mutual exclusion, preconditions, and other functions. This module will enable MFI admin to add, remove or modify the business rule against pre-defined work flows in the application. |
Description | As financial institutes, the business process of the institute is governed by local regulatory, and internal rules and rules defined by other other stake holders. And MIS should have provision to define these rules in the application to achive the objectives of these rules defined by various stake holders. Example: Insurance company does not provider insurance to any person above 65 age. In that case in the MIS if users tries to attach a insurance feed to a client's loan account whos age is more than 65 years then "business rule engine" should prevent that action with appropriate message. The implementation would probably have 4 parts to it: a) Code Hooks - Extend functionality of event listeners (what was done for "Guarantor Release for Blocked Funds" for loans) to include key business events like loan creation, loan approval, loan disbursement, savings account creation, savings account activation, savings withdrawal, client creation, client approval, etc. Pre- and Post- events to be enabled for these business events. |
Helpful Skills | SQL, Java, Javascript, Git |
Impact | It helps MFIs to follow the compliance set for regulatory and various stake holder. Also reduces the fraudulent cases |
Other Resources |
Mobile Field Office Planner
Mentors | @Nayan Ambali |
Overview & Objectives | To allow field-based staff to manage their daily schedules and to ensure that their supervisors are able to review these tasks and to plan field operations and bring in more efficiency and transparency for field operations. To meet the requirement, Android based app need to be developed to cover these uses cases. And this app will be an extension to MIfos X Android Client built by GSOC intern, Ishan Khanna in 2014. |
Description | Field officers typically have a predefined set of tasks to follow, for example: Do survey for a locality, Conduct Group Trainings, Conduct Group Tests, Do Center Meetings and Collections. Each could have a task code to make operations streamlined. Field officers manage their calendars by selecting an activity and specifying a center, date and time for which this activity is planned. This becomes their planned activity for this slot. A simple workflow to manage each slot – when field officer starts the activity, status of the slot is changed from “new” to “open” and when the activity is completed, it is set to “closed”. It would be ideal to manage this workflow using a mobile tool – preferably an inbound SMS message. For example: an SMS from the field officer’s phone with the text “OPEN 1430” will change the status to “OPEN” of the field officer’s activity that was planned for 2:30pm. Field officer may change his plan up to a certain time prior to the start of the activity. Auditors and branch managers will review the activities and track the field officers’ planning and efficiency. |
Helpful Skills | Java, XML, SQL , Git, SMS integration, Android app development is plus |
Impact | Field efficiency and operational efficiency |
Other Resources | See SMS Integration and Outbound SMS |
Mifos X Android Client Version 2
Mentors | @Nayan Ambali |
Overview & Objectives | As financial institutions serving the poor extend to more rural outlying regions and adopt more lightweight branchless and paperless operations, mobile field operation tools are essential. In 2014, GSOC intern Ishan Khanna built out version 1 of our Android-based mobile And this app will be an extension to MIfos X Android Client built by GSOC intern, Ishan Khanna in 2014. |
Description | There is a lengthy list of potential Version 2 requirements for the Mifos X Android client including:
|
Helpful Skills | Java, XML, SQL , Git, SMS integration, Android app development is plus |
Impact | Field efficiency and operational efficiency |
Other Resources |
Improvements to User Generated Documents
Mentors | @Pranjal Goswami |
Overview & Objectives | Provide an easy way for reports to "merge-printed" from the Client or account page. Currently, if a user needs to print a specific letter for customer or loan account or savings account - the only way is to develop a report or use stretchy report. This is difficult to use and cannot be invoked from a client or account page. |
Description |
The following enhancements will be needed:
|
Helpful Skills | SQL, Java, Javascript, Git |
Impact | Easy to print reports like Loan Sanction Letter, Savings Transaction report, Deposit notice etc. |
Other Resources |
|
AngularJS Community App Enhancements
Mentors | @Vishwas Babu A J |
Overview & Objectives | Our AngularJS Community App is the standard application on the Mifos X platform 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 and AngularJS refactoring. |
Description | The project will involve the following:
|
Helpful Skills | Javascript, CSS, HTML5. AngularJS and Bootstrap (CSS framework) is plus |
Impact | Better usability. improve the productivity of users and actions will be taken on time. |
Other Resources |
Batch Jobs for Loan Loss Provisioning and Dividend posting
Mentors | @Vishwas Babu A J |
Overview & Objectives | Across the globe, thousands of financial cooperatives are bringing financial inclusion to the Base of the Pyramid in the form of SACCOs, credit unions, cooperative societies, etc. One major feature gap that we still don't fully support in Mifos X is proper management of shares and member equity and calculation and posting of dividends. This project would cover that functionality as well as adding loan loss provisioning. Project involves adding two additional batch jobs in Mifos: a) For Loan Loss Provisioning b) Dividend calculation and posting for Share accounts |
Description | Batch job for Loan Loss Provisioning - create configurable overdue buckets in the database - Facility to specify this for all loan products or have product specific configurations Batch job for Dividend calculation and posting: - Accounting heads for posting dividend b) Preview screen - for viewing calculated dividend values and giving approval to proceed (and excluding some accounts) c) Post Dividends - entries that were approved in b) will be posted to the relevant accounts and accounting entries passed. This batch job will never be scheduled, but will always be manually invoked. |
Helpful Skills | SQL, Java (Jersey, Spring, JPA), Javascript (knowledge of Angular JS is a plus), Git |
Impact | From a business perspective, these add a lot of value in automating some of the key year end computations |
Other Resources |
|
Two Factor Authentication for certain types of transactions
Mentors | @Markus Geiss (Deactivated) |
Overview & Objectives | Enable two factor authentication for certain types of transactions - for example transfers initiated, need to be confirmed via a One-Time-Password generated by Mifos and sent via SMS to client's mobile number. |
Description | a) Need the existing SMS integration to be stabilized c) Sending of OTP via SMS and Email d) OTP verfication and expiration |
Helpful Skills | SQL, Java, Javascript, Git |
Impact | Provides more security for clients especially during loan disbursements and savings withdrawals or transfers. |
Other Resources |
|
Self-Service Application - Mifos Platform Changes
Mentors | @Markus Geiss (Deactivated) |
Overview & Objectives | Develop a set of APIs that can be used by a front end application that is meant for Client/Member Self-Service |
Description | Design for how the self-service APIs will be invoked and internal design on the Mifos Platform to support self-service. Develop a set of APIs for the following:
|
Helpful Skills | SQL, Java, Javascript, Git |
Impact | Allows a member/client in having a self-service channel - i.e. online banking interface through a browser or smartphone app. |
Other Resources |
|
Self-Service - Web App development
Mentors | Gaurav Saini |
Overview & Objectives | This has a dependency on the Self-Service backend API's being available |
Description | Develop AngularJS Screens:
Integrate with the corresponding APIs on the Mifos platform. |
Helpful Skills | AngularJS Development , SQL, Java, Javascript, Git |
Impact | Allows a member/client in having a self-service channel allowing them more direct control and visibility into their financial livelihood. |
Other Resources |
Self-Service - Android App development
Mentors | TBD |
Overview & Objectives | This has a dependency on the Self-Service backend API's being available |
Description | Develop Android Screens:
Integrate with the corresponding APIs on the Mifos platform. |
Helpful Skills | Android development, SQL, Java, Javascript, Git |
Impact | Allows a member/client in having a self-service channel allowing them more direct control and visibility into their financial livelihood. |
Other Resources |
|
Data Tables Improvements to Support Workflows
Mentors | @Binny Gopinath Sreevas (Unlicensed) |
Overview & Objectives | Workflows can be used for adding additional data/surveys for capturing data or adding checklist to a pre-defined workflows at certain points of the workflow (scope does not include adding custom workflows). This project would build off the existing Data Tables modules to add enhancements for pseudo-workflows. |