More Information
Background Color |
---|
|
(1) Plug & Play Architecture: The frontend stack we're building on using Micro FrontendsGoal: Frontend architecture designed for extensible and configurable apps and widgets. |
What are Microfrontends? Microfrontends are in-browser javascript modules (ESMs) that provide application UI. They make it possible to have extensible, configurable and independently deployable frontend features. It means you can get your frontend live and updated fast.
Our MF Framework is Single-SPA: We chose to use single-spa, the most popular microfrontends framework, as the basis upon which to build this new frontend architecture.
Our MF Tech Stack: Primarily React, HTML and CSS, but it's not unfeasible that one could choose to develop in a JavaScript framework of their choosing - that's the whole premise behind microfrontends after all.
Repositories You Should Know About
Frontend 3.0 uses a framework called esm-framework
, which is housed in openmrs-esm-core, along with the app shell and tooling. Distributions will use these core modules and package a number of Microfrontends which are built on them. The reference application is made up of all the microfrontends found in the following repositories:
Special mention for openmrs-rfc-frontend which is a git repo that facilitates a democratic process where folks can propose changes to the frontend implementation via RFCs (Request For Comments). Please read, for example, the Contributing Guidelines for Microfrontends, which were established with RFC #20.
Auibutton |
---|
icon | configure |
---|
title | GitHub: esm-core |
---|
type | primary |
---|
url | https://github.com/openmrs/openmrs-esm-core |
---|
target | true |
---|
|
Auibutton |
---|
icon | info |
---|
title | Dev Guide |
---|
type | primary |
---|
url | https://github.com/openmrs/openmrs-esm-core/tree/master/docs |
---|
target | true |
---|
|
Auibutton |
---|
custom-icon | video-filled |
---|
icon | custom |
---|
title | Tutorial |
---|
type | primary |
---|
url | https://www.youtube.com/watch?v=KDC8DwPWwjc&ab_channel=FlorianRappl |
---|
target | true |
---|
|
Background Color |
---|
|
(2) Implementer Tooling: Tooling we're building to make MFE easier for implementers to configureGoal: Enable both developers and non-developers to easily configure their distribution, and re-use that configuration rapidly. |
Auibutton |
---|
custom-icon | video-filled |
---|
icon | custom |
---|
title | Demo |
---|
type | primary |
---|
url | https://www.youtube.com/watch?v=xhtVoNnZoec&list=PL5jj7JoBifSnuNkGytL6m4IQ2OuV9lbq1&index=7&ab_channel=OpenMRS |
---|
target | true |
---|
|
Auibutton |
---|
icon | configure |
---|
title | Implementer Tool App on GitHub |
---|
type | primary |
---|
url | https://github.com/openmrs/openmrs-esm-core/tree/master/packages/esm-implementer-tools-app |
---|
target | true |
---|
|
openmrs-esm-implementer-tools-app is an in-browser javascript module provides a UI for viewing and editing configurations, and viewing other administrative information about the frontend application. It is part of the Extension System. Auibutton |
---|
icon | configure |
---|
title | Implementer Config Library on GitHub |
---|
type | primary |
---|
url | https://github.com/openmrs/openmrs-esm-core/tree/master/packages/esm-config |
---|
target | true |
---|
|
This is the configuration library for OpenMRS Microfrontends. It makes configurability easier for developers and configuring easier for implementers.
Background Color |
---|
|
(3) Building a Friendly, Modern UX in RefApp v3.0Goal: Create a better means for building out a shared UI. Modernizing the entire RefApp frontend, using Carbon Design System for UI consistency and faster dev value. Our OpenMRS Reference Application needs to become a Point of Care application, that’s modern, friendly, and works well on tablets.
|
We are working on a re-design of the patient chart, starting with end-to-end support for HIV Outpatient Workflows.
We're currently in the process of implementing new designs that leverage the carbon design system for our reference application. (More on why we chose carbon here).
We're not starting from scratch though. Rather, we're migrating from an old set of designs (and an old style guide) to the new designs (and now migrating to use Carbon Design System as well - not all the Carbonizing work is done). As such, it should not be unexpected that gaps will be found in documentation, incomplete implementations, broken functionality and so on as we move to get everything back in order.
Designs:
Auibutton |
---|
custom-icon | new-edit |
---|
icon | time |
---|
title | Designs in Progress |
---|
type | primary |
---|
url | https://www.sketch.com/s/1dd7e0f7-b96b-4586-846c-5c352fc954e3 |
---|
target | true |
---|
|
Auibutton |
---|
custom-icon | new-edit |
---|
icon | custom |
---|
title | Designs Ready for Development |
---|
type | primary |
---|
url | https://app.zeplin.io/project/5f7223cfda10f94d67cec6d0 |
---|
target | true |
---|
|
Our Design System:
Auibutton |
---|
icon | info |
---|
title | Carbon Design System |
---|
type | primary |
---|
url | https://www.carbondesignsystem.com/components/overview |
---|
target | true |
---|
|
Auibutton |
---|
icon | info |
---|
title | Rationale for Carbon |
---|
type | primary |
---|
url | https://openmrs.atlassian.net/wiki/pages/viewpage.action?pageId=22572872 |
---|
target | true |
---|
|
Our Simple Style Guide for reference:
Auibutton |
---|
custom-icon | camera |
---|
icon | custom |
---|
title | Styleguide (Re-useable Styled Components) |
---|
type | standard |
---|
url | https://app.zeplin.io/project/5f7223cfda10f94d67cec6d0/styleguide/components |
---|
target | true |
---|
|
Auibutton |
---|
custom-icon | video-filled |
---|
icon | custom |
---|
title | How to Use Zeplin in Dev Work |
---|
type | primary |
---|
url | https://youtu.be/SjluEGDH4LU |
---|
target | true |
---|
|
Meet the Members
Finally, member information. This will include the project’s leaders, or any other noteworthy members, sorted by their role and given contact information. It is important to maintain a distinction between teams and squads. All contact tables should be conveyed using the same format. Currently being used is this table below. The left column indicates the different positions, and the corresponding right columns will list the tags of all active members holding those positions.