Technical Resources

Resources to get started as a contributor to the CHT

This page contains materials that will help a CHT Contributor to learn the technical details they need to be successful when building tools related to the CHT.

Keep in mind that this is a living document, and every contributor is encouraged to add to it when identifying learning opportunities that can set them up for success with the CHT. The main goal here is to provide the technical people who are new to the CHT with a list of resources that could be beneficial for them in both the short and long term. However, the expectation is not to complete every course listed in this document but instead to share some resources that other contributors found helpful. It is valid if you prefer to use other training material, as long as you cover the skill/topic during the onboarding. That means you will need to learn JavaScript, TypeScript, Docker, CouchDB, and others mentioned in the “Skills” column, as you will use them in your day-to-day activities, and the list provided in the “Resources” column is meant to support you in this. It is OK if you prefer to learn with alternative resources.

Developer Workshops

There is a Slack channel in the Medic Workspace called #cht-dev-workshop for CHT community members to grow their coding skills. The group meets on a weekly basis. The primary goal of this group is to discuss with other developers and have a fun, open discussion on how the provided solutions can be improved, while also having the opportunity to connect with people from other teams. Even though this is optional, it is highly encouraged to join and participate frequently.

Technical Resources

SkillResources
CHT Local Environment and DocsSet up your local development environment
Go through CHT Documentation
Get familiar with the Development Workflow
Architecture of CHT Instances
CHT Academy - Introduction to Building CHT Application
Where to ask questions about the CHT?
JavaScriptEloquent JavaScript
Asynchronous JavaScript Requests
You Don’t Know JS
TypeScriptTypeScript Documentation
DockerContainers and Docker Mega Thread
Docker mastery course
Learn Docker in a month of lunches
The Ultimate Docker course
KubernetesKubernetes documentation
Using Kubernetes as a Developer
Packaging Applications with Helm for Kubernetes
CouchDB and PouchDBCouchDB introduction user guide docs
Understanding CouchDB 3
Introduction to PouchDB
NodeJS and NPMThe Complete Node.JS developer course
Understanding NPM - Node.js Package Manager
AngularAngular guides
Angular University courses
Offline FirstOffline Web Applications
Web ArchitectureWeb Architecture 101
Web BrowsersInside look at modern web browsers, part I
Inside look at modern web browsers, part II
Inside look at modern web browsers, part III
Inside look at modern web browsers, part IV
Web PerformanceHigh Performance Browser Networking
PostgreSQLPostgreSQL Tutorial
PostgreSQL Cheat Sheet
PostgreSQL Views Tutorial
PostgreSQL Views Documentation
Common Table Expressions (CTEs)
PostgreSQL Queries with CTEs Documentation
dbtdbt Core guides
dbt Video Playlist