No description
- Gemini batch transcription (no Deepgram live)
- blobToBase64 helper (shared/lib/audio.ts)
- AudioRecorder: remove onChunk, add maxSeconds/onMaxReached auto-submit
- Timer stops at maxSeconds and triggers auto-submission
- EnregistrementEOPage: audioBase64 to backend, fix race condition step=done
- SimulationFlowProvider: submitEoAudio(audioBase64, mimeType, nclcCible)
- MIME normalization (strip codec params)
- Split CORRECTION_EE_TIMEOUT_MS (60s) / CORRECTION_EO_TIMEOUT_MS (120s)
- PresentationGenereeT1Page: localStorage persistence
Typecheck: OK · Tests: 159/159 ✅
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .cursor/skills/frontend-design | ||
| .github | ||
| design-reference | ||
| docs | ||
| public | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| .prettierrc | ||
| components.json | ||
| eslint.config.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
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.
Prérequis
- Node.js 22 LTS
- npm 10+
Installation
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. 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 §3.
Architecture FSD : app/ (entry) · entities/ (métier) · features/ (UI) · shared/ (code réutilisable).
Documentation
| Document | Contenu |
|---|---|
docs/ARCHITECTURE.md |
Architecture complète, flux, codes d'erreur |
docs/DEVELOPMENT_PRINCIPLES.md |
Règles de dev, conventions, workflow |
docs/ONBOARDING.md |
Guide dev (démarrage, outils) |
docs/SECURITY.md |
Patterns sécurité + trous identifiés |
docs/adr/ |
Architecture Decision Records |
CI
GitHub Actions : lint, format:check, typecheck, test, npm audit --audit-level=high. Voir .github/workflows/ci.yml.
Licence
Propriétaire — Expria.