Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Table of Contents
outlinetrue
Note

Unfortunately Mifos was not selected to participate in Summer of Code for 2012. We still plan on engaging with students to take on these projects so stay tuned for more details!

 

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

This is the third year that Mifos will be participating in Google Summer of Code. Over the years, we've brought on someamazing 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.  

What is Mifos

When is the GSoC?

...

Mentor

Project

Location

Time Zone

User Profile
userugupta557058:17a2a4bb-8dab-42c0-aaa2-0cac0c6d8ba6

 

India

IST (GMT +5:30) Michael Vorburger

User Profile
uservorburger557058:5f965da8-b9d1-4c96-86f2-0921e41dda17

 

Switzerland

CET (GMT +1:00) Kojo Gambrah

User Profile
userkgambrah557058:59a2f1c9-f496-449b-9ea9-9ab65b908d01

 

Ghana

GMT Jakub Slawinski

User Profile
userjslawinski557058:2c5dba18-068d-43d6-a3bd-6295c19d5d62

 

Poland

CET (GMT +1:00) Vishwas Babu

User Profile
uservishwasbabu557058:a229ed08-ab13-4620-b9a7-69d46f997c06

 

India

IST (GMT +5:30)

Project Ideas

...

Next MVC - Spring MVC 3.1, Freemarker 

Mentor: ~uguptaMake UdaiU (Unlicensed)

Mifos UI and MVC is quite old and has lot of scope for improvement, we want to make MVC layer more productive by using Spring MVC with Freemarker Templates(FTL).

In simple words, we want to keep same work flow and design but improve code (or rewrite) using new frameworks like Spring/FTL and Jquery.

Objectives

  • Replace Struts 1.2.x Action/ActionForm with Spring/FTL
  • Improve existing FTL macro and Spring Controllers and establish a clear pattern for others.
  • Improve i18n and L10n support.
  • (Optionally) Using JQuery plugin, Ajax Use JQuery data ajax calls to REST API and widgets like date calendar.

HINT: Learn Spring MVC patterns and optionally JQueryJQuery, start playing with Mifos code using Workspace 2.0, try running Mifos. (https://github.com/ugupta/mifos-dev)

Identify problems related to project, start asking good questions on developer mailing list, start creating a plan.

Improve i18n and L10n support in Mifos

Mentor: UdaiU (Unlicensed)

Mifos supports multiple languages, there is lot of scope for improvement to make it easier to add changes, Translate Mifos will give you more idea how it works.

In simple words, we want to make it easier for people to add new translations in Mifos, most importantly remove redundancy.

Objectives

  • Find and remove duplicate properties
  • Remove Lookup tables

HINT: Learn more about i18n and L10n support, start playing with Mifos code using Workspace 2.0, try running Mifos. (https://github.com/ugupta/mifos-dev)

Identify problems related to project, start asking good questions on developer mailing list, start creating a plan.

Collateral Management System

Mentor: ~vishwasbabuVishwas Babu A J

Add Collateral Management abilities to Mifos (functional spec to be attached)

...

Helpful Skills : HTML, JSP/JSTL,Spring MVC, Spring, Hibernate, JUnit

Business Analytics (OLAP)

Mentor: KojoG
Extend the Mifos Business Intelligence data warehouse to create OLAP cubes. This will allow managers to perform ad hoc slicing and dicing of their data 
to answer important questions about their operations.

Objectives

  • Create a Mondrian schema
  • Improve ETL scripts along the way

Helpful Skills Database Management Systems, MDX, SQL,

See:

Saiku Analytics Demo - demo.analytical-labs.com
Wikipedia OLAP Article - http://en.wikipedia.org/wiki/Olap
Introduction to OLAP - http://www.db-class.org/course/video/preview_list
Gentle Introduction to MDX - http://www.iccube.com/support/documentation/mdx_tutorial/gentle_introduction.html

Convert Mifos acceptance tests to Webdriver and optimize for better performance.

...

Do some reading on these threads, run the existing acceptance tests, come up with a proposal of what improvements can be made to speed up development and testing by optimizing these tests.

Mifos 2.x with

...

Embedded Database

Possible Mentor: Michael Vorburger

Mifos uses MySQL 5.1 as its primary database.

Mifos has abstraction from underlying database using

...

...

We want to achieve :

  • In memory Simple / easy launch of integration/acceptance testing, without requiring an external DB (ideally in an automatically created RAM Disk...)
  • Development without manual MySQL installation
  • Possibility of Mifos self-contained demo package using HSQL DB
  • Possibility of using Mifos with other databases (least configuration refactoring)

...

The first thought that comes to mind is to achieve this with a pure-Java in-memory database such as H2. However, in order to avoid maintaining & supporting 2 different databases for Mifos, basing this on https://github.com/vorburger/MariaDB4j would be interesting.

Do some Googling, Search Mifos JIRA, mailing list for more information. Identify some small problems related to this project and submit patch (if possible), Come up with a good plan and start a discussion on developer mailing list.

Mifos has abstraction from underlying database using:

  • Hibernate as ORM (must have good experience with Hibernate)
  • Liquibase as Database refactoring tool
  • DbUnit as test dataset maintenance

XBRL Reporting Integration

Mentor: TBD

Add Collateral Management abilities to Mifos (functional spec to be attached)XBRL is gradually being adopted as the reporting and data standard for microfinance.  This project would involve building out the reports to generate in the necessary XBRL-compliant format as well as an external client needed to map the data in Mifos to the proper XBRL taxonomy.  MIX Market is leading adoption of XBRL as a data standard. By having one common reporting format, MFIs can save substantial time in generating end of period reporting to funders, regulators, associations, etc. 

Objectives

  • Generate necessary XBRL format reports corresponding to MIX taxonomy
  • Create external client needed to map data to this taxonomy. 

Helpful Skills: HTML, XML,  SQL, Pentaho

More Information: 

...

Previous Work on XBRL format reports: [http://mifosforge.jira.com/browse/MIFOSBI-15|../../../../../../../../../../../browse/MIFOSBI-15\] | [http://mifosforge.jira.com/browse/MIFOSBI-43|../../../../../../../../../../../browse/MIFOSBI-43\

Business Analytics (OLAP)

Mentor: ~kgambrah
Extend the Mifos Business Intelligence data warehouse to create OLAP cubes. This will allow managers to perform ad hoc slicing and dicing of their data to answer important questions about their operations.

Objectives

  • Create a Mondrian schema
  • Improve ETL scripts along the way

Helpful Skills Database Management Systems, MDX, SQL

See:

Client Scoring Modules

Document Management functionalities ]

Client Scoring Modules

Mentor: TBD

MFIs using Mifos often want to implement a credit scoring/client prospecting analysis tool to help automate the onboarding process for new clients by creating quantifiable measures to assess credit worthinesss. More and more MFIs are moving towards individual lending models where this scoring will be of greater need. Using our Question Groups module and our Mifos Business Intelligence Suite on Pentaho, they can set up questions and define parameters/scores to assess these questions.  

Objectives: 

  • Based on user requirements, develop algorithms and scoring parameters in Pentaho to create this scoring module. 

See:

Context-Sensitive Help in Mifos Application

Mentor: TBD

Currently the Mifos application lacks any built-in help functionalities (tooltips, hyperlinks) etc.  This project would involved adding in context-sensitive help that links to various sections of our user manual on FLOSS Manuals

Objectives: 

  • Throughout Mifos application, add tooltips/hyperlinks that link to relevant sections in Mifos user manual.

Add/Improve import functionality

Mentor: Jakub Sławiński (Unlicensed)

The current Mifos version supports only importing of the Client data (that allows to create new clients in the system) and transactions (payments/disbursals/withdrawals/etc.). Many MFIs have requested to extend import functionality to allow importing Loans/Savings data (to create new accounts in the system). Moreover, It would be great to have the possibility to bulk modify existing clients/accounts via import functionality (currently you can only add new client entries). This feature will be very useful during data migration from the legacy MIS, which is an Achilles heel of the Mifos currently.

Objectives

  • Add the possibility to import new Loans data.
  • Add the possibility to import new Savings data.
  • Extend import functionality to allow to modify existing entities.

HINT: Configure your development environment, try to run Mifos, look at the existing import Client data code.

Identify problems related to project, start asking good questions on developer mailing list, start creating a plan.

Improve Admin configuration possibilities

Mentor: Jakub Sławiński (Unlicensed)

Currently Mifos can be customized by changing values in the configuration files like:

  • applicationConfiguration.custom.properties
  • mifosBeanConfig.custom.xml
  • mifosChartOfAccounts.custom.xml

When you change something in these files, you have to restart Mifos in order to see these changes in the application. Moreover, only part of these settings is visible in the UI. This makes Mifos hard to manage remotely and very cumbersome if we want to customize it. The possibility to modify configuration via UI will be very convenient. Moroever, it will help in providing hosted Mifos service, because it will eliminate the need to modify something in the filesystem.

Objectives

  • Add/improve the functionality of displaying all Mifos configuration values.
  • Add the possibility to modify configuration values via UI.
  • Add the possibility to import/export configuration values via UI.

HINT: Configure your development environment, try to run Mifos, look at the code related to Mifos configuration.

Identify problems related to project, start asking good questions on developer mailing list, start creating a plan.

Custom Fantastic Mifos Project

...