Technical Resources

Resources to get started as a contributor to the CHT

This page contains materials that will help a CHT Contributor to master all the technical details they need to be successful when building tools related to the CHT. For Medic team members, this content is complimentary on a technical level to the Onboarding documents shared by the Internal Operations team. 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.

Exercises

There is a Slack channel #exercism where engineers and tech enthusiats meet and discuss JavaScript and TypeScript exercises from exercism.org on a weekly basis. The primary goal of this channel is to discuss with your teammates 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 our Development Workflow
Architecture of CHT Instances

Internal resources:
App building for techies crash course with Ashley Jones
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
CouchDB and PouchDBCouchDB 2.3 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 12 - Complete Beginner’s Guide 2021
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
SupersetIntroduction to Superset
Creating Your First Dashboard
DBTDBT Core Manual Installation Guide
DBT Video Playlist
LogstashGetting Started with Logstash
Logstash Tutorial
PostgRESTPostgREST Tutorial