Concepts Open Web App sprint!

Hello Fellow Devs!

This is an invitation for everyone to join a sprint around developing an Open Web App for managing concepts. During the sprint we will set the path for developing Open Web Apps for OpenMRS. It means we will employ the hottest tools and design patterns available for developing AngularJS apps for OpenMRS.

Start from getting to know the AngularJS style guide we will follow.

Next have a look at our openmrsRest service, which will be your best companion connecting to OpenMRS REST API.

Finally setup your development environment following the README.md file.

And join on board by picking up any issue from the sprint here.

We are still learning so you will find some of the code do not comply with the style guide, but we are in the process of fixing it. When working on issues please do follow the new style guide!

8 Likes

I’m really excited to see this happen!

Please please please don’t repeat a s specific mistakes that the Mirebalais team originally made (and has been replicated throughout the uicommons module).

Particularly, you’ve copied the bad “magic” thing we did, by returning response.results. This is bad because it loses the paging information, so someone who calls this API has no idea if they got all results or not, and they have no way to requesting a second page.

1 Like

What are the dates? :calendar_spiral:

1 Like

The sprint is on until next Thursday, 12 pm UTC.

Good point Darius, thanks. We’ll fix that.

2 Likes

The style guide link is missing

Why do we need to create a web app for concepts ? I am curious to understand what is the use case for this

1 Like

We seem to be moving towards using the REST API for the entirety of functionality I believe (unless I am wrong?)

1 Like

Corrected the style guide link. Thanks @lluismf!

1 Like

That’s right @r0bby. In addition we chose Open Web Apps, because they are more convenient to develop than our regular OpenMRS modules. They are lightweight and load extremely fast. In addition the skills required are typical for front-end developers, who don’t need to do any Java coding.

1 Like

(Rafal, sending this without doing any research since I’m not going to have good net for a while.)

Since we are setting new best practice standards here, can we use ES6?

-Darius (by phone)

··· On Mar 12, 2016 3:14 PM, "Rafal Korytkowski" wrote:

raff https://talk.openmrs.org/users/raff Rafal Korytkowski https://talk.openmrs.org/users/raff /dev/5 March 12

That’s right @r0bby https://talk.openmrs.org/users/r0bby. In addition we chose Open Web Apps, because they are more convenient to develop than our regular OpenMRS modules. They are lightweight and load extremely fast. In addition the skills required are typical for front-end developers, who don’t need to do any Java coding.

Visit Topic https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/10 or reply to this email to respond

In Reply To r0bby https://talk.openmrs.org/users/r0bby Robby O’Connor https://talk.openmrs.org/users/r0bby GSoC Mentor March 12 We seem to be moving towards using the REST API for the entirety of functionality I believe (unless I am wrong?)

Visit Topic https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/10 or reply to this email to respond

To stop receiving notifications for this particular topic, click here https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/unsubscribe. To unsubscribe from these emails, change your user preferences https://talk.openmrs.org/my/preferences

or, click here <reply@talk.openmrs.org?subject=unsubscribe> to unsubscribe via email.

3 Likes

And a couple links I haven’t had time to click on from a ThoughtWorks thread about Angular with ES6:

“It’s easy enough to setup angular with webpack to allow for es6 and module loading.”

Top 10 Mistakes https://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make AngularJS https://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make Developers Make https://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make Exploring ES6 Classes in http://www.michaelbromley.co.uk/blog/350/exploring-es6-classes-in-angularjs-1-x AngularJS http://www.michaelbromley.co.uk/blog/350/exploring-es6-classes-in-angularjs-1-x 1.x http://www.michaelbromley.co.uk/blog/350/exploring-es6-classes-in-angularjs-1-x Exploring Angular 1.3 using ES6 http://blog.thoughtram.io/angularjs/es6/2015/01/23/exploring-angular-1.3-using-es6.html

ES6 is amazing.

2 Likes

Yes, we should use ES6 with Babel. I’m planning on updating the OWA generator to use Webpack instead of Grunt. I’ll include the Babel loader for transpiling ES6.

Anyone have any other ideas for the generator? I’m thinking we probably need a CSS preprocessor in the pipeline too.

1 Like

Use jade over plain html…kill angular and use react :stuck_out_tongue:

Pascal, any idea when that work will be done? Webpack will be key to properly managing dependencies once the Concepts OWA starts moving to the ‘1 component per file’ approach as dictated by the style guide. This work would seem to have a big impact on https://issues.openmrs.org/browse/RA-1077 which calls for use of a tool like webpack and is currently assigned to Tomasz Marzeion. Should make sure to coordinate these efforts…?

Will the dictionary tab in the classic dashboard be done away with? Still dont see a classic use case (beyond showing how to do WebApps) for the sprint. Help me understand

Judy, the purpose of this sprint is to replicate the concept management functionality from the legacy UI for use in the 2.x UI.

Building this as an OWA will make it easier to reuse in both the reference application, and other distributions.

(The legacy UI will broadly stay the same, in the new module or currently lives on. We aren’t intending to “do away with” anything, or add anything to it either.)

-Darius (by phone)

··· On Mar 13, 2016 12:25 PM, "Judy Gichoya" wrote:

judy https://talk.openmrs.org/users/judy Judy Gichoya https://talk.openmrs.org/users/judy March 13

Will the dictionary tab in the classic dashboard be done away with? Still dont see a classic use case (beyond showing how to do WebApps) for the sprint. Help me understand

Visit Topic https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/17 or reply to this email to respond

In Reply To kristopherschmidt https://talk.openmrs.org/users/kristopherschmidt /dev/4 March 13 Pascal, any idea when that work will be done? Webpack will be key to properly managing dependencies once the Concepts OWA starts moving to the ‘1 component per file’ approach as dictated by the style guide. This work would seem to have a big impact on https://issues.openmrs.org/browse/RA-1077 which …

Visit Topic https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/17 or reply to this email to respond

To stop receiving notifications for this particular topic, click here https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/unsubscribe. To unsubscribe from these emails, change your user preferences https://talk.openmrs.org/my/preferences

or, click here <reply@talk.openmrs.org?subject=unsubscribe> to unsubscribe via email.

1 Like

One other thought if you are moving in the direction Webpack / ES6+Babel – have you considered switching the dependency management from Bower to relying more on npm? Webpack suggests preferring npm/CommonJS modules to bower modules (http://webpack.github.io/docs/usage-with-bower.html). There seems to be a decent amount of momentum in this direction. I can also envision that npm’s nested dependency management could become important to reduce ‘dependency ■■■■’ as the number of OWAs and re-usable front-end components/libraries for OpenMRS increases.

+1 to preferring npm to bower for dependencies.

-Darius (by phone)

··· On Mar 13, 2016 5:34 PM, "Kristopher Schmidt" wrote:

kristopherschmidt https://talk.openmrs.org/users/kristopherschmidt /dev/4 March 14

One other thought if you are moving in the direction Webpack / ES6+Babel – have you considered switching the dependency management from Bower to relying more on npm? Webpack suggests preferring npm/CommonJS modules to bower modules (http://webpack.github.io/docs/usage-with-bower.html). There seems to be a decent amount of momentum in this direction. I can also envision that npm’s nested dependency management could become important to reduce ‘dependency ■■■■’ as the number of OWAs and re-usable front-end components/libraries for OpenMRS increases.

Visit Topic https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/19 or reply to this email to respond

In Reply To pascal https://talk.openmrs.org/users/pascal Pascal Brandt https://talk.openmrs.org/users/pascal Community Manager, EMEA Region March 12 Yes, we should use ES6 with Babel. I’m planning on updating the OWA generator to use Webpack instead of Grunt. I’ll include the Babel loader for transpiling ES6. Anyone have any other ideas for the generator? I’m thinking we probably need a CSS preprocessor in the pipeline too.

Visit Topic https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/19 or reply to this email to respond

To stop receiving notifications for this particular topic, click here https://talk.openmrs.org/t/concepts-open-web-app-sprint/5239/unsubscribe. To unsubscribe from these emails, change your user preferences https://talk.openmrs.org/my/preferences

or, click here <reply@talk.openmrs.org?subject=unsubscribe> to unsubscribe via email.