First of all, congratulations and a warm welcome to the contributors. This guide be the starting point for any contrubutor and will help the contributors to contribute to MOSIP.
Please go through the high level introduction about MOSIP architecture and components
Help is always welcome with MOSIP! Documentation can be simplified, code can be clarified, and test coverage can be improved.
If you want to get started on contributing, there are multiple ways to do so -
a) Contribute to code (fix bugs, implement new features, enhance features)
b) Contribute to improve specifications.
c) Suggest new features and feature enhancements.
d) Test MOSIP and log bugs.
e) Help us fix documentation errors.
f) Help spread the word on MOSIP among interested developers.
There are multiple repositories within the MOSIP organization. To contribute to (a) Code, take a look at the Open Issues that are not assigned to anyone and put a comment saying “I would like to take this up” along with your approach and design preferably with pseudo code. The issue shall be assigned to you after review. Alternatively, please join our developer mailing list and send an email there. The core contributors team will interact with you via Github Issue comments. You may work in the forked version of the repository and send pull requests via Github.
For (b) - (e), i.e. new bugs, specs, features or documentation improvements, please log Github Issues under the appropriate repository, or join and write in at our developer mailing list
If you wish to begin your contribution, following steps are helpful.
Please refer the User Registration guide<TODO> register yourself in the MOSIP community.
Please refer the Contributor License Agreement guide<TODO> for the instructions to sign the CLA.
Please go through the Code of Conduct before you begin the contribution.
Check out our repositories and Platform Documentation
The development methodology is Feature driven development
Following are the various roles in the MOSIP open source community,
- DEVELOPER
- The developers can be contributing the development code or automation test code or performance test code or documents.
- REVIEWERS
- The reviewer accepts and approves the pull requests from the developer, after the necessary checklists have been passed.
- PRODUCT_MANAGER
- The product manager decides which features goes in which version release.
- DEVOPS
- This team members has the necessary permissions to pull the code and run in the automation stream.
The roles and responsibilities can be found here<TODO>
If you are a developer, please refer to the the Developer's Handbook<TODO>
Please go through the coding standards for, - Java coding standards<TODO> - Micro services developer guidelines<TODO> - Vert.x guidelines<TODO>
MOSIP uses Github workflow. Refer MOSIP github workflow for steps to take the code from MOSIP and contribute back.
This [link] gives a detailed description about how feature is completed from inception phase to completion phase.
As the contributor, if you decide to work on the following modules, the corresponding startup guide of be a great help.
- Kernel
- Services Building and running kernel Services<TODO>
- Pre-registration
- Services Building and running Pre Registration Services<TODO>
- UI Building and running Pre Registration UI<TODO>
- Registration Client
- Services Building and running Pre Registration Services<TODO>
- ID Repo
- Services Building and running ID Repo Services<TODO>
- Registration Processor
- Verticles Building and running Registration Processor verticles<TODO>
- IDA
- Services Building and running IDA Services<TODO>
- Resident Services
- Services Building and running Resident Services<TODO>
- UI Building and running Resident Services UI<TODO>
Out of scope: This document doesn't cover Jenkins, Docker and Kubernetes. It is upto the user to choose any of the build automation or virtualization technlogies.
- You can use SONAR to check the code quality
- You can download the code quality rules from here SONAR Code quality ruleset<TODO>
If you have questions about the development process
- Feel free to jump into our Gitter channel or
- Join the [email protected] mailing list.
- Join us in our chatroom and developer mailing list
- For general queries, try [email protected]
We actively organise online and in-person meetups and discussions. Keep an eye on this page for the latest.