Overhaul the User Management dashboard for ID Dashboard

It’s a possibility but I don’t think our infrastructure can handle it. I actually have to get dashboard runnable…I’m gonna dockerize it and have a vagrant box also

Hai, I’m Chanaka from Sri Lanka. I’m new to openMRS. But have more than three years open source experience with FOSSASIA and sTeam. This is my github : chanakaDe (Chanaka De Silva) · GitHub , And this is my blog : http://projectslanka.blogspot.com/. Really like to work with this dashboard application. I have created many applications and also REST APIs using Node.JS and MongoDB. This is my latest development using Mongo , Express and Node.JS. Project available on my git named as MintREST. And also I have created open source Micro Finance System using AngularJS.

Please let me know what I have to do to take part of this project and work with OpenMRS ? What are the issues do I have to fix ? I’m really new to openMRS and please help me.

Thanks.

1 Like

Thanks for your interest. I deleted your additional post. I linked to this one for a reason – I don’t want to have to bounce between 20 threads for the same project.

Your proposal is gonna have to have a bit more meat than that what you gave, but I will be happy to review it as you write it. OpenMRS seems to love AngularJS but I despise it and will fight tooth and nail to make it never happen in this project :smiley:

Ah, Ok ok sure. It’s good to know that you hate AngularJS. I’m really familiar with most of the JS frameworks. Can you please tell me what’s the framework you like to use for this project ? For backend , NodeJS. For front end ?

And please tell me what are the steps I have to take if I like to work with this project ? What are the issues I have to fix ? As a full time contributor to openMRS ?

Thank you.

Its good to know that you hate AngularJS on this project. Please can you tell me what’s the front end framework you like to use ? And please tell me what I have to do and what are the issues I have to fix if I like to work with you on this project. I like to contribute openMRS.

Please keep all communications public.

To all those interested: Unless it’s something that is confidential and most things are not, your communications need to be public.

With regards to technologies: I’m open to anything but that :slight_smile: With regards to the issues, I will look at our bug list and do some triaging. Write up your proposal and we’ll move from there. Come with ideas :smiley:

Hello everyone!

My name is Dmytro Trifonov, I am from Ukraine. Starting last year, I am working on another OpenMRS project “OpenMRS SDK”, but I am also familiarized with OpenMRS ID project, and worked on some issues of this project last year.

I have experience with next technologies: mostly - Node.JS/Express.JS, MongoDb, Angular (MEAN stack), Bootstrap, Redis, Socket.IO, but also: Java (Maven), Android SDK, Ext.JS (Sencha Touch). And I am really interested to work on this project, and start working on my proposal.

Here is the list of my closed tickets for OpenMRS: link

1 Like

I think we should use Ember.js or React for the frontend for the User Management Dashboard :smiley: – I despise Angular and I don’t thinK i try to hide it.

1 Like

Hi @r0bby,

I have being spending some time doing a little research on the main objective of the project and I will update my proposal with the those ideas. For a relief it is good to see that there is some one who value ember than angular. :slight_smile: But may i know your reason for that. My main reason is the understand-ability of a codebase developed with ember. Also the ember-cli. :wink:

To be fair, I value anything over Angular.

Hi @r0bby,

There are two solutions I thought of handling the MongoDB and OpenLDAP DBs.

  1. Introduce the Facade pattern to handle databases. (In this way you will be able to plugin any databases or caches later, if you want.) Now any create, update, delete operation will follow the following stops assuring the change take place in both DBs. (Following is just a psudecode)

     Interface DB has =>
           updateUser()
           createUser()
           deleteUser()
    

    OpenLDAPDB implements DB MongoDB implements DB

In Facade Class =>

    List<DB> dblist

addDB(DB db) {
        dblist.add(db)
}

updateUser(User) {
    foreach db in dblist {
        db.updateUser(User)
    }
}

createUser(User) {
    foreach db in dblist {
        db.createUser(User)
    }
}

deleteUser(User) {
    foreach db in dblist {  
        db.deleteUser(User)
    }
}

This way we can run the lazyanlysts upon the users in OpenLDAP DB so that it detects which users are not present in MongoDB. We can use the facade class itself to do bidirectional scan (Who are in LDAP and not in Mongo or other DBs + Who are in Mongo and LDAP or other DBs etc) against every database. (For now Mongo against OpenLDAP and OpenLDAP against Mongo)

2.This is rather lazy and bad implementation. But this was the first idea I had. :slight_smile: Update LDAP and have scripts running in the background which will update other databases. But running scripts while updating one database will cause more time and may cause concurrency issues as well. Hence it is less reliable.

I had these ideas for a while and also took it here, where I go to find answers easily. What do you think about these ideas. With this decision I am almost all set to finalize the proposal.

1 Like

@ttcphilips,

Everything here is open and as such I have moved it to the main thread.

That’s a start – one thing to consider, we use the mongo store as the “official” store – and check ldap if it matches, we don’t actually have to cache locally beyond some flag that something the records are no longer the same between the two. We’re currently tied to ES5 (unfortunately). So we don’t have this luxury of doing a True OO implementation. You also need to keep resource usage in mind, as I said prior – the current production server we use is a bit resource-starved

When I mentioned Angular, I just meant that I used it mostly in my projects :smile: It was not a proposition to use it in ID Dashboard.

I also think, that using front end frameworks will be good, but what about the jade templates, that currently used for views? Also, what about routing and other logic, that currently implemented on a server? Will it stayed on a server, or some logic will be moved to client controllers? Want to hear your thoughts about that.

1 Like

We currently use jade – and will continue to use jade. The only thing that will change is that formage will be ripped out and we’ll implement our own solution. I’m open to anything but it needs to not tax our (limited) resources.

How are things coming along everyone?

@dmytro.trifonov,

See my comments :slight_smile: – I like how you did your homework!

I am almost done with the proposal. Will be able to submit by tonight.

1 Like

I should have a vagrant box with Mongo/OpenLDAP by tonight…I have one for OpenLDAP but want one for Mongo too.

Hi @r0bby, I have submitted the proposal and would like to hear your opinions. And I am creating a vagrant box with OpenLDAP and Mongo. Lests see how it goes. :slight_smile: