Mifos User Documentation Portal
  • Overview and Background
    • History and Background
    • Mifos Vision, Mission & Values
    • Who Mifos is For
    • How Mifos is Used
    • The Mifos Stack
      • Overview
    • Mifos v/s Fineract
    • Community app v/s Webapps
  • General Contributing Guidelines
    • Upstream Development Approach
      • Contribution Process
      • The Apache Way
    • Contributors Guide
    • Contribution Guidelines: Android Project
    • Contribution Guidelines: Web Project
  • Getting Started
    • Getting started with Git & Github
    • Postman integration with Gitbook for testing
    • Testing framework-Web
    • Testing framework-Android
    • Mifos CI/CD tools and instructions
  • External 3rd Apps
    • Pentaho Reporting Plugin
    • Payment Hub
  • MifosX
    • Overview
    • User Manual
      • How to Use This Manual
      • For All Users
        • General Navigation
          • Sign In Page
          • Welcome Page
          • Dashboard Page
          • List Page
          • Menu Page
          • Form Page
          • Clients-Groups-Centers Navigation
          • Navigation Tool
          • Global Search
          • Loan Product and Accounting with Mifos
        • Reports
          • Standard Reports Shipped in Mifos X
          • Standard Reports Field Descriptions
          • Custom Reports
            • Creating Simple Pentaho Report and Embedding it to Mifos X
          • XBRL Reporting
      • For Administrators (Mifos X Platform)
        • Initial System Set Up
        • Administration
          • Users
          • Organization
            • Manage Offices
            • Currency Configuration
            • Manage Holidays
            • Manage Funds
            • Manage Employees
            • Bulk Loan Reassignment
            • Standing Instructions History
            • Teller / Cashier Management
            • Fund Mapping
            • Working Days
            • Password preferences
            • Payment type
            • Loan Provisioning Criteria
            • SMS Campaigns
            • Message Gateway Configuration
            • Daily Teller Cash Management
            • Entity Data Table Checks
          • System
            • Manage Data Tables
            • Audit Trails
            • Manage Codes
            • Manage Reports
            • Manage Roles and Permissions
            • Manage Scheduler Jobs
            • Configure Maker-Checker Tasks
            • Global Configuration
            • Manage Hooks
              • Steps for creating sms bridge
            • Account Number Preferences
            • Entity To Entity Mapping
              • External Services
          • Products
            • Loan Products
              • Loan Product Fields
                • Accounting Loan Product Fields
                • Configuring and Disbursing of Top-Up Loan
                • Declining Balance Interest Calculation
                • Enabling Floating Rate
                • Enabling Variable Installments
                • Flat interest calculation
                • Loan Product Fields—Additional Fields for Loans with Variable Terms based on Loan Cycle
                • Recalculate Interest
                • Tranche Loan Fields
              • Setting up Minimum Days between Disbursal and First Repayment
              • Product Mix
            • Charges
            • Floating Rate
            • Savings Products
              • Saving Product Fields
                • Accounting Saving Product Fields
            • Fixed Deposit Products
              • Fixed Deposit Product Fields
                • Accounting Fixed and Recurring Deposit Product Fields
              • Interest rate chart with amount range
            • Recurring Deposit
              • Recurring Deposit Product Fields
            • Interest Calculations for Deposit Products
            • Overdraft Product
            • Share products
              • Dividends
            • Manage Tax configuration
          • Templates
          • mifos dropdown
        • Clients, Groups and Centers
          • Manage Clients
            • Client Life Cycle Statuses
            • Client Relationship Management
          • Manage Groups
          • Manage Centers
        • Accounting
          • Chart of Accounts - General Ledger Setup
            • Default COA sql script
          • Accounts linked to Financial Activities
          • Migrate opening balances (Office-wise)
          • Accounting Rules
          • Provisioning Entries
          • Print General Ledger Listing
          • How To Enter GL Opening Balance
        • Configure Notifications
      • For Operational Users (Mifos X Web App)
        • Accounting operations
          • Add Journal Entries
          • Searching Accounting Transactions
          • Frequent Postings
          • Advanced Accounting Rules
          • Closing Entries
          • Accruals
        • Accounts and Transactions
          • Cash Transaction Processing
          • Deposit Accounts
            • Mifos X Saving Accounts
              • How to Activate a Saving Account
              • How to Add a Charge to a Saving Account
              • How to Approve a Saving Account Application
              • How to Calculate Interest for a Saving Account
              • How to Close a Saving Account
              • How to Create a Saving Account Application
                • Saving Account Fields
              • How to create overdraft account (Draft)
              • How to Delete a Saving Account Application
              • How to Make a Deposit to a Saving Account
              • How to Make a Withdrawal from a Saving Account
              • How to Modify a Saving Account Application
              • How to Post Interest to a Saving Account
              • How to Reject a Saving Account Application
              • How to Transfer funds from a Saving Account
              • How to Withdraw a Saving Account Application
            • Standing Instructions
              • How to Set up a Standing Instruction
                • Standing Instruction Form Fields
            • Term Deposit Accounts (Fixed Deposit / Recurring Deposit)
              • How to Activate a Term Deposit Account
              • How to Add a Charge to a Term Deposit Account
              • How to Approve a Term Deposit Account Application
              • How to Calculate Interest for a Term Deposit Account
              • How to Create a Term Deposit Account Application
                • Term Deposit Account Fields
              • How to Delete a Term Deposit Account Application
              • How to Make a Deposit to a Recurring Term Deposit Account
              • How to Modify a Term Deposit Account Application
              • How to Post Interest to a Term Deposit Account
              • How to Reject a Term Deposit Account Application
              • How to Withdraw a Term Deposit Account Application
            • Creating Recurring Deposit Account:
          • Loan Accounts
            • How to Create a Loan Account Application
              • Loan Account Fields
            • How to Make Repayments on a Client Loan Account
            • Track Loan Performance History
            • How to Approve a Loan Account Application
            • How to Add a Charge to a Loan Account
            • How to Modify a Loan Account Application
            • How to Assign a Loan Officer
            • How to Reject a Loan Account Application
            • How to Withdraw a Loan Account Application
            • How to Delete a Loan Account Application
            • How to Add Collateral to a Loan Account
            • How to Add/Remove/Modify a Guarantor to a Loan Account
            • How to Manage Loan Account Disbursement
            • How to Make Repayments on a Group Loan Account
            • Using collection sheet or other payment types for making payments
            • How to Waive Interest for a Loan Account
            • How to Write-off a Loan Account
            • How to Close a Loan Account as Rescheduled
            • How to Close a Loan Account
            • Making Prepay of the loan
            • How to Prepay a Loan Account
            • How To Create Group Loan Account
            • How to Process Bulk JLG Loan Application
            • How to generate - Loan transactions report
            • How to reschedule loan
            • How to provide floating rates
            • How to provide variable installments
            • How to create new loan - Interest Recalculation
            • Tranche loan process
            • Loan with term vary based on loan cycle
            • How to Place Guarantee Funds On-Hold?
          • Overdraft account
          • Saving Accounts
            • How To Create Group Saving Account
          • Share Accounts
        • Checker Inbox & Tasks
      • Side Bar - Features
        • Checker inbox and tasks
        • Collection sheet
        • Help.
        • Individual collection sheet
        • Keyboard short-cuts
        • Navigation
      • Others - mifos dropdown
        • Help
        • Profile
        • Settings
          • Date format
          • Language
        • Signout
      • Data Import Tool
        • Getting started with - Data Import Tool
        • Installing Data Import Tool
      • Glossary of Terms
      • Index
      • Reporting Documentation
      • Mobile Money Tool
    • User Space
      • New Feature Request Content
      • Recommended System Requirement
      • MifosX Overview
      • Installation guide
        • Upgrading Mifosx
        • Install MifosX on Windows
        • Install MifosX on Linux
        • Install MifosX on AWS
      • Release Notes
        • Release 1 and Features List
        • Release 2 and Features List
      • User Manual
        • How to Use This Manual
        • For All Users
          • General Navigation
            • Sign In Page
        • For Administrators
          • Initial System Set Up
        • For Operationals
      • Roadmap
      • Frequently Asked Questions (FAQs)
      • Demo Server Details
    • Developer Space
      • Setting Up Dev Environment
        • Setting up Frontend - community-app
      • Setting up MifosX from latest builds
      • Contributors Guide
      • Customising MifosX
      • Additional features
        • Data import tool
        • SMS campaigns
        • Pentaho reports
      • How Mifosx works
      • Adding a new tenant to MifosX instance
      • Using REST client for testing
      • API documentation
      • Scaling MifosX
      • Upgrading MifosX
      • Troubleshooting guide
  • Core Banking & Embedded Finance
    • Core Banking
      • Overview
    • Embedded Finance
      • Overview
  • Application Framework
    • Payment Hub EE
  • Main Platforms
    • Fineract 1.x
      • Apache Fineract
      • Apache Fineract Client
    • Fineract CN
      • Overview
      • User Manual
  • Staff UI Platforms
    • Fineract 1.x
      • Community-App
      • Web-App
      • Web Self-Service App
        • Online Banking App 2.0 User Manual
          • Developer Environment Setup for Online Banking App 2.0
      • Mobile Field Officer Applications
        • Android Client
          • User Manual
    • Fineract CN
      • Digital Bank User Interface
      • Mobile Field Officer Applications
        • Fineract CN Mobile
  • Customer UI Platforms
    • Fineract 1.x
      • Mobile Banking
        • Mifos Mobile
      • Mobile Wallets
      • Online Banking
    • Fineract CN
      • Mobile Banking
        • Fineract CN Mobile
        • Mifos Mobile CN
      • Mobile Wallets
      • Online Banking
  • Ancillary Tools
    • Fineract 1.x
      • Message Gateway
      • Mifos Passcode
      • PPI Vision
      • DevOps Tooling
      • Fineract Android SDK
      • MifosX Admin
      • Mifos ChatBot
      • Data Import Tool
    • Fineract CN
      • Fineract CN Containers
      • Fineract CN Terraform
  • Payment and Process Orchestration
    • Fineract 1.x
      • Payment Hub
      • Fineract Pentaho
    • Fineract CN
      • Staff Interfaces
        • Digital Bank UI
      • Customer Interfaces
        • Fineract CN Mobile
        • Mifos Mobile CN
        • Fineract CN Mobile
      • Ancillary Tools
        • Fineract CN Terraform
        • Fineract CN Containers
    • Payment Hub EE
Powered by GitBook
On this page
  • Getting Started to contribute to the Mifos Initiative
  • Installing Git Bash
  • Forking the repository
  • Cloning the repository
  • Working on your local repository
  • Performing a Gradle Check (for Android Projects)
  • Committing your changes
  • Making a Pull Request
  • Squashing your commits
  • Editing your commits

Was this helpful?

  1. General Contributing Guidelines

Contributors Guide

PreviousThe Apache WayNextContribution Guidelines: Android Project

Last updated 5 years ago

Was this helpful?

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

  • For

  • For

You can find all of the Mifos' repository The active projects at the Mifos Initiative are:

Installing 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.

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

Windows
Linux
here.
Mifos X (Community App)
Mifos X Android Client
Mifos X Web App
Mifos Mobile
Mifos Mobile CN
Mifos Pay
download
Github Desktop