Getting started

This page should guide you through the first steps of contributing to Mifos. Welcome, we're happy to see you! : o)

Need Help?

The Mifos community prides itself on being an open, accessible and friendly community for new participants. If you have any difficulties getting involved or finding answers to your questions, please bring those questions to the mailing-list so that we can help you get started.

To join the mailing-list:

If you want to skim our mailing-list archive:!forum/mifosdeveloper.

What skills do I need?

Mifos X is a large project and we're happy to receive contributors with very different skills.

  • If you know Java, for instance, you can contributor either to the core platform or the Android App or both.
  • If you know JavaScript or HTML 5/CSS, you can contribute to the community-app our default single page application.
  • If you understand the vulnerabilities of getting data from one system into another, you can contribute to our data migration tool.
  • And there are also many ways to contribute to the Mifos mission without programming. You can get involved in design, support, translation, testing, or other types of contributions.

On this page:

Step 1 - Build Mifos X

If you'd like to contribute to Mifos X, instruction to build Mifos X are here. Getting set up may take some time - there are some downloads involved - so you may want to move on to the next steps while it builds.

Step 2 - Find something to work on

If there's something you'd like to fix about a Mifos project, this can be a good place to start.

Before creating a new issue first search JIRA for relevant keywords.

Find a bug we've identified as a good fit for new contributors.

Digging for an issue filed in JIRA can be hard to know where to start, so we've created these bug categories to make getting involved a little easier:

  • introductory
    • They're all about small changes - sometimes as little as a few lines - but they're a great way to learn about setting up your development environment, navigating JIRA and making contributions to the Mifos codebase.
  • mentored
    • More challenging, but have a mentor who commits to helping you through the process. Generally, there should be enough information in the issue to get started. Whenever you need help, contact the mentor by email, or in the issue itself, or by email. When you've completed the bug, they will help you submitting your first pull request.

Step 3 - Fix the issue

We leave this in your capable hands. We have some resources to help you here too:

Step 4 - Get your code reviewed

Once you fix the issue, ask for review. Do this by clicking the Review button on the issue, then setting the assigner flag to unassigned.

Step 4.1 - Respond to the review

For most new contributors - and often for long time members! - the first review will be disallowed. This doesn't mean you've done bad work, but it does mean that there is still some work to do before the code can be pulled. Your work may need some changes - perhaps minor, perhaps major - and your reviewer will give you some guidance about what needs to be done next.

This is an important process, so don't be discouraged! With a long-lived codebase and hundreds of thousands users, the care and attention that goes into helping contributors merge solid changes is the cornerstone of the Mifos project. Make the changes your reviewer asks for; if you're unsure how, be sure to ask! Ask for review again from the same reviewer.

Step 5 - Actually get your code in

Once your changes are reviewed, create a pull request. Make sure you meet all necessary prerequisites before sending the pull request.

Step 6 - Repeat

Thank you. You've fixed your first issue, and Mifos X is stronger for it. But don't stop now, go back to Step 2 and find more you can work on.