OpenMRS Modules Project

Background

The OpenMRS Modules directory is a repository of add-ons for the OpenMRS platform.  This project page describes the design and development plans for Modulus, the OpenMRS Modules application itself.  In 2007, @Ben Wolfe created a Module Repository using similar technologies as OpenMRS itself (i.e., a Java web application with JSP pages for a front-end).  In 2014, @Elliott Williams created Modulus as a replacement "Module Repository 2.0."  Modulus comprises two projects:

  • Modulus – a RESTful Grails application that provides a REST API for managing, maintaining, searching, and reviewing modules.  All of the "business" of maintaing the Modules directory is done here.
     

  • Modulus UI – a AngularJS-based web application that makes calls to the modulus API to provide developers & users with a module repository application

Purpose

The goal of this project is to advance the features and capabilities of Modulus in support of the broader OpenMRS Community.  Our vision is that any developer who wants to share a module can do so and any implementer in search of a module will be able to get their questions answered and easily download the module(s) they need.

Development

To set up a development environment for OpenMRS Modules, consult the Readmes for Modulus and Modulus UI on GitHub. Additionally, an install guide has be written that details setting up both Modulus and Modulus UI, and obtaining OAuth credentials from OpenMRS ID. 

Road Map

1.0

  • Must support these fields on a module:

    • Name

    • Description

    • Author/owner

    • Support level

      • Support information (info on how to get support for a given module)

      • Links to source, documentation

    • Version Compatibility -- OpenMRS (of course)

    • Module ID

    • Fuzzy/partial search by name, module id, etc (e.g. "sharing" --> MDS, "uifr" -> "UI Framework (module id: uiframework)")

  • Works with legacy OpenMRS installs (install from application)

    • from Manage Modules page,

      • check for updates

      • install updated version

      • search / add new module from repo

  • Access old/previous versions

2.0+

  • OpenMRS ID compatibility

  • Download statistics

  • Screenshots

  • RSS feed (new modules, updated modules, comments, reviews, etc.)

  • Module icons

  • Tagging

  • Rating & Reviews (version-based)

  • Deploy to repo as part of release process (e.g. maven)

  • Module "collections" or "sets" recommended by people? (i.e. download modules from this specific list to achieve X or do Y)

  • Version Compatibility

    • OpenMRS (of course)

    • dependent and/or "aware-of" modules

    • consider first version of this as something configured by hand / entered in by module author

    • would be nice to grok the pom and/or config.xml for this info

  • Version compatibility with OpenMRS

    • I'm on omrs 1.7, what modules can I use?

    • I'm looking at MDS 1.2, can I see a table of compatible omrs versions?

Source Code

Resources

See Also