My Google Summer of Code Journey — Week 7

This is the seventh week of my GSoC project. Since my Kawesi passed away, Brandon became my primary mentor. We had a call last Thursday to plan the next steps of the project. Here are the defined key milestones:

EOW July 26
Solution for data mutation management
Registration Workflow

EOW August 2
Clinical Visit Workflow

EOW August 9
Triaging & Vitals Workflow
User Settings Workflow

The main focus of this week was to make the tests repeatable despite data mutations. The tests should ideally be run against a dockerized server and dockerized database, with the data stored in the…

The sudden death of my beloved GSoC mentor

It was 5:40 pm on my time last Friday. I received a message from Juliet; one of my colleagues at OpenMRS.

“My bro, pray for Joseph Kawesi, the building has collapsed to him.
I can’t tell his state for am just rushing there to join Kayiwa. God be with you.”

I was frightened. I was curious as to what had transpired, but she had not responded.

After ten minutes, I got a new message,

“he has died”

I met Joseph a year ago while working as a GSoC student at OpenMRS. At the time, I was focusing on improving OpenMRS…

After going through a lot of trials and errors, I was able to complete writing E2E tests for the login, patient search and patient registration workflows. The goal of the task was to give users confidence that the Login, Search & Registration workflows of the RefApp 3.x are working as expected. This is a quick update on what I discovered while working on this task.

Here’s the updated feature file of the login flow. I was trying to make it much readable as possible.

Here’s a demo of the test.

This is the PR:

The next step was to…

This is my 4th week of Google summer of code. The main focus of this week was to complete and end to end test for the patient registration flow. There are two scenarios for the patient registration flow. One is searching for a patient, while the other is registering one.

This is the feature file of the patient search:

It searches for both existing and non-existing patients, as specified in the feature file. If the page displays the expected results, the test should pass. However, because we are using a publicly deployed server, these tests may fail because someone…

My this year’s GSoC journey is in its third week. I spent the week developing an E2E test for the patient registration page and presenting my findings to the quality assurance team. Aside from that, it was a memorable week in my OpenMRS journey; I presented at the Digital DHIS2 Annual Conference!

DHIS2 (District Health Information Software 2) is an open-source software platform developed by the Health Information Systems Programme for data reporting, analysis, and dissemination across all health programs. The DHIS2 Annual Conference is the largest yearly event for DHIS2 and allows the global DHIS2 community — a broad…

Google Summer of Code: 2nd Week

My this year’s GSoC journey is in its second week. The key objective of this week was on setting up an E2E test with cypress and cucumber for the refapp-3.x. The refapp-3.x didn’t have any E2E test before, so that was a bit challenging. So I decided to start with a small one; a workflow to check the login feature.

All the QA tests OpenMRS has been moved to a single repo named openmrs-qa-framework. You could find it here. QAFramework is an OpenMRS’ behaviour-driven development (BDD) quality assurance framework.

Luckily the cypress and cucumber…

GSoC 2021: E2E Automated Tests for the OpenMRS 3.0 RefApp

“More than the act of testing, the act of designing tests is one of the best bug preventers known.”
-Boris Beizer

As a result of the Microfrontend Team’s tireless efforts, OpenMRS will soon have its new edition “OpenMRS 3.0”. Most of the MFE applications have their own unit tests and integration tests. Those tests will take a small part of the application and assess that part in isolation. However, even the small parts of the application work fine, It does not guarantee that they will work together as a group…

Live location is also a vital feature that enables IT admins to track the real-time location of devices belonging to the organization. The requirement was to develop a feature to track the real-time location of a device and display it on a map.

To achieve it, I developed a location callback and a WebSocket that provides full-duplex communication channels over a single TCP connection. Java is the language used in the Entgra IoT backend.

Figure 11: The flow of the real-time location feature of Engra IoT Server

Whenever an admin loads the real-time location view of a device; it adds…

The Entgra IoT server has fascinating MDM functionality. The previous MDM (known as DeviceMgt) UI was kind of old and the company decided to rewrite the UI using ReactJS to make it well optimized and highly configurable. I was so fortunate to be a part of that team.

I implemented the following,

  • Initiate the new react application
  • Develop login functionality
  • Configure CSS modules
  • Migrate the Antd version from v3 to v4
  • Create navigation
  • Create the location history view
  • Create the manage certificates view
  • Create the single device view
  • Redesigned the operation option
  • Create the page headers
  • Add filtering options


In the modern world, many companies shift towards mobile-first workplaces. Apps place a vital role in such enterprises. Mobile Application Management (MAM) provides IT administrators to efficiently control and secure corporate data which is essential in any mobile strategy, especially in Bring Your Own Device (BYOD) programs.[1]

Entgra App Manager (APPM) is a complete solution for publishing and managing all aspects of an application and its lifecycle — from installation to deletion and updating apps, managing configurations, etc. This is an Open Source project maintained by Entgra and it is pre-built with Entgra IoT Server.[2]

In 2019, Entgra initiated a…

Jayasanka Weerasinghe

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store