SoC 2011 Ideas
Mifos will not be participating in the Google Summer of Code 2011. You are welcome to contribute to Mifos as a volunteer.
Mifos not in Google Summer of Code 2011
Mifos will not be participating in the Google Summer of Code 2011. You are welcome to contribute to Mifos as a volunteer.
Get Stoked - End Poverty. One Line of Code at a Time.
What happened in the GSoC 2010?
Watch how Mifos technology is helping end world poverty
Learn about Mifos Shared Vision of 3 000 000 000 Maries
Guidelines
Expectations
Students working on Mifos will be expected to:
- use the mifos-developer mailing list
- use the IRC channel
- please announce yourself, and feel free to share details like: who you are, your IRC nickname, Where are you in studying, what timezone you're in, why you're interested in Mifos. Don't hit and run; plan on hanging around in the channel for a while.
- provide patches
- follow the Mifos coding standards
- document their work
- write and speak fluent English
- 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, Subversion, 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, Grails
- 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.
- Drop by the IRC channel or 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 |
---|
Project Ideas
This idea list is not final yet. More projects could be added or removed.
Hopefully, we will finalize it by first week of March.
Project: Day-to-Day collaboration on re-writing presentation layer
possible mentor: keith woodlock
I am willing to mentor and work with one GSOC student on a day to day basis in relation to work around re-writing areas of the presentation layer.
Goals:
- Through mentoring, to enable the student to deliver working software within the short timeframe of GSOC;
- To hopefully form a relationship with the student whereby the would wish to continue working on mifos post GSOC
Project Notes:
- Initiative: GSOC is short and as such we like to see students who actively take an interest and show that they can come up to speed with development on mifos by being setup with mifos development environment and able to submit bug fixes/new features by creating patches and submitting to the developer list.
- Communication: We want people who are capable of communicating through IRC, email and on Skype/phone and willing to do so on a daily basis.
- Visibility of work: Not a college style project, you don't have x number of weeks to deliver, we expect frequent checkin of work to our version control respository so your work and be review and feedback given on as close to a daily basis as possible.
Possible work
- Define System User creation flow
- Define Offer creation flow
- Define loan product flow
Increase Unit test coverage
Build Demo and Test data generator for Mifos.
Mentor: tbd
It's a challenge to build useful, time-relevant demo and test data in Mifos. Challenges include data becoming aged (e.g. loans go in arrears) and having data in useful states to quickly demonstrate unique features.
This project would possibly use new service facades and API methods developed for data migration to build new demo and test data. Ideally data could be build with flexibility on client names, regions, etc. Also with flexibility on the size of the data base (e.g. number of clients)
Convert Mifos acceptance tests to Webdriver and optimize for better performance.
Possible mentor: Jeff Brewster
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:
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.
Conversion of UI tests to API level tests and writing new API level tests
Mentor: Kojo Gambrah
Mifos 2.x with HSQL 2.x
Mentor: UdaiU (Unlicensed)
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.
Mifos - OpenBravo Integration
Mentor: UdaiU (Unlicensed)
Mifos has accounting integration with a proprietary solution Tally 9 ERP
http://mifosforge.jira.com/wiki/display/MIFOS/Accounting+Integration+with+Mifos
We want to achieve the accounting integration with OpenBravo
Mifos - OrangeHRM Integration
OrangeHRM - http://www.orangehrm.com
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.
Timeline
mid February |
Mifos developers and mentors finalize project list and assign mentors |
late February / early March |
Mifos application for GSoC 2011 sent to Google |
mid March |
students download and build Mifos, introduce selves on IRC |
late March |
students submit applications |
April |
students accepted, matched with mentors, announced |
May |
students must be coding by this time |
July |
Mid-terms |
August |
pencils down |