systeme de commande et livraison de repas en ligne pour le marche malgache
# M-E-kaly
Projet de livraison de repas pour Antananarivo (et plus tard le reste de Madagascar).
Nom produit : **Madagasik'Hanina**.
C’est un monorepo. Y’a une API Nest, deux apps web Next (vendeur + admin), et deux apps Expo (client + livreur). L’idée c’est de digitaliser autant les gargottes que les restos un peu plus établis, avec Mobile Money en tête et une vraie logique de course pour les livreurs.
Le cahier des charges est dans le repo (`CAHIER_DES_CHARGES.md` / `.docx`). Ce README couvre surtout comment faire tourner le truc en local.
---
## Prérequis
- Node 20+ (testé avec 24 aussi, ça passe)
- npm
- Rien d’autre pour le MVP local : on est sur **SQLite**, pas besoin de Postgres/Docker pour démarrer
Si un jour tu veux Postgres : y’a un `docker-compose.yml` minimal, mais pour l’instant on s’en sert pas.
---
## Install
```bash
npm install
npm run db:generate
npm run db:reset
```
`db:reset` recrée la base et injecte des comptes de démo. Pratique.
---
## Lancer
L’API doit tourner en premier :
```bash
npm run dev:api
# →
localhost
```
Ensuite au choix :
```bash
npm run dev:vendor #
localhost
npm run dev:admin #
localhost
npm run dev:client # Expo — app client
npm run dev:driver # Expo — app livreur
```
Sur mobile, si tu testes sur un téléphone physique, change `EXPO_PUBLIC_API_URL` pour pointer vers l’IP de ta machine (pas `localhost`).
---
## Comptes de démo
OTP universel en dev : **`000000`**
(SMS pas branché, on affiche/accepte ce code.)
| Qui | Téléphone |
|-----|-----------|
| Admin | +261340000001 |
| Client | +261340000002 |
| Vendeur (Mama Jeanne) | +261340000003 |
| Vendeur (Pizza Tana) | +261340000004 |
| Livreur | +261340000005 |
Petit parcours pour vérifier que tout tient :
1. Client → commande chez Mama Jeanne
2. Vendeur → accepte → préparation → prête
3. Livreur → passe en ligne → accepte la course → livre
4. Admin → regarde les stats / la commande
---
## Structure
```
apps/
api/ …