edtech / docs /implementation_plan_debt_resolution_08052026.md
CognxSafeTrack
feat: backlog P0→P3 — toast system, payments, tenant isolation, feedback handler, i18n parity
6dd9bad
# Plan d'Implémentation : Résolution de la Dette Technique
Ce plan détaille les étapes pour résoudre les problèmes identifiés dans l'audit du 08/05/2026.
## Phase 1 : Sécurité & Isolation (Priorité Immédiate)
### 1.1 Hardening de l'Isolation Multi-Tenant
- **Tâche** : Mettre à jour `packages/database/src/extension.ts` pour inclure l'opération `upsert` dans les filtres automatiques.
- **Vérification** : Test unitaire simulant un `upsert` avec un ID d'un autre tenant.
### 1.2 Découpage du Middleware d'Authentification
- **Tâche** : Extraire la logique de `index.ts` vers des middlewares dédiés :
- `validateApiKey.ts`
- `verifyJwt.ts`
- `enforceOrgIsolation.ts`
- **Vérification** : Les routes protégées doivent toujours retourner 401/403 sans les bons headers.
---
## Phase 2 : Optimisation Backend & IA
### 2.1 Mise en cache des Prompts
- **Tâche** : Modifier `PromptLoader` pour utiliser un cache mémoire (`Map`) afin d'éviter les lectures disque répétitives.
- **Tâche** : Déplacer les prompts codés en dur de `AIService.ts` vers `packages/prompts/src/templates`.
### 2.2 Refactorisation des Contrôleurs Admin
- **Tâche** : Extraire la logique métier de `admin.ts` vers des services dédiés (ex: `ExcelService`, `AnalyticsService`).
- **Objectif** : Réduire la taille des fichiers de routes à moins de 10KB.
---
## Phase 3 : Refactorisation Frontend (App Web)
### 3.1 Dé-monolithisation de `apps/web`
- **Tâche** : Créer une structure de dossiers standard dans `apps/web/src` :
- `components/` (Navbar, Hero, Features, StudentPortal, etc.)
- `hooks/` (useStudentData)
- `lib/` (api.ts - mutualisé avec l'admin si possible)
- **Tâche** : Migrer les appels `fetch()` vers le client `api.ts`.
---
## Phase 4 : Qualité & Automatisation
### 4.1 Unification du Package Management
- **Tâche** : Supprimer `package-lock.json`. Configurer `pnpm-workspace.yaml` pour garantir l'usage exclusif de pnpm.
- **Tâche** : Ajouter un script `preinstall` pour bloquer npm/yarn.
### 4.2 Socle de Tests
- **Tâche** : Installer `vitest` dans le package `api`.
- **Tâche** : Écrire des tests d'intégration pour les flux critiques (Login, Inbound Message, Org Creation).
## 📅 Estimation de l'effort
| Phase | Durée Estimée | Complexité |
| :--- | :--- | :--- |
| Phase 1 (Sécurité) | 1 jour | 🟡 Moyenne |
| Phase 2 (Backend/IA) | 2 jours | 🟡 Moyenne |
| Phase 3 (Frontend) | 3 jours | 🔴 Élevée |
| Phase 4 (Qualité) | 2 jours | 🟢 Faible |
**Total estimé : 8 jours de développement.**