Technical Overview

Apps built using the Community Health Toolkit can have a number of underlying technical components, packaged with a custom name or brand. The design, development, and deployment process can vary in complexity depending on how these components are used. While there are many technical advantages to building on an established framework, one of the most important benefits is that building with an open community is more fun than going alone!

Community Health toolkit

The Core Framework of the Community Health Toolkit

The Community Health Application Framework supports extensive customization, and makes the development process faster, more reliable, more interoperable, and more secure than coding a digital health app from scratch. The Core Framework enables developers to rapidly deploy more features and customize them in more nuanced ways than is possible with approaches that don’t involve coding, such as drag and drop form builders. This combination of a streamlined, yet powerfully flexible app development toolkit is what has made the CHT particularly useful for highly advanced community health programs, which often have complex task management, decision support, and performance management needs.

In addition to the Core repository, the Framework includes a developer environment, an icon library, an SMS gateway, a native Android container for running the web-app on Android devices, and a command line interface that supports app development, data management, and testing.

If you’re interested in contributing to the Core Framework, check out our list of Help Wanted issues on Github or focus on using and extending the framework’s functionality by writing configuration code and setting up integrations.

Configuration Code

From a technical perspective, developing a custom app begins with writing and testing XForms, JSON, and JavaScript code that configure the framework’s features to run in a specified manner. As an app developer, you define each element in your app in a modular way, and then specify when and how it should appear in the user interface. In this way, you can write code that customizes how the core features are displayed to different types of users, without having to modify the underlying framework. Collectively, this customization is referred to as configuration code.

In the coming months, we plan to update and release documentation to make it easier for the wider community to tinker with, understand, and reuse the apps that the CHT community has developed.


Complementary Apps and Integrations

Designing a community health app that integrates with the broader digital health ecosystem is a powerful opportunity to support more integrated and proactive patient care. The CHT is designed to complement standalone apps that run on the health workers’ smartphone or tablet, and to support more complex backend integrations via the framework core’s API.

In 2019 we plan to release more documentation about different types of complementary apps and integrations. Examples include the OppiaMobile app for health worker learning material and quizzes, a computer vision app that reads rapid diagnostic tests, and integrations with electronic health records and health information management systems such as OpenMRS and DHIS2. If you’d like to propose or build an integration, reach out!


Developer Sandbox

The Sandbox is for developers who would like to get the dev environment set up on their machine, use the command line interface to build a demo with datasets, and start tinkering with the configuration code files that power the demo. 

Framework Roadmap and Release Notes

The Community Health Application Framework is constantly evolving and improving with new contributions from the community. For a sneak peek of where the framework is headed, check out the product roadmaps.