Contributors Guide

Getting Started to contribute to the Mifos Initiative

Mifos X is an extended platform for delivering the complete range of financial services needed for an effective financial inclusion solution. Mifos X is based on Apache Fineract. Apache Fineract is an open source software for financial services.
Fineract provides a reliable, robust, and affordable solution for entrepreneurs, financial institutions, and service providers to offer financial services to the world’s 2 billion underbanked and unbanked. Fineract is aimed at innovative mobile and cloud-based solutions, and enables digital transaction accounts for all.
Fineract 1.x is a mature platform with open APIs, while Fineract CN is a cloud native, microservice architecture also supporting open banking APIs.
Mifos Mobile CN is based on Apache Fineract CN. Apache Fineract CN is an Application Framework for Digital Financial Services. It is a system to support nationwide financial transactions and to support the creation of an inclusive, interconnected digital economy for every nation in the world.
You can set up fineract locally by visiting
You can find all of the Mifos' repository here. The active projects at the Mifos Initiative are:

Installing Git Bash

The first step would be to download Git Bash. You can also use Github Desktop. After you've installed Git Bash, go ahead and log your Github account in Git Bash.

Forking the repository

The next step would be to fork the repository you want to contribute to.
Its important to learn that you have to make changes to your fork. After you've formed the repository, you have to clone it.

Cloning the repository

You can do that by typing git clone [respository link] in Git Bash. Replace [repositorylink] with the repository's link.

Working on your local repository

Now that you've created a local repository, the next thing to do is to choose an issue that you'll be working on. Keep in mind that for every different pull request that you post, you need to work on a different branch. First, create a branch by opening Git Bash inside you local repository. That can be done by right clicking inside the folder.
Type git branch [branchname] and then git checkout [branchname]. Make the changes to the files that will solve the issue according to you.

Performing a Gradle Check (for Android Projects)

It is always advised to run a gradle check before you create a pull request. You can do this by typing ./gradlew check in your terminal of Android Studio. If the check is failing, please fix all the errors.

Committing your changes

When you're done with the changes, type these commands in the Git Bash.
  • git add .
  • git commit -m "commit message"
  • git push
Make sure you're in the branch that you created.

Making a Pull Request

When you're done with all the steps above, you're finally ready to make a pull request. A pull request is you requesting the org maintainers to merge your changes to the actual project. You can make one by visiting the Github repository of the organization. Click on Pull Requests and then New Pull Requests. Click on compare across forks.
Choose base as the org's project's main branch and compare as the branch that you just created. Fill all the details in the Pull Request template and finally post the Pull Request.

Squashing your commits

It is very common that a PR doesn't get approved on the first try and you are told to do some edits to your code. In a situation like this, your PR is obviously going to have a lot of commits. That's when squashing is going to help you combine all the commits into one single one. You can squash your commits by typing these commands in the Bash:
git rebase -i HEAD~x Please note that x is the number of commits you want to merge.
For example: git rebase -i HEAD~3 opens rebase for the last three commits.
You'll now see the commits that you've done in the branch with pick as the prefix. Change pick to s for every commit except the topmost one. Once you've done that, you'll need to save that. You can do this by pressing esc key and then typing :wq and pressing enter key. Then you'll see a screen which shows the commit messages for the new changes that you've just done. Type :wq again. Now that it's saved, you'll need to again push your changes. You can do this by typing git push --force in the Bash.

Editing your commits

Often times you'll be told to edit your commit message to the one suggested by the org maintainers. You can do this by typing git commit --amend.