BaoBaoHealth — Digital Health Platform for Guinea (Web + API)
# BaoBaoHealth
Plateforme de santé numérique pour la Guinée 🇬🇳 — connecte patients, agents de santé communautaire (ASC), médecins, pharmaciens et administrateurs sur un système unique, pensé pour fonctionner même en zone à faible connectivité.
Monorepo **Web (Angular)** + **API (Node/Express)**.
## Stack technique
- **API** (`apps/api`) — Node.js, Express, TypeScript, Prisma (PostgreSQL), Redis, Socket.IO, authentification par cookies httpOnly + JWT.
- **Web** (`apps/web`) — Angular 21 (standalone components, signals, zoneless), PrimeNG, i18n maison FR/EN.
- **Base de données** — PostgreSQL, chiffrement des données sensibles.
- **Cache / jobs / rate-limit** — Redis.
- **Conteneurisation** — Docker Compose (`docker/docker-compose.yml`) : `postgres`, `redis`, `api`, `web`.
## Structure du monorepo
```
apps/
api/ → backend Express + Prisma
web/ → frontend Angular
packages/
shared-types/ → types partagés entre web et api
docker/
docker-compose.yml
```
Workspaces npm définis à la racine (`apps/api`, `apps/web`, `packages/shared-types`).
## Rôles applicatifs
`PATIENT` · `ASC` · `ASC_SUPERVISOR` · `MEDECIN` · `PHARMACIEN` · `ADMIN_STRUCTURE` · `ADMIN_REGIONAL` · `ADMIN_NATIONAL` · `SUPER_ADMIN`
- Les comptes **PATIENT** s'inscrivent librement depuis l'app et se connectent directement (téléphone ou email).
- Tous les autres rôles sont créés par un administrateur (structure ou super admin) et se connectent **avec leur email**, avec une vérification par **code OTP** envoyée par email.
## Démarrage rapide
### Option 1 — Tout en Docker
```bash
cd docker
docker compose up -d
```
Services exposés : Web `:8080`, API `:3000`, Postgres `:5433`, Redis `:6379`.
### Option 2 — Développement local (hot reload)
```bash
npm install
npm run dev # lance API + Web en parallèle
# ou séparément :
npm run api # apps/api (tsx watch, port 3000)
npm run web # apps/web (ng serve, port 4200)
```
En local, seuls Postgres et Redis doivent tourner dans …