# Expria Frontend Frontend SaaS pour la préparation au TCF Canada. SPA React + Vite, déploiement Cloudflare Pages. ## Stack React 19 · Vite 8 · TypeScript 6 · Tailwind 4 · React Router 7 · TanStack Query 5 · Supabase Auth · Vitest. Détails et versions : [`docs/adr/006-stack-versions-2026.md`](docs/adr/006-stack-versions-2026.md). ## Prérequis - Node.js 22 LTS - npm 10+ ## Installation ```bash npm install cp .env.example .env # Remplir .env avec tes valeurs Supabase + URL backend ``` ## Commandes | Commande | Rôle | |---|---| | `npm run dev` | Lance le serveur de dev Vite (HMR) | | `npm run build` | Build de production | | `npm run typecheck` | `tsc --noEmit` | | `npm run lint` | ESLint | | `npm run test` | Vitest (run unique) | | `npm run test:watch` | Vitest (watch mode) | | `npm run format` | Formate tout via Prettier | | `npm run format:check` | Vérifie le formatage sans écrire | ## Variables d'environnement Voir [`.env.example`](.env.example). Le démarrage échoue avec un message clair si une variable requise manque (validation Zod dans `src/shared/config/env.ts`). ## Structure du code Voir [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) §3. Architecture FSD : `app/` (entry) · `entities/` (métier) · `features/` (UI) · `shared/` (code réutilisable). ## Documentation | Document | Contenu | |---|---| | [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | Architecture complète, flux, codes d'erreur | | [`docs/DEVELOPMENT_PRINCIPLES.md`](docs/DEVELOPMENT_PRINCIPLES.md) | Règles de dev, conventions, workflow | | [`docs/ONBOARDING.md`](docs/ONBOARDING.md) | Guide dev (démarrage, outils) | | [`docs/SECURITY.md`](docs/SECURITY.md) | Patterns sécurité + trous identifiés | | [`docs/adr/`](docs/adr/) | Architecture Decision Records | ## CI GitHub Actions : `lint`, `format:check`, `typecheck`, `test`, `npm audit --audit-level=high`. Voir [`.github/workflows/ci.yml`](.github/workflows/ci.yml). ## Licence Propriétaire — Expria.