OpenMRS ID v2.1 Platform Improvements
Primary mentor | @Robby O'Connor |
Backup mentor | @Elliott Williams |
GSoC student | @Weihua Cheung |
Abstract
OpenMRS ID is the user account management system that underlies all services on OpenMRS.org. It provides single-sign-on access to the Wiki, OpenMRS Talk, JIRA, the Modules directory, and other services. It also publishes the ID Dashboard, a frontend interface where users can sign up for an ID and modify their profile information.
To allow us to do more with OpenMRS ID, we're continually trying to add features to the platform. This project will tackle some of the new features and ideas we have for OpenMRS ID.
Requirements
Frontend JavaScript and backend Node.js experience
Knowledge of REST API design and usage
Familiarity with MongoDB, LDAP a plus
Project Champions
@Robby O'Connor
Objectives (tentative)
Note about objectives: You are not expected to complete all of these in the course of a summer project. In your application, please indicate which objectives you'd like to work on. If you want to work on something that is not listed here and you'd like to work on it, be as detailed as humanly possible in your proposal as to how you will implement it. Ask questions early!
Support two-factor authentication for OAuth-based sign ins
Build a REST API for working with user profile data
Modify the backend datastore to use keystone.js, to provide OpenMRS ID administrators with a better administration tool
Migrate legacy MySQL-based data models used in the Dashboard to MongoDB/mongoose
Implement 3rd-party sign in and profile creation from Google, Facebook, GitHub, etc.
Investigate rewriting all JS files using either ES6 or Coffeescript (see js2coffee or the node module of js2coffee)
Resources
Questions not answered from this page can be asked here
ID Dashboard category on OpenMRS Talk: all discussion surrounding the OpenMRS ID platform goes here
openmrs/openmrs-contrib-id: project source code on GitHub
Last year's OpenMRS ID GSoC Project: OpenMRS ID Platform Improvements
OpenMRS ID - Architecture: explanation of our LDAP data model that the Dashboard syncs to, which backs our Atlasssian-based tools like Confluence and JIRA.
An example of how to use keystone.js and here is another one