Micro Frontends Architecture for OpenMRS

Sorry about that, here is the correct link: https://iu.zoom.us/recording/share/FhQcA1_I1fbwA0tln233xbQ0k8QdzHeEHY3KlNvzKR2wIumekTziMw

New article on micro frontends https://martinfowler.com/articles/micro-frontends.html

1 Like

Thanks for the pointer! :slight_smile:

Dear All,

Joel has added three new proposals to the RFC regarding style guide, custom components, and design libraries.

There are lively discussions going on in each proposal and we encourage everyone in the community to take some time to review and contribute.

Proposal: OpenMRS Styleguide #8 https://github.com/openmrs/openmrs-rfc-frontend/pull/8

Proposal: Styleguide Javascript Components #9 https://github.com/openmrs/openmrs-rfc-frontend/pull/9

Proposal: OpenMRS Styleguide and Design Libraries #10 https://github.com/openmrs/openmrs-rfc-frontend/pull/10

Please don’t hesitate to ask if you have questions on the RFC process. For comments on specific proposals, we encourage you to post your comments directly into the RFC Proposal on github.

Thanks,

JJ

3 Likes

Thanks @jdick for this information. :slight_smile:

Since there is a lot going on there, which some people may not have time to follow, can we bring out a few things here to get their input? An example is the exchange that i have seen for creating and maintaining our custom style guide that new developers have to learn vs one that is maintained by someone else like Bootstrap which new developers already are familiar with from other non openmrs projects.

Daniel, given that the current conversations represent ongoing discussions it may be pre-mature to post a summary of what’s been said. In the current process, once three members of the squad approve, the proposal will be merged. Perhaps, once we have approval from the squad, a summary could be posted of the decision made for that particular proposal so that the community is aware. We could then wait an additional 24 hours following the post to ensure there are no final contributions to the discussion. I would still encourage followup discussion to take place on github.

I just posted this on the Slack Channel:

Dear Team Members: I am here to support project management related activities in the group (where applicable) especially communications between the group and the broader OMRS community. I thought I should take this opportunity to put my hand up . @jdick @joeldenning @Gregory. I can work the the team to do the following:

a) Channel important conversation points to be shared with the community

b) support documentation of ongoing activities

c) provide guidance on some of the standards and norms that we have adopted for the creation of pages, content etc., facilitate/coordinate meetings, calls etc with the broader community.

I have noted that there are weekly calls internally, and there has been a suggestion to do one community call once a month. Are there any other project governance structure you have agreed on so far?

As a start, I would like to collate some minutes of the meetings that have been conducted thus far as part of the wiki pages for this project, where would I find that information?

If the team has other activities they would need support, please do let me know.

Hi @c.antwi,

We’d love you to help us out.

I have noted that there are weekly calls internally, and there has been a suggestion to do one community call once a month. Are there any other project governance structure you have agreed on so far?

Yes, our project governance structure is described in https://github.com/openmrs/openmrs-rfc-frontend.

I would like to collate some minutes of the meetings that have been conducted thus far as part of the wiki pages for this project, where would I find that information?

This Talk thread has all the links in previous posts, but here’s a compiled list:

Here’s our wiki link – it’s just a placeholder right now and we’ve got a lot of work to go in making it valuable and good: https://wiki.openmrs.org/display/projects/Frontend+-+SPA+and+Microfrontends?searchId=XKYGPSEJ4. It is listed in the “Active Projects” wiki

And here’s our JIRA project, also new: https://wiki.openmrs.org/display/projects/Frontend+-+SPA+and+Microfrontends

If the team has other activities they would need support, please do let me know.

We are running a hackathon next week in Kenya with a few groups. If you’d like to get involved in that, definitely reach out. Beyond that, we’ve been doing some pair programming within the microfrontends squad and then posting our work to OpenMRS github repos as pull requests. Happy for you or anyone else to get involved however you’d like to.

1 Like

We are having a microfrontends squad meeting tomorrow at 3pm UTC. Anyone is welcome to join, here’s the zoom link: https://om.rs/zoommicrofrontend

1 Like

Hi, this was posted on Hacker News this week. Has good points re governance

https://doist.com/blog/decision-making-flat-organization/

Updates from Thursday’s meeting (the one linked to above):

  • I demoed the work we’ve done in preparation fro next week’s hackathon in Kenya. We have put together a proof of concept login page, patient search, patient dashboard, and navbar. They don’t look great and we don’t plan on using them for openmrs itself. Just for the hackathon. The patient dashboard is split up into widgets/microfrontends. Each widget can choose its own framework, and the hackathon participants will have that choice.
  • The code for the widgets is not in the openmrs Github repos, but rather on my github, @fali’s github, and other participant’s github. This is so there’s no misunderstanding that the code is “the new openmrs frontend code.” The openmrs code will be built more carefully and with deeper collaboration from the community.
  • We created a wiki page for the microfrontends project.
  • We created a JIRA project for the microfrontends project.
  • Cynthia is now on our calls and will be helping the microfrontends squad in a variety of ways.

Here’s a gif of what we’ll be working with for the hackathon:

1 Like

Thanks @joeldenning for this update. The link to the microfrontends wiki project page does not look correct.

thanks – just updated it.

We would like to hold a Design Forum next Monday, June 24, to discuss the new OpenMRS styleguide. @c.antwi, @dkayiwa, @jennifer can you help us set that up, schedule it, and broadcast it?

Here are the RFC discussions about the styleguide:

Building micro frontends by Martin Fowler - https://martinfowler.com/articles/micro-frontends.html#TheExampleInDetail

Proposal for Naming modules https://github.com/openmrs/openmrs-rfc-frontend/pull/11

1 Like

Kenya hackathon

We had a very successful hackathon this week in Eldoret, Kenya. I will let someone else (@jdick?) post a more complete recap of it here. But here’s a gif that shows some of what was built by the participants. We had around 20-30 devs working on it! Very fun, we learned a lot, and everyone I think everyone was very excited about close collaboration between Ampath, Kenya EMR, Uganda EMR, Faces (Tanzania), Path, and Medic Mobile.

This gif is not a final anything, but the result of a hackathon. Notice that we changed the “Find Patient Record” link in the ref app to take you into the new SPA code. This is the proposed migration path for those using JSPs/GSPs. Read more at https://github.com/openmrs/openmrs-rfc-frontend/blob/master/text/0005-migrating-from-jsps-gsps.md

Other updates

  • We are having a design forum on Monday to discuss the creation of an “OpenMRS Styleguide”
  • We had our regularly scheduled call on Thursday. Waiting on getting the link to the meeting recording and then I’ll post it here.
  • @aojwang and @bistenes have been working on getting Tomcat to serve the SPA javascript assets and import map. Antony succeeded in getting the javascript assets served through a subdirectory of the Application Data directory. Import map is still remaining. See https://github.com/openmrs/openmrs-module-spa/pull/2 and https://github.com/openmrs/openmrs-module-spa/pull/3
  • Antony and I succeeded in getting his local development environment set up for the SPA. It now works in Tomcat 6 (as well as Tomcat 7).
  • @ssmusoke posted an RFC about naming frontend javascript modules. Angshu and I are starting work on an “implementation config” RFC. Fatma will soon start work on one related to “migrating from another SPA to the OpenMRS SPA.”
4 Likes

@joeldenning thanks for the great work ,is the work broken down into sprints , also has the team come up with a Backlog ,so interested parties may contribute or is the initial development tied to the "Kenya Hackathon Team " ?

Hey Tendo,

I’d love to be in a place where the community could divide and conquer a nicely curated backlog and sprints, but that’s simply not the phase of the project we’re in. Too much ambiguity remains before jumping into implementing lots of EMR features (for example: styleguide, apis/fhir/shared-data, implementation configuration, creating artifacts for WAR file, making it easy to create new frontend projects, documentation, etc). We are still in the “trying to get to a point where people can actually start building things” phase.

The Kenya Hackathon was a great event, but it was not the formation of a “Kenya Hackathon Team” that is building out all the features of an EMR for everyone else. I think the group enjoyed it, wants to continue to participate, and is excited about progress with the microfrontends architecture, but the hackathon was not meant in any way to exclude anyone. The code written last week isn’t the new OpenMRS frontend – it was hackathon, not a fully fledged development process.

For you and others who’d like to get more involved, we’re holding a design forum in a few hours (as previously posted) and are engaging in an open decision making process in the openmrs-rfc-frontend github repo. Additionally, much of our collaboration is done via the #microfrontends channel in the OpenMRS Slack workspace. If you or someone in your group is interested in a deeper level of participation than what those offer, our microfrontends squad accepts new members from groups that are willing to commit to weekly meetings and active participation.

Your OpenMRS profile indicates that you’re from Uganda – are you associated with Uganda EMR? Or a different organization? I’m happy to schedule a voice call with you if you’d like to talk about this more.

2 Likes

Updates:

  • We had a design forum on Monday of this week to discuss the creation of an OpenMRS styleguide javascript module. Audio from meeting can be found here. The main decision was whether to use MaterialUI or build atomic elements of our own. A decision was not reached – we’re going to create a separate Talk thread to continue the discussion there. Also, discussion will continue happening on https://github.com/openmrs/openmrs-rfc-frontend/pull/10.
  • We’ve updated JIRA with the tasks that the microfrontends squad and other community members are working on. https://issues.openmrs.org/projects/MF/issues
  • I am wrapping up my time in Kenya by helping start Ampath’s migration to microfrontends. We have converted the entirety of Ampath’s POC application into one big microfrontend. Plan is to split it up from there. See below gif for more details.
  • One wiki for setting up local development environment is complete: https://wiki.openmrs.org/display/projects/Setup+local+development+environment+for+OpenMRS+SPA

The below gif is the Ampath application running as a single microfrontend. The plan is to use the strangler pattern to replace parts of the application with openmrs core microfrontends (in collaboration with the entire OpenMRS community). @fali will likely be creating an RFC proposal in the coming weeks to go into more depth about what migration looks like for an existing SPA to microfrontends.

1 Like