Kaya (nom de travail) : plateforme de livraison a la demande pour le Ghana, le Togo et le Benin. Mise en relation clients et livreurs independants avec encheres inversees, paiement sequestre mobile money, suivi GPS temps reel et chat integre. Apps Flutter client et livreur, API NestJS, PostgreSQL/PostGIS, Redis, admin SPA.
# Kaya — plateforme de livraison à la demande (Afrique de l'Ouest)
Mise en relation clients ↔ livreurs indépendants au **Ghana, Togo et Bénin** :
enchères inversées, paiement séquestre mobile money, commission dégressive,
suivi GPS temps réel, chat intégré, conformité locale (PCSRC / carte pro / permis livreur).
> « Kaya » est le nom de travail (le nom final n'est pas choisi). Voir `BLUEPRINT.md`
> pour le scope, les décisions et les jalons ; `docs/SECURITY_AUDIT.md` pour l'audit.
## Architecture
```mermaid
flowchart LR
subgraph Mobile [Flutter 3.24+]
C[App Client] --- K[(kaya_core thème · API · socket · i18n)]
D[App Livreur] --- K
end
K -- REST /api/v1 + JWT --> A[NestJS API]
K -- Socket.io --> A
A --- P[(PostgreSQL 16 + PostGIS)]
A --- R[(Redis 7 GPS · throttles · rooms)]
A --- S[(S3 / MinIO photos & documents)]
A -.webhooks.-> G[Paystack · Kkiapay mock en dev]
A -.push.-> F[FCM]
W[SPA Admin] -- REST admin --> A
```
Monorepo :
| Dossier | Contenu |
|---|---|
| `backend/` | API NestJS 10 + Prisma (auth OTP/JWT, commandes, enchères, escrow, commission, litiges, admin) |
| `packages/kaya_core/` | Package Flutter partagé (design system « Accra Minimalist Delivery », modèles, Dio, Socket.io, i18n FR/EN) |
| `apps/client/` · `apps/driver/` | Les deux apps mobiles mono-rôle (Riverpod, go_router) |
| `admin/` | SPA admin minimale (statique) |
| `docs/` | Doc d'architecture, référence design, audit sécurité, OpenAPI |
## Démarrage développement
Prérequis : Node 20, Flutter ≥ 3.22, Docker Desktop.
```bash
# 1. Infrastructure (PostGIS + Redis + MinIO)
docker compose up -d
# 2. Backend
cd backend
npm ci
npx tsx scripts/generate-keys.ts # clés JWT RS256 de dev -> ./keys (gitignoré)
cp .env.example .env # défauts dev prêts à l'emploi
npx prisma migrate dev
npm run db:seed # country_configs GHA/TGO/BEN + admin
npm run start:dev # API sur :3000, Swagger sur /docs
# 3. Apps mobiles (autre terminal)
cd apps/clie …