User Stories & Functionality

The module repository should adapt to the needs of different users interacting with it. This page attempts to define those types of users, write a basic user story for each, and design functions of the module repository to address their needs. This page should help write a more-complete spec of the modrepo in the future.

Feel free to add / comment / iterate on this list.

Module Developer

"As a module developer, I want the repository to require little extra work from me to publish my module, so that I can focus on developing my module, not publishing it. I want the repository to provide resources for feedback, support, and compatibility, so that I can better serve users of my module and can reduce direct support inquiries."

  • Maven script to publish module: mvn publish or similar.

  • All modrepo metadata found in an omod.json file...only one additional file has to be written to support publishing.

  • Module repository site facilitates feedback through stars, comments, relevant wiki pages, and support inquiry contacts.

  • Continuous Integration testing will help verify compatibility with other modules and will form a version compatibility matrix.

Implementer

"As an implementer, I want to easily discover modules so that I know what functionality is available for my implementation---this includes detailed information on what the module actually does. Since I'm not experienced with Java or Maven, I don't want to have to worry about dependencies or conflicts between modules. I only want to see modules that will work on my current version of OpenMRS, and I want those modules to be verified to work."

  • Module Repository can be browsed from within the OpenMRS admin interface, only allowing installation of compatible modules.

  • One-click install from the admin panel or the website simplifies the installation procedure.

  • The modrepo provides screenshots and plenty of space for an extended description or Readme file.

  • Modules pass their tests before being published. If a module introduces instabilities, it's flagged as unstable in the repo.

System Administrator

"As a system administrator, I want module management and structure to remain that same, so that I don't have to re-learn how to manage my implementation's module. I need to manage custom modules with modules from the community repo, so that we can implement functionality supported by the OpenMRS community as well as our own in-house modules."

  • Despite changes to the module infrastructure, OMOD files can still be uploaded into the app path like they've always been.

  • Module package lists can be written, allowing the sysadmin to easily pull multiple modules from the repo to a new instance of OpenMRS.

  • Any organization can host their own (private) module repository that the OpenMRS can talk to. This allows them to take advantage of new functionalities, like auto-updating and dependency management, without having to release in-house modules to the global community.