Wiki Spaces


Get Help from Others

Q&A: Ask OpenMRS »
Discussion: OpenMRS Talk »
Real-Time: IRC Chat


Skip to end of metadata
Go to start of metadata


Once you've read through the book, here's a quick summary of things you can do to get started!

  1. If you don't have one, create an OpenMRS ID, which you can use to contribute to this Wiki, manage issues in JIRA, and more.
  2. If you haven't already, create an account at
  3. Join the discussions at OpenMRS Talk. Be sure to add your GitHub username to your settings in Talk. Then introduce yourself to the community.
  4. Configure your Eclipse environment with the Step-by-Step Installation for Developers. The New Developer's Guide has a helpful chapter on Setting Up Your Development Environment.
  5. Watch some OpenMRS development screen-casts on YouTube.
  6. Try out the OpenMRS SDK.
  7. Create your first OpenMRS module. The Developer's Guide features a chapter on how to create a Hello World Module.
  8. Find some introductory issues (also shown below) that have the "Ready for Work" status to work on, and assign them to yourself by clicking the Claim Issue button. (Ask for clarification on the issue if needed.) If you find yourself taking long (days) without making any progress, feel free to un-assign yourself from the issue and choose another.
  9. Meet some other developers through real-time chat in Telegram ( or IRC (
  10. Try as much as you can to include unit tests for your changes. Remember to also do an "mvn clean install" to ensure that all existing unit tests and yours pass. Then create a pull request. If your changes affect the user interface, please run the web application to see the effects, and then attach a screenshot, before you commit.
  11. Log your time spent on that issue and click "Request Code Review" and a core developer will get you some feedback in short order
  12. Find another issue or choose a larger project to work on. See Unassigned Projects.
  13. If you join a sprint or choose to share your module (we hope you do), then you'll want to read about Using Git.
  14. When you no longer want to work on an issue that you have already assigned to yourself, please remember to un-assign yourself from it such that others can take it up. If you have any findings that you feel would be useful to whoever takes it up, please feel free to add a comment.





New Developers

Please record your experiences (good or bad) on this child page.  We are always trying to find ways to improve where we can do better and reinforce things we are doing well, so getting input from your perspective is very helpful & appreciated.

Community Priorities

Here is a list of tickets prioritized by the community from the Community Priority Kanban:

Key Summary T Created Updated Due Assignee Reporter P Status Resolution
RA-429 Reference application contains duplicate concepts for yes/true and no/false Bug 2014-10-07 2016-11-03 Unassigned Andrew Kanter Should Waiting for Dev Unresolved
RA-435 Need way to edit implementation custom forms Improvement 2014-10-09 2016-12-01 Unassigned James Arbaugh TBD Waiting for Dev Unresolved
RA-982 Support Coded Person Attributes in Reference Application Registration Story 2015-11-21 2016-08-29 Unassigned James Arbaugh Should Waiting for Dev Unresolved
RA-1001 Update all modules that use Transifex to support all languages we support Improvement 2016-01-28 2016-11-24 Unassigned Mark Goodrich TBD Waiting for Dev Unresolved
TRUNK-4821 Fix broken CI plan for OpenMRS on MariaDB Task 2016-02-01 2016-11-21 Unassigned Wyclif Luyima TBD Ready for Work Unresolved
TRUNK-4822 Fix broken CI plan for MariaDB Docker test Task 2016-02-01 2016-11-21 Unassigned Wyclif Luyima TBD Ready for Work Unresolved
STAND-85 Drastically improve documentation about building the Standalone Bug 2016-02-18 2016-11-14 Unassigned Darius Jazayeri TBD Ready for Work Unresolved
HTML-650 The HTML Form ExitFromCare tag doesn't work in the 2.x UI Bug 2016-11-08 2016-11-29 Unassigned Jeremy Ogembo Should Ready for Work Unresolved

Introductory Issues

The following issues are both "introductory" and also "curated", meaning that they have thorough descriptions of how to approach solving them:

T Key Summary
Bug XFRM-207 Setting node value with null node and non-null value results in unexpected behavior
New Feature TRUNK-4935 Refactor ProgramWorkflowService.getPatientPrograms()
New Feature TRUNK-4934 Make the gender parameter for getSimilarPeople() a definable constant
New Feature TRUNK-4933 Create pull request to remove TODO comments from core code
New Feature TRUNK-4931 All listeners should be notified of global property name changes
New Feature TRUNK-4930 AdministrationService.getPresentationLocales() should return a List<Locale>
New Feature TRUNK-4928 interface OpenmrsMetadata should support localized names and descriptions
Bug TRUNK-4927 Remove config parameter from DatatypeService.getDatatype
Bug TRUNK-4926 PatientIdentifierType.toString() should return a more "debug-worth" string
Bug TRUNK-4924 BaseCustomizableData setAttribute fail on minOccurs and maxOccurs
Task TRUNK-4847 Migrate NULL Location Behaviours To Required
New Feature TRUNK-4742 Add support for setting test database credentials externally
Bug TRUNK-4671 Test Data - Includes stale data that prevents modules from starting correctly
Story TRUNK-4663 XML based configuration should be replaced with Java Config
New Feature TRUNK-4655 Add openmrs-core and Standalone 2.x module messages to transifex
New Feature TRUNK-2497 Store outgoing MessageService emails in a table
Bug TRUNK-324 Go through the TODO items code and create tickets out of them
New Feature SYNC-301 Review existing unit test coverage and create tickets for any objects that need testing
Bug SYNC-285 Cannot download database from parent during child server setup
Bug STAND-79 Documentation in OpenMRS Standalone 1.11 Beta gives wrong password
Showing 20 out of 33 issues Refresh

If you aren't able to find an appropriate issue in the list above, you can take a look at the complete list of "introductory" issues, (not necessarily "curated").

Beyond Introductory Issues

You could also do code reviews for pull requests.

If you try out the sprint, code reviews, and still find it boring, please feel free to ask us on IRC or the developers mailing list.

Current Sprint Issues

We may have an ongoing Development Sprints. Feel free to ask on IRC or the development category of OpenMRS Talk.

Other Useful Resources

Code Style

Coding Conventions

Code Review

Code Review Checklist

Simple Secure Coding Checklist

Newbie Guide to OpenMRS Development - by Sri Maurya Kummamuru

  • No labels


  1. It would actually be good to have the green message directing them to the current sprint


    1. I fully agree with Wyclif. What do others think?

      1. How about both – i.e., refactor the tip to direct people to the current sprint or, if they don't have luck there, then to the community development swim lane?