Welcome
Welcome! You must be baffled by the project, not having any clear idea as you just joined. Dread not! We'll walk you through the onboarding.
Hopefully after spending some time reading sections below, you'll have a more clear idea.
By all means, please feel free to to ask on Slack general channel!
Understanding the structure of 2 workflows and 5 teams
The project is divided into 2 workflows: online and offline
The members are divided into 5 teams: frontend-mobile, frontend-web, backend-online, backend-offline, infra
The table below gives a roughly good idea to understand the relations between 2 workflows and 5 teams
| Workflow | User | Interface (frontend) | API (backend) | database |
|---|---|---|---|---|
| Online | ​e.g. Parents uploading data/photo | ​app (iOS, Android) | ​APIs | ​Database named "BioHPC" |
| (by frontend-mobile team) | (by backend-online team) | |||
| Offline | e.g. Scientists view data | web (React) | APIs | Should also be on "BioHPC" |
| (by frontend-web team) | (by backend-offline team) |
You might notice infra team is missing in the table. Infra team builds up the environments (servers/GitHub/certs/domains/etc) to support other teams.
In one word, infra team underlies all other teams.
Workflows
Now having a rough idea about each team's role, let's understand how their code is interacting with each other (workflows).
To understand the workflows, from the link below, read the the last diagram in the bottom
Project environment and workflow settings
Codebases (GitHub)
You can find a list of all codebases on GitHub for each team at this link.
How do I write/debug code?
After cloning your codebase from GitHub, now it's time to write/debug code.
Probably you won't yet have every required library installed, but worry not! We use docker container to standardise everything (versions/libraries).
In one word, you'll find it more convenient and elegant to write/debug code in docker container env (instead of on your laptop's local env).
Read the doc below to know how.
Where are these 3 envs? (dev, test, prod)
The previous section "Workflows" shows 3 envs (dev, test, prod) in the diagram. Where are they?
After reading the previous docs "How do I write/debug code?", you will be able to write/debug code locally - that is your dev env! (dev env is on everyone's laptop).
Test env and prod env are NOT on your laptop, but rather shared by all members. Where are they and how can I access them? Here's the answer.
Domains of backend APIs and SSL