Google Summer of Code 2016 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 2016 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 Community App Enhancements (Completed)
- 4.3 Browser-Based Offline Access (In Progress)
- 4.4 Android Field Operations App Version 3 (Completed)
- 4.5 Self-Service - Android App development (In Progress)
- 4.6 Self-Service - Web/Hybrid App Development (In Progress)
- 4.7 Integration of Egalite Agent Banking App
- 4.8 Self-Service - USSD App Development
- 4.9 Mobile Money Integration - East Africa (In Progress)
- 4.10 Mobile Money Integration - South Africa
- 4.11 Mobile Money Integration - West and Central Africa (In Progress)
- 4.12 Outbound and Inbound SMS Integration
- 4.13 Client Impact Portal Phase 2
- 4.14 Credit Bureau Integration (In Progress)
- 4.15 Clean Energy Integration
- 4.16 Collateral Management Module
- 4.17 Mifos Based Social Enterprise
- 4.18 Insurance Claims Module
- 4.19 Pay as you Go Solar Module Phase 2
- 4.20 Extend Mifos Data Import Tool (In Progress)
- 4.21 ETL-Based Data Migration Tool for Mambu to Mifos X
- 4.22 ETL-Based Data Migration Tool for Loan Performer to Mifos X
- 4.23 Actionable notifications/alerts/status updates in Mifos X (Complete)
- 4.24 Basic CRM Functionality - Inquiries/Complaints Module
- 4.25 JPOS Integration - Point of Sale Cash Out
- 4.26 Security Penetration testing
- 4.27 Mifos ID/Profile - Single Sign On for Community Infrastructure
- 4.28 Scalable Mifos X deployment on OpenShift: Automated Continuous Delivery, Scripts, Documentation
- 4.29 Mifos X on "Enterprise Stack" - IBM WebSphere and Oracle WebLogic tests & documentation
- 4.30 Automation of Conversion of AngularJS Community App into Chrome App
- 4.31 UI meta modeling, making screen adaption a configuration instead of coding activity
- 4.32 Extend Community app to run on Mobile devices with Offline Support
- 4.33 Business Analytics (OLAP)
- 4.34 Web UI quality cross browser non-regression testing
- 4.35 Front Desk Service Module / Experience Module
- 4.36 Custom Fantastic Mifos Project
- 5 See also
The Mifos Initiative has been selected as a mentoring org for the 2016 Google Summer of Code. Subscribe to this page for the latest updates to project ideas and mentors assigned to projects.
2016 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 2016 will have the option to work on a variety of projects related to our front-end Community App built on top of the AngularJS framework, and a variety of other apps including our Android-based mobile client.
2016 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!
These are the current mentors for the 2016 program. Please reach out to them if you have any questions. Projects they're leading will be finalized later on.
Mentor | Project | Location | Time Zone |
|---|---|---|---|
India | IST (GMT +5:30) | ||
Cameroon | WAT (GMT +1:00) | ||
India | IST (GMT +5:30) | ||
India | IST (GMT +5:30) | ||
India | IST (GMT +5:30) | ||
Switzerland | CET (GMT +1:00) | ||
USA | PST (GMT-8:00) | ||
India | IST (GMT +5:30) | ||
USA | EST (GMT -5:00) | ||
USA | MST (GMT -7:00) | ||
Portugal | WET (GMT) | ||
Sri Lanka | SLT (GMT +5:30) | ||
Canada | PST (GMT -8:00) | ||
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
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.
Project Ideas
All 2016 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 Mifos X platform, 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.
REST API "live" documentation (Swagger, SpringFox)
Mentors | @Aleksandar Vidakovic, @Michael Vorburger |
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 Community App Enhancements (Completed)
Mentors | @Gaurav Saini, @Pranjal Goswami |
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. |
Description | The project will involve the following:
|
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 (In Progress)
Mentors | @Gaurav Saini, @Pranjal Goswami |
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:
|
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 3 (Completed)
Mentors | Satya Narayan |
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, several outreaching interns added in significant new enhancements including refactoring, implementation of material design, offline, surveys, and new functionalities taking it from Version 1 to Version 2. This project would continue that work and transform it into Version 3 - by following the refactoring design standards, providing a design refresh, and adding in new functionality. |
Extend our existing Android Field Operations App from Version 2 to Version 3 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 development (In Progress)
Mentors | @Swapnil Agarwal |
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 | 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 |
Self-Service - Web/Hybrid App Development (In Progress)
Mentors | @Gaurav Saini |
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. The focus of this project would be designing and implementing a clean and simple Meteor.JS application that can be used as a reference web & hybrid mobile 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. |
Description | Develop MeteorJS Online Banking Interface:
|
Helpful Skills | AngularJS development, SQL, Java, Javascript, Git, MeteorJS |
Impact | Allows a member/client in having a self-service channel allowing them more direct control and visibility into their financial livelihood. |
Other Resources |
Integration of Egalite Agent Banking App
Mentors | @Ashok Auty |
Overview & Objectives | Agent Banking has become a key new delivery channel to increase reach, lower cost, and broaden the depth of services available. We will be taking over the Egalite codebase that's being donated to the Mifos Initiative by BFSI Consulting - it's a fully functional Android-based app for agents that works with any core banking system. This project would involved extending the application so it fully integrates with and works on top of the Mifos X platform |
Description | The current codebase is stand-alone and can integrate with any core banking system. This project will involve converting it to work on top of Mifos X by leveraging the Mifos X APIs for all functionalities that exist in Mifos X and adding in APIs for the functionalities that aren't present in Mifos X but in Egalite. The project will consist of the following: 1) Integrate the existing web service into Mifos X 2) Extend the webservice to use Mifos related data 3) Modernize the front end by using Material design |
Helpful Skills | Android, REST, Java, |
Impact | By enabling branchless banking, the costs of serving the poor are dramatically lowered, outreach can be extended to rural offerings, and brand new products and services that are more relevant can be delivered. |
Other Resources |
|
Self-Service - USSD App Development
Mentors | @Antony Omeri |
Overview & Objectives | This has a dependency on the Self-Service backend API's being available |
Description | Develop USSD App that allows clients to:
1. Loans
2. Savings
3. Other Services on the USSD menu
|
Helpful Skills | USSD, Java, SQL, Finite State Machine (FSM) |
Impact | Allows a member/client in having a self-service channel allowing them more direct control and visibility into their financial livelihood. Enable members of the society on-demand access to their.financial records even with basic mobile handset |
Other Resources |
Mobile Money Integration - East Africa (In Progress)
Mentors | @Antony Omeri |
Overview & Objectives | Mobile money is rapidly transforming financial inclusion by providing more immediate, impactful, affordable, and secure financial services to the client. Mobile money platforms like M-Pesa offer the client unparalleled value in terms of convenience, security and the possibility of new services and products that are more in line with real-world financial habits. For financial institutions and their clients to fully scale mobile money and leverage its potential, it needs to be fully integrated with their core-banking system. |
Description | Based on the extent of the APIs available through the various mobile money platforms, the level and seamlessness of integration can vary from real-time to end-of-day file-based integration. This project would work to provide several file, message, and or API-based reference integrations with leading mobile money platforms, including |