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 is Mifos

When is the GSoC?

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:

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.

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

Official GSoC 2011 timeline

See also