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:
co-authored by
Claude Sonnet 5
parent
49ac6a4726
commit
5154a3c61b
+41
-9
@@ -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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user