- 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 bi-weekly developer meeting or one of our regular technical onboardings.
Source Control & Code Submission
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 Mifos X platform and Community 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
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.
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.
Travis CI is a hosted continuous integration service that integrates nicely with GitHub. We use it for both our Mifos X platform and community app to ensure that with each code change, we are automatically notified of anything that might break the build.
JIRA is our product issue tracker; every bug, feature, request, or development tasks gets recorded, prioritized, and tracked in JIRA.
Confluence is the enterprise wiki that powers our technical and end user documentations. All feature specs are drafted and published here as well.
Integrated into Atlassian Studio, we use Jira Agile 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 Mifos X platform.