GSoC 2019 - OpenMRS Android Client v2.8+ : Final Presentation


@f4ww4z @csmuthukuda

Student: @deepak140596


This project solely targets the development of the OpenMRS Android Client. It aims to add new features, fix bugs and improve the UI and performance of the app.

One of the biggest feature that was added was the Provider module. The Provider relationships still needs to be worked upon. Material design was followed as much as it could be, Settings page has be enhanced, Privacy Policy has been added.

The app now has a Dark Mode to save us from eye strain. Test cases were added for all Presenters and also earlier failing test cases were improved.

Apart from these changes, various bugs have been fixed.

Some of the remaining tasks that still need to be done are the Forgot Password option and Provider relationship module. The Forgot Password was met with a blocker as its testing hugely depended upon one of the GSoC ‘19 tasks.


The objectives of this project are as follows:

  1. Provider Module (CRUD Providers, Provider relationships)
  2. Visual Improvements (Material design, Dark mode)
  3. Improving Performance (Bug fixes, fixing crashes and lags etc)
  4. Backend Improvements (Adding Room DB, Kotlin, etc)
  5. Forgot Password (Security)


Final Presentation

Mid-term Presentation

UI Enhancements

Implemented Dark Mode

AC-551: Implement Dark Mode (Experimental)

Updating UI

AC-620: Make UI more consistent

Revamp Settings Page

AC-618: Revamp Settings Page

Added Expandable FAB

AC-621:Add Floating Action Button in patient’s Details tab

Change Tint of Dashboard Icons

AC-627: Change ImageView color depending upon theme

Using TextInputLayout with Outlined Box theme for inputs

AC-539 Added Outlined Box in Patient Info Form

Adding Material Design to Buttons

AC-592: Buttons should follow Material design guideline

Feature Addition

Provider Module

AC-402: Provider Module — Fetch Providers

AC-622: Add, Edit,Delete Providers

AC-625: Find Matching Providers

AC-626: Add Provider Dashboard

Adding Privacy Policy to the Android App

AC-561- Add a Privacy Policy

AC-579: Added Privacy Policy link to Settings page

Re-developing OpenMRSLogger

AC-544: Added AsyncTask for saving log messages to the file.

Adding Kotlin

AC-602: Added Kotlin dependency to app level build.gradle file

Updating Gradle

AC-609: Change Gradle to latest version

Updated Project Structure

AC-613: Change file structure to match play-publisher’s conventions

Making Search Primary Function

AC-611: Make Search primary function for Find Patients

Bug Fixes

Fixed the bug that showed “Failed to resolve ${project.groupId}

AC-581: Failed to resolve variable ${project.groupId}

Fixed Privacy Policy not opening on click

AC-601: Clicking on Privacy Policy in settings opens the Privacy Policy

AC-605: Add release folder to gitignore

Fixed initialisation of SQLCipher

AC-606: Cannot Initailize SQLCipher

Fixed GPP

AC-613: Job ‘generateReleasePlayResources’ failed

AC-607: Replace Apache HTTP API Client library

Fixed Window leakage error

AC-619: Fix window leakage error while viewing patient details


Update Readme file

AC-629: Updated file

Adding Release notes

AC-603: Release notes 2.7


Provider Dashboard

The blocker while implementing this was that the APIs haven’t been documented.

Forgot Password

The Pull Request shows the implementation.

Meanwhile testing is left which can be easily done once the WebApp is configured with the Forgot Password option.


The blogs describe the work done in detail.

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7

Week 8

Week 9

Week 10


The Talk posts are as follows

GSOC 2019: OpenMRS Android Client 2.8+

JIRA issue tracker shows my account as [X] Inactive

GSoC 2019 : OpenMRS Android Client v2.8+ Mid-term evalutions

Testing Password Reset on Android Client

Can anyone point me to the code for Implementation of Provider Module in the Web App

Password Reset for Android Client

GSOC 2019: Identify disease outbreaks and Alert the Providers

A second test Email and Password

Future Works

A lot of work needs to be done to improve the Android Client.

  1. Adding Provider relationships module
  2. Testing the Forgot Password
  3. Adding Room DB
  4. Appointment module
  5. Chart search

Many more modules needs to be added to the Android client in future so that people can freely use the Mobile platform. Currently due to limited features on the Mobile platform, many operations cannot be performed on it.

Thoughts on GSoC

GSoC was one of the best experiences that I ever had. There was an immense amount of knowledge to be gained and it taught me how great minds from different part of the world work to make a product alive.

Thanks to my mentors who always came to my rescue and guided me throughout the journey. My coding standards has greatly improved and my experience with Android has been great.

Also GSoC has helped me to grab a very good job opportunity at a Startup. Being from a Tier-3 college in India, it has definitely helped me reach heights that I couldn’t had ever imagined.

I am also open to volunteer as a Mentor for GSoC 2020.


Great work @deepak140596 :smiley::v:

1 Like

Great work.

1 Like

Congrats @deepak140596 and we can’t thank you enough for your great effort!

1 Like

Thanks so much @deepak140596!

We are thinking of using this module to build an android app
 just wondering if anyone else is using it right now as we are considering using it?

Take care, Mark

fyi @alaboso @ball @dmunson @gbieorbranford