GSoC-2016 Final Report



Student: Shekhar Reddy

Mentors: Jan Flowers, Pascal Brandt

Project Wiki : Atlas 3.0

OpenMRS Atlas

The OpenMRS Atlas is a website on which members of the OpenMRS Community can register their site(s).  The Atlas serves not only to let the world know about your site but also help sites to discover other implementations in their region.

About Atlas 3.0

OpenMRS Atlas Server (openmrs-contrib-atlas) was designed to be a RESTful backend and a JavaScript client frontend – i.e., the server is concerned only with providing a RESTful API and Authentication and the JavaScript frontend uses Google Map API to do all of the UI.

The technologies used here are outdated which makes the code more complex, So the community decided to rewrite the Atlas server which provides truly RESTful API using Node.js. Atlas 3.0 is the server side code for OpenMRS-Atlas which presents simple RESTful API written in NodeJS.


  • RESTful Backend.

Now the server side code is RESTful which serves the endpoints for the resources (markersites, distributions).

Link for the corresponding code of all the routes is here.

  • Authenticating the Atlas.

I have explained more about authentication of an app against OpenMRS ID in my blog. I have to roll out my own library which encodes and decodes the multipass token which is sent by OpeMRS ID through the URL

Links : BlogPost 1, Blog Post 2, Code for authentication. atlas-node-multipass Library

  • Changes to the templates in the frontend and BUGS 

Since the Atlas server code is written in PHP Laravel framework which uses Blade template engine in the front-end code to render the GoogleMapAPI so the code was a mix of PHP and HTML. I refactored it replacing blade.php files with the EJS template engine.

Links: Blogpost, Code, PRs

  • Documentation

I have done documentation for the code I have written explaining the structure of code so that in future if anyone who takes up this could easily understand the code.

Link : Wiki


Since this project is functionally same as openmrs-contrib-atlas but the code structure and technologies are different so I created a new repo and committed all the code there.

During Authenticating Atlas, I didn’t install the openmrs ID locally as I felt that would kill my time so I rolled out my own MockID in Node which serves the exact purpose of OpenMRSID.

Project GitHub Repo : Link and commits(all the commits included)

Auth Library : Link

Atlas-mockID-node : Link

PRs for frontend : Link

All the Blog Posts: Link

Talk Thread: Link

What is yet to be done for the release

Here are a few things which I am currently working on after which the project will be ready to RELEASE!!

  • Accept the Pings from the module.
  • RSS feed.
  • Admin Interface.

I am planning to complete the above in a week or two and make it ready for the release.

Useful Resources and Links:

I have updated the project in a great detail with all the relevant links


Throughout the summer, I have learned a lot of new technologies like NodeJS, Express  and this is not possible without my mentors and the active community members. I feel really blessed to have such responsive mentors who are always active on forums.

I express my deep regards to all of you. In the coming days, I will contribute to this project and successfully release it and I am Leading the daily scrum meets on IRC!!



Shekhar Reddy 🙂


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s