Google Summer of Code 2017 Ideas
Mifos Initiative has been Accepted as a Mentoring Organization!
The Mifos Initiative has been accepted as a mentoring organization for the 2017 Google Summer of Code. Subscribe to this page for the latest updates to project ideas and mentors assigned to projects. Prospective students should begin engaging with the community and working on pull requests.
Get Stoked - End Poverty. One Line of Code at a Time.
- 1 Get Stoked - End Poverty. One Line of Code at a Time.
- 2 2017 GSOC Mentors
- 3 Guidelines
- 3.1 Expectations
- 3.2 Prerequisite Skills
- 3.3 Hints
- 4 Project Ideas
- 4.1 REST API "live" documentation (Swagger, SpringFox)
- 4.2 AngularJS Web App Enhancements
- 4.3 Browser-Based Offline Access
- 4.4 Android Field Operations App Version 4
- 4.5 Self-Service - Android App Version 2.0
- 4.6 Self-Service - Web App Development
- 4.7 Accounting Module Enhancements
- 4.8 Collateral Management Module
- 4.9 Insurance Claims Module
- 4.10 Configuration Wizard
- 4.11 Extend Surveys & SPM Framework
- 4.12 Extend Mifos Data Import Tool
- 4.13 Scalability & Performance Enhancements for Supporting Millions of Clients
- 4.14 Static Analysis of Apache Fineract
- 4.15 Front Desk Service Module / Experience Module
- 4.16 Integrating FINOCIAL.AI / Machine Learning Build Model and Predict Module
- 4.17 Integrating FINOCIAL.CHAIN / Private Blockchain to Enable FI to Perform DIGITAL 3.0 Transactions with Everyone
- 4.18 Integration of Egalite Agent Banking App
- 4.19 Self-Service - USSD App Development
- 4.20 Mobile Money Integration Phase 2 - East Africa
- 4.21 Mobile Money Integration - West and Central Africa
- 4.22 Client Impact Portal Phase 2
- 4.23 Credit Bureau Integration Phase 2
- 4.24 ETL-Based Data Migration Tool for Loan Performer to Mifos X
- 4.25 Actionable notifications/alerts/status updates in Mifos X (Update)
- 4.26 Two-Factor Authentication
- 4.27 Basic CRM Functionality - Inquiries/Complaints Module
- 4.28 JPOS Integration - Point of Sale Cash Out
- 4.29 Security Penetration testing
- 4.30 Mifos ID/Profile - Single Sign On for Community Infrastructure
- 4.31 Scalable Mifos X deployment on OpenShift: Automated Continuous Delivery, Scripts, Documentation (UPDATE)
- 4.32 Mifos X on "Enterprise Stack" - IBM WebSphere and Oracle WebLogic tests & documentation (UPDATE)
- 4.33 Ad Hoc Reporting Module/Business Analytics (OLAP)
- 4.34 Custom Fantastic Mifos Project
- 5 See also
2017 Google Summer of Code - Get to Know Mifos
We're looking forward to participating in Google Summer of Code for our fifth year. In 2016, we successfully graduated six 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 2017 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.
2017 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 |
|---|---|---|---|
India | IST (GMT +5:30) | ||
India | IST (GMT +5:30) | ||
Cameroon | WAT (GMT +1:00) | ||
India | IST (GMT +5:30) | ||
India | IST (GMT +5:30) | ||
USA | CST (GMT -6:00) | ||
India | IST (GMT +5:30) | ||
USA | CST (GMT -6:00) | ||
Puneet Kohli | India | IST (GMT +5:30) | |
India | IST (GMT +5:30) | ||
Tentative | India | IST (GMT +5:30) | |
USA | EST (GMT -5:00) | ||
Portugal | WET (GMT) | ||
Kenya | EAT (GMT +3:00) | ||
India | IST (GMT +5:30) | ||
India | IST (GMT +5:30) | ||
India | IST (GMT +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:
Use the mifos-developer mailing list and Apache Fineract developer list and Gitter chatrooms
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, Java, Android
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 Mifos X distribution.
Instructions for running the platform are in the Apache Fineract Contributor's Zone
Getting started with the web app can be found in the Getting Started Guide
Source Code:
Apache Fineract platform: https://github.com/apache/incubator-fineract
Android App for Field Officers: https://github.com/openMF/android-client
Android App for Clients (Self-Service): https://github.com/openMF/self-service-app
Data Import Tool: https://github.com/openMF/DataImportTool
Message Gateway: https://github.com/openMF/message-gateway
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 here.
Project Ideas
All 2017 projects will be related to the Community App, our Android apps, or any additional tools or modules. 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.
REST API "live" documentation (Swagger, SpringFox)
Mentors | @Aleksandar Vidakovic |
Overview & Objectives | Mifos (Fineract) of course has a documented REST API already. It currently has two limitations:
The goal of this project is address this by using Swagger (now Open API Initiative OAI), most probably combined with SpringFox in for Mifos (Fineract), and replace the current apiLive.htm. Phase II: once the Swagger live documentation is working it would be interesting to use the Swagger descriptor to generate client libraries (e. g. Java, Angular2). Nice to have optional add-on ideas for the end of the project: Add a paragraph to this new REST API Doc explaining how to easily import the (latest) Mifos Swagger into Postman, and perhaps add a Run in Postman button? Someone suggested a potential alternative to using Swagger & SpringFox may be to instead use Spring REST Docs; if you feel that is better suite to fulfill the requirements above, please do feel free to explain this to your mentor and pursue in that direction. |
Description |
|
Helpful Skills | Java, Spring Framework, REST, Git, Gradle |
Impact | Easier to consume Mifos REST API for front-end/mobile etc. developers. |
Other Resources | see external links inline above |
JIRA Task |
AngularJS Web App Enhancements
Mentors | @Gaurav Saini, @Pranjal Goswami, @Maulik Soneji |
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 2016, our Google Summer of Code intern refactor, re-designed, and re-skinned the Web App. This project would continue by making additional UI enhancements including:
|
Helpful Skills | Javascript, CSS, HTML5. AngularJS and Bootstrap (CSS framework) is plus |
Impact | Enhanced User Experience, Intuitive application design |
Other Resources |
Browser-Based Offline Access
Mentors | @Gaurav Saini, @Pranjal Goswami, @Maulik Soneji |
Overview & Objectives | For this project, we require an intern who is qualified and willing to work core HTML5 offline functionality. If we able to add offline support in community-app then we can have same application working on all browsers with offline support and need of a desktop app will not be needed. |
Description | The project will involve the following. It will be a continuation of the 2016 Google Summer of Code project worked on by Mohit.
|
Helpful Skills | Javascript, CSS, HTML5. HTML5 Offline support knowledge i.e - Service workers, Sw-toolbox, IndexedDB wrappper - Dexie.js |
Impact | Offline Functionality to Community App |
Other Resources |
Android Field Operations App Version 4
Mentors | @Ishan Khanna |
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 2016, our Google Summer of Code intern refactored the entire application, implemented offline synchronization for clients and groups, and added improved functionalities for client onboarding, loan and savings collection, and GIS-based location tracking. All this work comprised Version 3.0 of the Android App This project would continue that work and transform it into Version 4 - by extending offline synchronization and adding additional functionalities. |
Extend our existing Android Field Operations App from Version 3 to Version 4 with
This would all be on top of the corresponding APIs on the Mifos platform. | |
Helpful Skills | Android 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 | https://github.com/openMF/android-client Architecture overview: https://github.com/openMF/android-client/wiki/Project-architecture-overview Code style conventions guide: https://github.com/openMF/android-client/wiki/Code-style-conventions |
Self-Service - Android App Version 2.0
Mentors | Satya Naryan, Ishan Khanna |
Overview & Objectives | We have recently released a full set of client-facing APIs to enable self-service channels for clients to interact with their own data and transact in a self-service manner. Previously all Mifos operations were performed by back office staff. Now clients can authenticate themselves, view and edit their account details. and make repayments or transactions between their own accounts. It is now possible for them to have direct banking apps that they can utilize including smartphone-based mobile banking, USSD-based mobile banking, and online banking via a web app. |
Description | The initial application was developed by 2016 GSOC intern and then taken beyond its initial stages by Rajan Maurya. Detailed user stories and wireframes outlining implementing the following functionalities have been documented. Work will involve both development of the Android application as well as work on the back-end to extend the existing self-service RESTful APIs.
Integrate with the corresponding APIs on the Mifos platform. |
Helpful Skills | Android development, SQL, Java, Javascript, Git, Spring, OpenJPA, Rest, |
Impact | Allows 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 Source Code: https://github.com/openMF/self-service-app |
Self-Service - Web App Development
Mentors | @Gaurav Saini, @Maulik Soneji |
Overview & Objectives | We have released a full set of client-facing APIs to enable self-service channels for clients to interact with their own data and transact in a self-service manner. Previously all Mifos operations were performed by back office staff. Now clients can authenticate themselves, view and edit their account details. and make repayments or transactions between their own accounts. It is now possible for them to have direct banking apps that they can utilize including smartphone-based mobile banking, USSD-based mobile banking, and online banking via a web app. The focus of this project would be building out a clean and simple AngularJS application that can be used as a reference web app for financial institutions to directly deploy and offer to their customers or for our our support partners to customize and enhance to the local needs of their market. There currently is a proof of concept architecture that can be used as a starting point along with detailed wireframes and user stories. |
Description | Develop AngularJS Online Banking Interface:
|
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 APIs - https://cwiki.apache.org/confluence/display/FINERACT/Customer+Self-Service Source Code - https://github.com/openMF/web-self-service-app Complete Details can be found here: Self Service Web Application |
Accounting Module Enhancements
Mentors | @NazeerS |
Overview & Objectives | Mifos X and the Apache Fineract platform already provide a range of sophisticated financial accounting needs, however for organizations that use it as both their core banking system and accounting system all in one, they continue to need other features. While Mifos X never intends to replace an ERP or accounting package, we do want to continue to add additional functionalities that provide the necessary integration with the portfolio and general accounting functionality to support a financial institution's core operations. Several features have been requested by users and partners that we've grouped together as one task. Applicants should be familiar with the stack as well as the accounting and financial services domain. Some of this work will include finalizing and incorporating existing pull requests and contributions that have been made by partners. |
Description | These enhancements will all be built into the Apache Fineract platform as part of or enhancements on top of the existing accounting module which provides full configuration of the chart of accounts, support for cash and accrual accounting, automated integration with the portfolio accounts and financial mappings, and single and compound journal entries to the general ledger. New enhancements include:
|
Helpful Skills | HTML, Spring, Hibernate, REST, Java, AngularJS, Javascript, SQL |
Impact | Better internal control and financial transparency |
Other Resources |