2015 GSoC Project Idea
This project is being considered as a potential project for Google Summer of Code 2015. If you are a potential intern and are interested in working on this project, please discuss it in detail with the mentor(s) listed here before submitting your internship proposal.
Primary mentor | |
Backup mentor | |
GSoC student | TBD |
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
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 LDAP Explained: 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