No description
Find a file
2026-04-25 17:59:10 +03:00
.cursor/skills/frontend-design feat(auth): useAuth + ProtectedRoute + signUp dans auth-client (Sprint 1 étape 2) 2026-04-18 02:09:46 +03:00
.github ci: env vars factices pour tests CI 2026-04-23 03:23:23 +03:00
design-reference feat(auth): useAuth + ProtectedRoute + signUp dans auth-client (Sprint 1 étape 2) 2026-04-18 02:09:46 +03:00
docs docs(architecture): refléter l'arborescence réelle + documenter convention shared/ui (FTD-25, FTD-26) 2026-04-25 17:59:10 +03:00
public chore(cleanup): retirer assets orphelins du boilerplate Vite 2026-04-17 16:54:39 +03:00
src feat(eo): complete EO simulation flow (T1 + T3) with Gemini transcription 2026-04-25 08:28:51 +03:00
.env.example chore(scaffold): compléter .env.example (T2_LIVE, SENTRY) + ignorer .claude/ 2026-04-17 17:56:50 +03:00
.gitignore feat(auth): useAuth + ProtectedRoute + signUp dans auth-client (Sprint 1 étape 2) 2026-04-18 02:09:46 +03:00
.prettierrc chore(tooling): ajouter .prettierrc + intégrer eslint-config-prettier 2026-04-17 17:55:45 +03:00
components.json feat(design-system): Button + Badge shadcn remappés tokens Direction H (Sprint 0.5 étape 4) 2026-04-18 00:56:13 +03:00
eslint.config.js chore(tooling): ajouter .prettierrc + intégrer eslint-config-prettier 2026-04-17 17:55:45 +03:00
index.html feat(design-system): reskin Charcoal — tokens dark-default + sidebar navy permanent 2026-04-24 23:09:15 +03:00
package-lock.json feat(simulations): RapportPage avec floutage conditionnel — Sprint 3 étape 15 2026-04-20 03:46:18 +03:00
package.json feat(simulations): RapportPage avec floutage conditionnel — Sprint 3 étape 15 2026-04-20 03:46:18 +03:00
README.md ci(github): workflow typecheck/test/audit + README projet 2026-04-17 18:04:22 +03:00
tsconfig.app.json chore(scaffold): activer TypeScript strict, alias @ et script typecheck 2026-04-17 16:13:18 +03:00
tsconfig.json feat: initialisation projet React + Vite + TypeScript + Tailwind 2026-04-16 06:24:22 +03:00
tsconfig.node.json feat: initialisation projet React + Vite + TypeScript + Tailwind 2026-04-16 06:24:22 +03:00
vite.config.ts chore(scaffold): installer deps runtime/dev + configurer Vitest 2026-04-17 16:20:54 +03:00

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.