# ROADMAP.md — Expria Frontend > Source de vérité de l'ordre d'implémentation des sprints. > Ne pas modifier sans validation de Hermann. --- ## Sprint 0 — Fondations ✅ 1. Scaffold Vite + TypeScript + Tailwind + shadcn/ui 2. Structure de dossiers complète 3. docs/ copiés depuis backend + adaptations 4. ONBOARDING.md rédigé ## Sprint 0.5 — Design System ✅ - Direction artistique Boréal validée - Tokens CSS dans index.css - DESIGN_SYSTEM.md rédigé ## Sprint 1 — Auth + API layer ✅ 5. auth-client.ts 6. api-client.ts 7. query-client.ts 8. entities/user/\* 9. features/auth (Login, Register, ProtectedRoute) ## Sprint 2 — Dashboard conditionnel ✅ 10. usePlan hook 11. shared/components/PaywallModal 12. features/dashboard (Free / Standard / Premium) ## Sprint 3 — Simulations EE ✅ 13. entities/production/_ + entities/report/_ 14. features/simulations (EE T1/T2/T3) 15. Affichage rapport avec floutage conditionnel ## Sprint 3.5 — Clean - Factorisation des fichiers modifiés Sprint 3 - Tests manuels Groupe B + C rejoués - Commit refactor(simulation-ee) ## Sprint 3.6a — Qualité correction — Backend ✅ - Remplacement prompt maître (docs/Prompt_maître.md) + intégration taxonomie erreurs (docs/TAXONOMIE_ERREURS.md) - Remplacement prompt production modèle (docs/Prompt_production_modèle.md) — cible fixe NCLC 9 - Génération parallèle correction + exercices + modèle (await correction, fire-and-forget sur les deux autres) - Nouveaux champs DB : revelation, diagnostic, conseil_nclc, erreurs_codes, exercices_status, modele_status, nclc_cible - Mise à jour GET /simulations/:id - Migration SQL : `supabase/migrations/004_sprint_3_6a_qualite_correction.sql` (à exécuter manuellement) - Tests : 173 tests verts (+18 vs baseline) ## Sprint 3.6b — Qualité correction — Frontend ✅ - Sélecteur NCLC cible dans SimulationForm (9 ou 10, défaut 9) — NclcCibleSelector - RapportPage réécrite : ScoreHero (jauge + seuil NCLC cible + écart), RevelationCards, DiagnosticCallout, CritereCard enrichie (exemple/suggestion/astuce + codes taxonomie), ConseilNclcCallout - ExerciceInteractive : badge difficulté, zone texte, bouton Indice (une fois), bouton Voir la correction (activé après saisie), explication - ProductionModeleSection : texte final + notes pédagogiques + transformations original/amélioré + message - JobStatusFallback : gère exercices_status / modele_status (pending / error) — refresh manuel, polling tracé en FTD-24 - Gating plan conforme PLANS_TARIFAIRES.md : revelation/diagnostic/conseil_nclc tous plans ; criteres/exercices/modele Standard+ - Tests : 84 verts (+8 vs baseline — floutage + helpers lib + ExerciceInteractive) ## Sprint 3.7 — Historique ✅ - Backend : `GET /simulations` — liste paginée des productions de l'utilisateur connecté (page/limit, tri `created_at DESC`, projection légère). 186 tests backend verts. - Frontend : page `/historique` (route sous AppLayout), liste d'items (date relative, tâche, score /20, NCLC, badge Examen / En cours), pagination Précédent/Suivant, clic → `/rapport/:id`. - Gating plan : Free → aperçu flouté + CTA « Passer en Standard » (`hasAccess(plan, 'dashboard')`) ; Standard + Premium → liste complète. - État vide : CTA « Démarrer une simulation ». - Hook `useSimulationsList(page, limit)` — TanStack Query, `staleTime: 30s`, `keepPreviousData` pour transitions fluides. - Helper `formatRelativeDate` (Intl.RelativeTimeFormat, zéro dépendance). - 102 tests frontend verts (+18 vs baseline 84). ## Sprint 3.6c — Analyse patterns (Premium) ✅ - Backend : `GET /users/patterns` — agrégation des `erreurs_codes` sur les 5 dernières productions corrigées, seuil 3/5, tri DESC, cache `pattern_analyses` avec invalidation si nouvelle production plus récente que la dernière analyse. - Backend : exercices long terme générés par DeepSeek sur patterns confirmés — format `{ consigne, exemple, correction, astuce }` avec prompt dédié (température 0.4, timeout 20 s). Dégradation gracieuse si DeepSeek échoue. - Backend : indice de préparation 0→100 — formule 60 % score moyen + 20 % régularité + 20 % tendance, messages figés (`<40`, `40-70`, `>70`). - Backend : migration SQL `005_sprint_3_6c_pattern_analyses.sql` (RLS SELECT par user_id, index composite, CHECK constraints). - Backend : 205 tests verts (+19 vs baseline 186). - Frontend : page `/progression` — orchestration hero (indice + jauge), liste patterns, cartes exercices long terme, footer « il y a X » ; gate plan via `hasAccess('pattern_analysis')` (Free/Standard → aperçu flouté + upgrade). - Frontend : `PatternExerciceCard` — composant lesson-style dédié (non interactif, UX distincte de `ExerciceInteractive`) avec encart astuce proéminent. - Frontend : Dashboard Premium — section compacte `MonProfilPreparation` (MetricCard indice + nb patterns + CTA vers `/progression`). Absente pour Free/Standard. - Frontend : hook `usePatterns` (staleTime 60 s, cache partagé entre page et dashboard, `enabled` conditionné par feature). - Frontend : 115 tests verts (+13 vs baseline 102). ## Sprint DA Charcoal — Reskin ✅ - Remplacement palette Boréal par Charcoal (dark default, light override) - Sidebar navy permanent, layout radial-gradient, anti-FOUC - Renommage tokens sur ~45 composants + inversion dark:/light: shadcn - ADR 006 mis à jour ## Sprint 4 — Simulations EO (audio) 16. MediaRecorder + upload audio EO T1/T3 ## Sprint 4.5 — Clean - Factorisation des fichiers modifiés Sprint 4 - Tests manuels Groupe B + D rejoués - Commit refactor(simulation-eo) ## Sprint 5 — Billing 17. features/billing (Stripe Checkout + prorata) ## Sprint 5.5 — Clean - Factorisation des fichiers modifiés Sprint 5 - Tests manuels Groupe E rejoués - Commit refactor(billing) ## Sprint 6 — T2 Live 18. features/t2-live (ws-client + audio worklet + state machine) ## Sprint 6.5 — Clean - Factorisation des fichiers modifiés Sprint 6 - Tests manuels Groupe D rejoués - Commit refactor(t2-live) ## Sprint 7 — Mode Examen 19. Timer inarrêtable + readOnly à T=0 ## Sprint 7.5 — Clean - Factorisation des fichiers modifiés Sprint 7 - Tests manuels Groupe D rejoués - Commit refactor(exam-mode) ## Sprint 8 — Pré-lancement 20. MAINTENANCE_MODE implémenté ✅ (2026-04-19) 21. Sentry configuré 22. /ultrareview avant bascule 23. Smoke test Groupe Z complet 24. Procédure DEPLOYMENT.md exécutée