Gsoc Week 2

For week one i generated Open web App(OWA) following the openmrs specification. this week was not easy for me. i faced a couple of problems that took me some time to fix. Despite the problems i faced, i decided to start with a static UI for the Add Test Type with little or no styling as per my workflow. One of my major problems for this week was to work while learning alongside. As a beginner in ReactJS, i had to understand some major concepts before implementing them.

I started this week by going through on how to install the openmrs reference application style guide found here then I move to installing the openmrs react-components documentation i found here. I later on move to building the UIs sketch

This is just a sketch UI with no styling to show my current work for the week.

I had a couples of blockers which i will love to mention,
Blockers: I had difficulty understanding on how to use the OpenMRS react-components that i installed. Also I did some dependency update on my project package.json file and after that i tried running npm run build:deploy which failed. (this problem took me up to 4 hrs of my work time to resolve, which i successfully did).
As of now my major challenge is learning React and Working at the same time. But i have decided to resolve this by increasing my working hours so i get enough time to work and learn at the same time.

Week 3 Commits:
> Style my first UI and make it functional
>Start Building the metaData dashboard UI to switch between manager Test Types and manager Attribute types.

Gsoc Week 1: Generating OWA.

The community bonding period is finish and the actual coding period has begun. it’s the first week of the coding period. I started by making a choice of how I’m going to do test and view changes.

So I decided to go with the sdk server, firstly I setup the sdk-server following the steps at Openmrs-sdk then built the present common lab test module using the legacy UI to view all the cases uses in the module

Setting up dependencies

The openmrs owa is being generated using Yo, by installing the Openmrs-owa generator using npm. to do that we first have to setup npm which comes with nodejs (for those who don’t have it install) or check the version by open or terminal with ctrl+t (for linux user) and typing npm --version Or we can install npm here

Now the we have npm install we have to install Yo

First what is Yo??, Yo stands for Yeoman, it’s a modern web Apps scaffolding tool that help you to kick start new projects prescribing Best Practises and Tools. To do so, it provide a generator ecosystem. A generator is basically a plugin that can be run with the `yo` command to scaffold complete projects or useful parts.

Now, still on the terminal you type npm install -g yo and hit Enter, this will install Yo.

We will then have to install the openmrs OWA generator by Running npm install -g @openmrs/generator-openmrs-owa after this step the openmrs generator is completely installed.

Generating the OWA

The OpenMRS OWA Yo generator

After we have successfully install all our dependencies that we need, we can then generate our own OWA

First we start by creating a new directory and naming it using the the openmrs name module convention by

  • Run mkdir openmrs-owa-nameofyourowa like so mkdir openmrs-owa-commonlabtest
  • Next we move into the newly created directory cd openmrs-owa-nameofyourowa that will be cd openmrs-owa-commonlabtest
  • we now run our generator yo @opnemrs/openmrs-owa
  • you will then have to fill the necessary information like
    1. Your app name
    2. Give a description of what the app is all about
    3. Select what kind of openmrs server you running(Enterprise, Standalone or SDK)
    4. The Framework or library you are going to build your app in(React, Angular or React + Redux)
    5. The server URL you will want you app to server from locally
    6. The path to the your app directory
  • After all this the generator will automatically scrafford your app out for you and the install the node-module then you should have something of like this
  • To build the distribution zip file run npm run build:prod
  • npm run build:deploy to deploy to you local server
  • npm run watch for live reload of your app

The openmrs OWA generator provides you with some basic HTML and CSS. it setup the webpack config and also the package.Json file which holds all the dependency versioning of you project. we have currently setup the project

WEEK 2 Commits

  • Integrating openmrs-react-components and reference-app styles
  • Building UI Form for Add attribute type.

GSoC community bonding at OpenMRS

After the list of selected have been publish the community bonding period begins.

During community bonding students are expected to get to know their mentors and the work they have to. at this i got to know my mentor attend the introductory call, setup a trello account to track down the workflow of my project. i also got learn about SDK and to use the one used by my organisation (openmrs-sdk) the community bonding was good since i got to see the actual aspect of communicating with both mentors and the community. Building the present module of my project was one of my main concern during this period, but doing so was not easy due to my maven version which i was running (maven 3.6) and had to down grade (maven version 3.2.5) . i also found the community bonding in my organisation very interesting since, i got see daily reminder and information to students and what they are to do as concern the whole program.

The google telegram group brings GSoC students of each year together, to chat and share ideas on their projects. So far i will say i enjoy every little bit of the program and how it goes. After this period of community bonding the actual coding phase one start. Setting up your development environment is a key aspect during community bonding, which i did and my first first task for the the community bonding period was to re-write my proposal since the project assigned to me was not the actual project I went for. Gsoc program i most say have put a lot in me for this short while and I know there is still more am going to learn before the end of the program.