Get Started
-
-
- Understand the Mifos Architecture
-
-
-
- Read our Getting Started Guide
-
-
-
- Fork the Project on GitHub
-
-
-
- Create an account on MifosForge
-
-
-
- Sign our Contributor Agreement
-
-
-
- Assign yourself a Task on JIRA
-
-
-
- Introduce yourself on our Mailing Lists
-
-
-
- Attend a regular developer meeting or one of our regular technical onboardings.
-
Source Control & Code Submission
GitHub
We use Git, an open source distributed version control system to help us quickly and efficiently collaborate and communicate changes as we write code. On GitHub, you can fork both the Apache Fineract platform and Mifos X Web App repositories.
Git & Release Workflow
Mifos X on GitHub serves as a symbolic centralized repository, acting as the upstream repo. All contributors should fork this repo rather than directly making a pull request. There are two main branches, master and develop with develop serving as our integration branch. Features should never interact directly with master. For each release, a new supporting feature branch off of develop is created. Once that feature is completed, it’s merged into develop and once develop has sufficient features for a release, develop is merged into master and a product is released by creating a release branch off of master. View our Git and Release workflow for an overview and diagrams of this process.
Feature Submission Process
Our product roadmap is community-driven, guided by the direct needs and requests of our partners and our users. All feature requests are made as tickets into JIRA where they’re analyzed and prioritized by the Global Product Manager. Features developed by the core team are those with the most commonality of need and potential impact across the community. To accelerate the inclusion or the development of feature on the roadmap, you can sponsor the development financially or contribute the feature directly yourself. Our roadmap serves as both a forward-looking guide for our users and a blueprint for where partners and volunteers can assist by contributing.
Platform Architecture & Design
Architecture
The Mifos X is architected as a clean, layered Java platform that contains the complex core business and technical functionality for financial inclusion. All this is neatly exposed through a set of RESTful APIs which frees up developers to quickly innovate and produce new apps. This system overview provides a thorough description of this platform architecture and design.
API Documentation
We have documented each of the RESTful Mifos X APIs along with a live example that you can test out in your browser or with your chosen RESTful client. Immediately you can see the power of the platform and how quickly you can build your own new application. Go ahead and play around with the APIs now.
Continuous Integration
We use Github Action for our CI/CD We use it for both the back-end Apache Fineract platform and Mifos X web and community apps to ensure that with each code change, we are automatically notified of anything that might break the build.
Developer Environment
JIRA
JIRA is our product issue tracker for the back-end Apache Fineract platform; every bug, feature, request, or development tasks gets recorded, prioritized, and tracked in JIRA. For each of the Mifos web or mobile apps, we use Github Issue for issue tracking – click the issues tab for each of the Mifos repositories.
Confluence
Confluence is the enterprise wiki that powers our technical documentation. All feature specs are drafted and published here as well. Our user manual and other user documentation are on Gitbooks.
JIRA Agile
Integrated into Atlassian Studio, we use Jira for our Agile product management needs. All the tasks/issues logged in JIRA are planned out and visualized as stories for each development iteration managed by our Global Product Manager.
For technical discussions related to building and extending the Apache Fineract Platform