This project is being considered as a potential project for 2014 Internships. 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||Elliott Williams|
|Backup Mentor||Hannah Downey|
|Assigned to||Weihua Cheung|
Elliott built the OpenMRS ID Dashboard as a student in 2011. The Dashboard is a lightweight web application (~4000 SLOC) that facilitates user-account creation and profile management in the OpenMRS Community. We're looking to design better ways for users to "create a profile" that allows them to tie lots of information to their OpenMRS ID—such as who they are, what their needs are, what they're interested in. We will be evolving the OpenMRS ID system to be capable of holding this kind of information.
Currently, the OpenMRS ID's data model is built around an LDAP user object (we use OpenLDAP under the hood to store the basic user profile data). Since we want to store much more versatile data than LDAP allows, the Dashboard will need to be decoupled from its LDAP core, and a new data model that can store and manipulate all kinds of data on the user will be implemented. Building and implementing this new data model is the first objective of the project.
OpenMRS ID also needs better connectivity with other services that hold OpenMRS contributor data. We want to allow users to get data into their OpenMRS Profile from other networks—GitHub, Twitter, etc. We also need to interact with the data outside of the Dashboard—from other applications like Desk.com or HingX. To handle this, a REST interface should be implemented that has full access to the new data model.
The project is assigned to Weihua Cheung now. Below are the project plans
The current one is built with OpenLDAP and restricted to its limit. We can't store flexible user information on the current one. Also, the current one didn't organized the code very well.
The new module will provide a more extendable solution for storing user information, with a better organized structure, like MVC. In addition, it will provide a way to integrate the data from different website, like Facebook, Google, Twitter, etc, and user might log in with these accounts. Meanwhile it should provide APIs for outside access of data, and probably a simple website for query purpose.
This field will be updated weekly.