canal senegal
Construit à partir du prototype de design `project/SENDISTRI.dc.html`. Le prompt de
> spécification complet est dans `project/PROMPT-Claude-Code-SENDISTRI.md`.
## Stack
| Couche | Technologies |
|--------|--------------|
| Frontend | React 18, TypeScript, Vite, React Router, Tailwind CSS, Zustand, TanStack Query, Axios |
| Backend | NestJS, TypeScript, Prisma, PostgreSQL, Passport JWT |
| Infra | Docker Compose (Postgres + API + Web) |
## Démarrage rapide (Docker)
```bash
docker-compose up
```
- Frontend :
localhost
- API :
localhost
- Postgres : localhost:5432 (`sendistri` / `sendistri`)
Au démarrage, l'API applique le schéma Prisma puis exécute le seed (données
sénégalaises réalistes).
## Démarrage manuel (dev)
### Backend
```bash
cd backend
cp .env.example .env # ajuster DATABASE_URL si besoin
npm install
npx prisma generate
npx prisma db push # ou: npx prisma migrate dev
npx ts-node prisma/seed.ts # données de démonstration
npm run start:dev #
localhost
```
### Frontend
```bash
cd frontend
npm install
npm run dev #
localhost
```
Définir `VITE_API_URL` (défaut `
localhost`) si l'API tourne ailleurs.
## Comptes de démonstration
Tous les comptes utilisent le mot de passe **`Demo123!`**.
| Rôle | Email |
|------|-------|
| Super Admin | `superadmin@sendistri.sn` |
| Admin | `admin@sendistri.sn` |
| Manager | `manager@sendistri.sn` |
| Comptable | `comptable@sendistri.sn` |
| Logisticien | `logisticien@sendistri.sn` |
| Commercial | `commercial@sendistri.sn` |
| Vendeur | `vendeur@sendistri.sn` |
Le menu latéral est filtré dynamiquement selon le rôle.
## Identité visuelle
Couleurs du drapeau sénégalais : vert primaire `#0E8A4F`, jaune/or `#E2A000`, rouge
`#D23A2C`, sidebar vert très foncé `#0B2A1B`. Polices : Manrope (interface),
IBM Plex Mono (montants/codes).
## Structure du projet
```
.
├── docker-compose.yml
├── backend/ …