Sprint Review & Rétrospective - Sprint 04 (Sprint d'Urgence)
Date de fin : 07/07/2026 à 15:00
Effort planifié : 29 SP
Effort réalisé : 13 SP (Bloc 1 : 9 SP, Stretch Goals : 4 SP)
Statut du Sprint : CLOS
🎯 Objectif du Sprint (Sprint Goal)
Corriger en priorité les anomalies critiques identifiées par l'audit technique (plantages React Error #310, décalage d'horodatage des notes, failles d'authentification client/serveur), réaligner la documentation sur l'état réel du code, et préparer le terrain pour le déploiement sur Netlify.
📢 Démonstration & Livrables (Demos)
1. Résolution de l'Error #310 (React)
- Déplacement de tous les appels
setStateeffectués pendant le rendu deApp.jsx(gardes de rôle et de session) vers desuseEffectdédiés. - Validation de la stabilité du rendu au changement de rôle (Manager ⇄ Collaborateur).
2. Intégrité des dates de notes
- Uniformisation du champ de date sur la clé
date(dansTaskDetail.jsx) au lieu dets, éliminant les erreurs "Invalid Date" après les synchronisations WebSocket ou rechargement.
3. Durcissement de l'Authentification & Sécurité
- Suppression définitive des codes PIN en dur (
ADMIN_PIN,EMPLOYEE_PIN,SUPER_MANAGER_PIN) du code client et retrait de leur affichage dansAuth.jsx. - Code serveur mis à jour dans
server.jsetnetlify/functions/auth.jspour valider les codes PIN via la fonction sécurisée Supabaseverify_member_pin(PINs hachés en base via bcrypt). - Sécurisation du serveur d'authentification en forçant le plantage (fail-closed) en cas d'absence de
SUPABASE_JWT_SECRET. - Unification de la liste des adresses email des administrateurs entre le client et le serveur.
4. Workflow et Performance
- Ajout d'un proxy
/apidansvite.config.jspour permettre le fonctionnement fluide de l'authentification lors du développement local avecnpm run dev. - Optimisation des écritures concurrentes et de la bande passante en regroupant les
upsertunitaires Supabase par lot (batch) dansstorage.js. - Remplacement des imports dynamiques superflus par des imports statiques en tête de fichier pour nettoyer le bundle client.
- Configuration d'ESLint pour détecter les erreurs d'usage des hooks React.
📊 Avancement des Stories
| Story | Description | Effort (SP) | Statut |
|---|---|---|---|
| US-FIX-01 | Stabilité du rendu React (Error #310) | 3 | Complété |
| US-FIX-02 | Intégrité de l'horodatage des notes | 1 | Complété |
| US-SEC-03 | Durcissement de l'authentification | 5 | Complété (Backend & SQL prêt) |
| US-DX-06 | Réparation du workflow de développement | 2 | Complété |
| US-PERF-07 | Optimisation de la synchro (Batching) | 1 / 3 | Partiel (Batching fait, Realtime ciblé différé) |
| US-IMP-08 | Imports statiques & outillage qualité | 1 / 2 | Partiel (Imports faits, ESLint prêt) |
| US-DOC-09 | Réalignement documentaire | 0 / 2 | Différé (Textes SyncMenu faits, README à corriger) |
| US-ARCH-04 | Extraction des hooks et contexte global | 8 | Différé (Reporté au Sprint 05) |
| US-BE-05 | Factorisation du backend dupliqué | 3 | Différé (Reporté au Sprint 05) |
⚖️ Note sur l'engagement : Le Bloc 1 (Correctifs critiques - 9 SP) a été complété à 100%, ce qui permet de clôturer officiellement le Sprint 04. Les stories majeures d'architecture et de refactorisation backend ont été repoussées au Sprint 05 pour sécuriser la mise en production du MVP.
🧠 Rétrospective (Retro)
Ce qui a bien fonctionné
- Le correctif de la boucle de re-rendu React stabilise immédiatement l'expérience utilisateur globale.
- L'utilisation du repli de sécurité (fallback) dans
server.jsévite de bloquer la connexion locale des développeurs tant que la migration SQL n'est pas jouée en base de données. - Le proxy d'API simplifie grandement la configuration de développement pour toute l'équipe.
Axes d'amélioration & Points de vigilance
- Migration SQL : La migration SQL pour le hachage des PINs en base de données (étape 1 et 3) doit être exécutée au plus vite par un administrateur sur la base de données Supabase de production.
- Dette Technique : L'utilisation de
window.__forceAppRerenderreste présente ; l'extraction vers un contexte React (AppContext.jsx) est une priorité absolue pour le Sprint 05.
