Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Final Report - GSoC-2021 Program.

Organization - LibreHealth

Project - Scaling up the mobileHBS/DHIS2 Tracker and Trainer applications

Student - Bhavesh Sharma


In various low/middle-income countries children die in just a few days after their birth due to the inadequate supply of facilities that they require. The important fact is that all of these deaths are Preventable and can be prevented by providing proper knowledge to the mothers of the babies and other people and by providing a proper tracker facility to track the health status of the baby in the early days of his birth.

As a sort of solution MHBS applications are launched which is a set of 4 applications. Out of which I had worked on the mhbs-trainer and mhbs-tracker. Tracker is used for data collection which is built from the dhis2 mobile application and trainer is used to access the resources.

The Goal of this project is to develop the scale-up version of the existing mHBS application, updating the old code base and adding new features, providing a feature to access media resources uploaded on the dhis2 through the trainer app which will be used for the training of the individual.


Librehealth Project Repository

My Forked Repository

Mobile App

What was done:

During these 10 Weeks, I have:

  • Updated mHBS-Tracker repository with latest dhis2 one & made changes required for tracker app.
  • Added Media Page, Integrated API Calls to fetch and play all type of media files (educational resources) uploaded in dhis2.
  • Added offline support & sync facility.
  • Build a system to track app usage.

Merge Requests

  1. Update mHBS-Tracker & Set-up CI/CD - Merge Request 12

  • Merged the upstream changes that have more than 6K unmerged commits.
  • Modified the final merged code to have features and look like the mHBS app.
    • App Name and Logo has been changed.
    • UI Improvements.
    • Added External other apps of mHBS to the app drawer.
    • Added functionality to open other mHBS apps.
  • Set up CI/CD to automatically build the app and check for errors.
  • Fixed Some of the build errors.
  1. Added Media Page | Added Feature to play any type of media file | Set-up CI Pipeline - Merge Request 194

  • Added Media Page in trainer app and uploaded some educational & testing resources on dhis2.
  • Integrated API Calls to fetch media resources into trainer app.
  • Integrated cordova-file-opener2 plugin and make all types of media files accessible through the app.
  • Integrated Gitlab CI Pipeline to automatically build the apk.
  • Related Issues : #190 #112 #77 #39 #21
  1. Added offline support - Merge Request 195 & Merge Request 198

  • Implemented File sync feature and added appropriate synced icon for stages.
  • Implemented sqlite-database and cordova file plugin to storage purpose.
  • Added full offline support for synced media files.
  • Sync facility is added for both the list of documents and for document media files as well.
  • Related Issues : #69
  1. Added System to track app usage - Merge Request 196

  • App usages are being stored locally in the SQL database ( like Page visits, Time spent, etc.).
  • After crossing the min. threshold limit app usage will get synced with the dhis2 user’s datastore and shifted to dhis2.
  • Overall usage of each page (approx 15+ pages) can be tracked remotely over dhis2 and can be used for analytical purposes.
  • Related Issues : #36 #120
  1. UI Improvements & Filtering Options - Merge Request 199

  • Added Thumbnail and video duration in media files.
  • Added filtering options for media files to sort them in categories by their types.
  • Improve UI, added button.
  • Related Issues : #195
  1. Exported Mhbs Tracker app Metadata - Merge Request 16

  • Exported tracker specific metadata from dhis2.
  • Checked the metadata by importing it on Demo Dhis2 Servers as well.
  • Related Issues : #22
  1. Passed user credentials to trainer app - Merge Request 13

  • Shared login credentials of tracker app with the trainer app.
  • There is a single login in the tracker app and all the other connected apps will use that credentials for further process, users needs not to logged in again and again in all mhbs apps.
  • Related Issues : #16.

Other Supporting MRs & Tested/Fixed Issues

What after GSoC

I will continue to contribute to LibreHealth for this project. I will assist the new members who are willing to contribute for this project. I will actively take part in the discussions and I will contribute by creating, Solving issues and adding improvements to this app. Currently the on-campus Intern hiring process is also going on, have to focus on that as well.

Thanks to my mentors

I would like to thank my mentors, Sherri Bucher, Saptarshi Purkayastha, Robby O Connor for being so nice and helpful. I have learnt a lot in the past 2-3 months and it has been a great experience to be a part of this wonderful organisation.

I am very much thankful to Saptarshi Purkayastha, I am very grateful to you, this was all possible because of your encouragement, advice, and support that you’ve given me. You have been incredibly generous with your time and energy, Your words of encouragement encouraged me & helped me in sharpening my skills.


mHBS-Trainer App

Home screen Media Page showing all media files tab Media Page showing PDF media files tab
Media Page showing video media files tab with thumbnail & video duration Media Page showing other media files tab

mHBS-Tracker App

Splash Screen Configuration Syncing Page Home screen showing all Programs and Data Sets
Home screen showing navigation drawer Tracker Enrollments Page OSCE-B Form





The project chat channel is on Librehealth Forums, my entire communication with my mentors can be seen there.

Blog posts during GSoC

For better understanding of implementation details & other works done by me please check my Weekly Bogs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment