Get Stoked - End Poverty. One Line of Code at a Time.
Watch how Mifos technology is helping end world poverty
Guidelines
Expectations
Students working on Mifos will be expected to:
- Use the mifos-developer mailing list
- provide patches
- follow the Mifos coding standards
- document their work
- 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, Maven
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, Hibernate, Spring, Struts
- JSP/JSTL, HTML/XHTML, CSS, JavaScript
- JUnit, TestNG, Selenium
Please also see the list of suggested tools for development with Mifos.
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 Web application. Instructions for doing so are available on this wiki.
- 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.
Mentor |
Project |
Location |
Time Zone |
---|---|---|---|
User 'Former user' not found
|
|
India |
IST (GMT +5:30) |
Michael Vorburger
User 'Former user' not found
|
|
Switzerland |
CET (GMT +1:00) |
Kojo Gambrah
User 'Former user' not found
|
|
Ghana |
GMT |
Jakub Slawinski
User 'Former user' not found
|
|
Poland |
CET (GMT +1:00) |
Vishwas Babu
User 'Former user' not found
|
|
India |
IST (GMT +5:30) |
Project Ideas
This idea list is not final yet. More projects could be added or removed.
Next MVC - Spring MVC 3.1, Freemarker
Mentor: ~ugupta
Make MVC layer more productive by using Spring MVC with Freemarker Templates(FTL).
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.
- (Optionally) Using JQuery plugin, Ajax calls to REST API
HINT: Learn Spring MVC patterns and optionally JQuery
Identify problems related to project, start asking good questions on developer mailing list, start creating a plan.
Collateral Management System
Mentor: ~vishwasbabu
Add Collateral Management abilities to Mifos (functional spec to be attached)
Objectives
- Add features for defining Collateral Types and associating default values against collaterals
- Add features for attaching Collaterals to Loan Products, capturing various properties of collaterals, calculate maximum permissible loan amounts etc
Helpful Skills : HTML, JSP/JSTL,Spring MVC, Spring, Hibernate, JUnit
Convert Mifos acceptance tests to Webdriver and optimize for better performance.
Possible mentor: Michael Vorburger
Mifos uses Selenium for automated UI acceptance tests. Currently all tests are running with Selenium RC. While we've done some work to move towards Selenium 2.0, but more work is possible to make the tests actually optimized to use features of Selenium 2.0 (Webdriver).
More information:
developer list discussions: http://tinyurl.com/47726vr | http://tinyurl.com/4sjaetc | http://tinyurl.com/4gzpyb9
Selenium 2.0: http://seleniumhq.org/docs/03_webdriver.html
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 HSQL 2.x
Possible Mentor: Michael Vorburger
Mifos uses MySQL 5.1 as its primary database.
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
We want to achieve :
- In memory integration/acceptance testing
- Development without MySQL
- Possibility of Mifos demo package using HSQL DB
- Possibility of using Mifos with other databases (least configuration refactoring)
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.
XBRL Reporting Integration
Mentor: TBD
Add Collateral Management abilities to Mifos (functional spec to be attached)
Objectives
- Generate necessary XBRL format reports corresponding to MIX taxonomy
- Create external client needed to map data to this taxonomy.
Helpful Skills: HTML, SQL, Pentaho
More Information:
Discussion on XBRL on Mailing List regarding Mix Pilot Program for XBRL
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:
- 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
Client Scoring Modules
Document Management functionalities
Custom Fantastic Mifos Project
Is there something missing from this ideas list that you want to do? Let us know! Send your project proposal(s) to the developer mailing list.