Frontend : squelette React + Vite + TS + Tailwind

Scaffold de base en attendant l'intégration du design Claude Design
(« Bénévoles Festival.dc.html ») : routage, plomberie i18n (t() +
locales/fr.json), client API avec proxy Vite vers le backend. Build et
lint passent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AwswqSChc3Rwtu61pRXiY2
This commit is contained in:
AdamThomas
2026-09-09 23:16:38 +02:00
co-authored by Claude Sonnet 5
parent 49ac6a4726
commit 5154a3c61b
23 changed files with 4673 additions and 9 deletions
+41 -9
View File
@@ -1,12 +1,44 @@
# Frontend
# Frontend — Gestion des bénévoles
React + Vite + TypeScript + Tailwind. Le design est fourni séparément et fera
foi.
React + Vite + TypeScript + Tailwind. Interface en français, code en anglais.
Non initialisé à ce stade : le premier incrément porte sur le backend (modèle
de données, import, API CRUD, moteur de validation, endpoint matrice, jeu de
démo). Le scaffold frontend sera ajouté dans une étape dédiée.
Le design fait foi : projet Claude Design « Bénévoles Festival »
(`Bénévoles Festival.dc.html`). Les écrans et composants réels sont dérivés de
ce fichier et intégrés au fil des étapes. Le contenu actuel est un squelette
(routage, i18n, client API).
Rappel de convention : aucun texte visible par l'utilisateur en dur, tout
passe par un fichier de traduction, même si l'application est monolingue au
départ.
## Commandes
| Action | Commande |
|------------------------|-----------------------------|
| Installer | `npm install` |
| Dev (hot reload) | `npm run dev` → http://localhost:5173 |
| Build de production | `npm run build` |
| Prévisualiser le build | `npm run preview` |
| Lint | `npm run lint` |
| Vérif. de types | `npm run typecheck` |
En dev, Vite proxifie `/api` vers le backend (`VITE_API_TARGET`, défaut
`http://localhost:8000`).
## Conventions
- **Aucun texte visible en dur.** Tout passe par `src/i18n` (`t(key, params)`)
et `src/i18n/locales/fr.json`, même en monolingue.
- Code, noms de fichiers et de variables en anglais.
- Alias d'import `@/` → `src/`.
- Vocabulaire métier : voir le glossaire FR ↔ EN de `CLAUDE.md`.
## Arborescence
```
src/
├── main.tsx # point d'entrée (React Query + Router)
├── index.css # directives Tailwind
├── app/
│ ├── router.tsx # routes
│ └── AppLayout.tsx # coquille de mise en page (remplacée par le design)
├── pages/ # écrans
├── api/client.ts # client HTTP + ApiError
└── i18n/ # t() + locales/fr.json
```