We should talk about ReactJS and Bootstrap on our tech radar

We currently say this at http://om.rs/radar :

ASSESS: Other new JS frameworks

AngularJS and ReactJS are compelling technologies, but we do not have practical experience with them. We hope trailblazers start using these technologies in the OpenMRS ecosystem, and share their learnings.

At this point it seems that most new development is happening in ReactJS OWAs, and this is becoming our defacto new standard (largely driven by Andela). I’m perfectly okay with this – I love React – and I think we should formalize this by marking ReactJS as ADOPT on the radar.

Maybe @dkayiwa and some of the Andela devs want to draft a blurb about React?


Also, as @ssmusoke is happy to tell us (over and over!) we should be looking to do future development on standard CSS frameworks like Bootstrap 4. I think we should reflect this in the radar also, but I would put that as a weaker recommendation until we have working examples.


I’m not volunteering to write the blurbs, just suggesting that others should!

2 Likes

@Andela can you take a stab at this?

I am interested in this. Would love to hear more on the thoughts you have on the blurb @darius. Would it be an introduction to the React library and maybe links to resources on setup and use? What is your recommendation?

I will like to be involved in this, perhaps having more context will help in knowing how best to contribute to this

Glad to hear of people’s interest!

I fixed the link to the OpenMRS radar in the first post, so take a look at http://om.rs/radar, and particularly some of the entries in the Languages and Frameworks section, and this should make it more clear what I’m talking about.

The idea of the OpenMRS Tech Radar is to explain what technologies we recommend that people test or use in the context of OpenMRS. So, the idea would be to explain why and for what kinds of projects people should adopt ReactJS and OpenMRS, and link to what they can look at as starting points.

2 Likes

Okay, I will look into that. Thanks

I have gone through the radar and I found it an interesting read, I can make a post on react JS for creating OWAs. My question however is what is the process for getting it included in the radar?

We try to meet quarterly (it has been 2-3 times per year) to review and update the radar, often triggered by an update from ThoughtWorks radar and announced on talk like this. The goal of an update is to refresh descriptions/recommendations, remove legacy entries, and add new ones. So, assuming we can get enough interest, we could meet in April for a 2018 Q2 update.

Ping.

@larrystone have you had a chance to draft a blurb for the React recommendation?

(If we have that as a starting point I think we could probably have a single design call to review/update the radar, so once we have a draft I’ll reach out to Jamie to schedule a call.)

@darius Thanks for your response. I am still having a bit of a challenge as to how to go about drafting the blurb and in particular where to post the blurb when done. I mean is it okay to just post it here on talk? I look forward to getting something up when I have answers to these questions.

@larrystone, yes I would just post the draft here, so we can get asynchronous feedback, and then we’ll set up a call to review this and other changes to the radar.

@darius @burke I have been able to come up with a general blurb on react.

The days of building static web pages with html, css and vanilla javascript are gone, Single Page web Apps via the use of libraries (albeit built upon javascript) have taken over the front end web ecosystem. React is very popular and revolutionary in this regard. There are also generators (e.g create-react-app, yo, nextJs) that makes it easy to bootstrap a react project in minutes, thus making react the best choice for rapid web development. React is also open sourced and is supported by a vibrant community of developers and enthusiasts. Feeling convinced already? Check out the react website for more information https://reactjs.org/

And here’s a version adapted for openMRS

Earlier OpenMRS client-side development have been done using JSP and Angular 1.x. However, the idea of Open Web Apps (OWA) is gradually becoming popular and React is on the forefront in this regard. We recommend today’s new development of Single Page Apps (SPAs) or JavaScript-heavy screens use React. Please check out this guide on how to boostrap a react project (OWA) for openMRS. There is also an option of using react with Redux for even more complex or larger scale web application.

Thanks @larrystone, this OpenMRS-adapted version is a good start.

  1. I think we will need to be slightly more guarded/specific in our recommendation, e.g. you do say SPAs, but we should probably be more clear about what that means in the OpenMRS context (I guess, new apps that can run within the reference application). Whereas we still recommend that code that already uses gsp and/or angular 1 should continue to.

  2. We should also be more specific in whether or not to recommend redux. (E.g. the sentence you have doesn’t give any info to a generic OpenMRS dev about whether redux is good for them or not.)

  3. I would point to a best-practice example of an OWA using React.

What do others think?

Thanks for your response @darius. I will look into them as soon as I can

@darius am thinking of Angular 4+(particular interest in Java-like Typescript) for OWA ’ s to walk side by side with React , that broadens contributor base and lessens learning for an almost endless and emerging array of JS frameworks which more or less accomplish the same thing.