26 Aug 2017

GSoC 2017 — Add-On Index Enhancements | Gist of work done


Add Ons Enhancements

Primary mentor : @darius
Backup mentor : @mseaton
Student: @reubenv
Project wiki: Link


This project aims at making certain changes to the existing OpenMRS Add Ons infrastructure thereby making it fit as a complete replacement for the existing OpenMRS modulus. The main motive behind this project is to be able to completely retire OpenMRS modulus whose codebase has become tough to maintain. OpenMRS Add Ons also supports OWA’s which is a vital feature that Modulus lacked. The developer is now free to host his module in any of the supported hosting sites while Add Ons does the job of adding it to the OpenMRS module index. Add Ons also gives the freedom of choice of hosting location in hands of the module developer. Add Ons is built on a light framework and hence is hopefully easier to maintain as compared to Modulus.


  • (Automation) Migrated modules to Bintray.
  • (Automation) Enabled automatic module indexing for OpenMRS AddOns.
  • (Automation) Added support for automatic module deployment.
  • (Front-end) Allow a user to find add-ons that are compatible with their particular version of OpenMRS
  • (Backend) Support for indexing Modules and OWAs that are released as GitHub Releases
  • (Front-end) Show a list of most-active or most-downloaded modules
  • (Backend) Add new Rest end points for getting module by its Package Name and also add the Package
    Id as metadata to the details of a module
  • (Backend) Improve Search algorithm used
  • (Front-end) Improved utility of tags in add-ons
  • Ensure smooth migration from using modules.openmrs.org as the primary data source to Bintray
  • Ensure Add-Ons is live by the end of GSoC period

Final Video Presentation

Final presentation GSoC

GSoC Contributions

Here are a few commits made by me

Other Resources:

Project Documentation:


Talk Discussion:


Blogs: Medium blog


I must admit that this has been by far one of my most productive summers yet. I loved every moment of working for this organisation. There have been so many nights, I was up all night implementing features, not because I was forced to but because I was enjoying it. I would like to especially thank @darius for his immense support, help and patience. He has been patient enought to review all my silly mistakes and poor coding habits. He is a person who clearly stands by this quote : “The finest steel has to go through the hottest fire”. He ensured that I fix each and every minute detail in my PRs so that I won’t commit those silly mistakes again. I must admit that my coding style and knowledge has surely improved greatly. I also wish to thank all of the other wonderful members for helping me get involved in this community.

Though GSoC is coming to an end, my contributions to this community will continue for a long time. So don’t miss me just yet