By: Shawn Sarwar, Director of Technology

As our strategic plan dictates, all released technology will be made available as free and open source under a GPLv3 license. Projects are currently hosted via GitLab under a unified VaxTrac project space. The project space directory is available at:

Each project contains its own documentation which should provide a basis for installing and extending its function. A brief explanation of each project follows.


Core VaxTrac Technology:

The core of VaxTrac is a set of applications running on Android devices that assist health workers in the routine immunization of children. It provides: identification of patients over time via various methods, electronic immunization record and schedule adherence tools, governmental reporting tools, and demand generation tools.


VaxTrac Android is a native application that provides a unified user interface and coordination of various partnered android applications via intent and service interactions. For a list of dependencies and interactions, please see the VaxTrac-Android docs. Basic dependencies are CommCareODK and zxing’s barcode scanner. All third party interactions are transparent to the user. All non-ODK functions and business logic surrounding immunization, reporting and demand generation and handled by this application. CommCareODK is used as the data warehouse and transport layer, but is coordinated by the VaxTrac-Android app.



These CommCareODK forms drive data collection in different sections of the VaxTrac-Android application, as well as submission of the data to a CommCareHQ server for sync and transmission to other services.



A small Android library for selection of Nepali dates and operations between the Nepali date and its Gregorian equivalent.


VaxTrac Monitoring & Evaluation Platform

To increase visibility into deployments of VaxTrac, we built a platform that consumes data from CommCareHQ and displays the data in useful ways to drive performance of the project.


Monitor Setup is a set of scripts that automates the provision of VaxTrac monitor to a new ubuntu server. It fetches current releases from git, sets up applications and databases, and performs a pull of existing data from CommCareHQ. It also provides scripts for maintenance and upgrades.



Data endpoint is a simple flask server that takes post data from a CommCareHQ server and directs it to the proper place in the local CouchDB instance. This is the typical method for allowing data to flow into VaxTrac Monitor without polling the CommCareHQ server.



VaxTrac Monitor consists of a Pyramid backend serving data to various Angular 1.5 applications. It has extensible tools for mapping of data, displays in various formats for arbitrary couchdb views as well as a predefined set of basic monitor and evaluation views we have found useful for project monitoring thus far.


Connections to External Systems

VaxTrac data can also be forwarded to external systems like the Motech Suite and DHIS2. We’ve created plug-ins to handle creation and display of various data elements.


The VaxTrac MOTECH module is used in conjunction with the DHIS2 module to forward vaccination data to a DHIS2 server.



This MOTECH module is used to send SMS reminders for vaccination appointments to community health volunteers.



Modified version of the MOTECH DHIS2 module to forward data to a DHIS2 server. Fixes issues like race conditions when providing a dose of vaccine for a patient whose record hasn’t yet arrived.