# 🔧 GUIDE DE DÉPANNAGE - Family Planner Hub ## ⚠ PROBLÈME : "Mes profils d'enfants ont disparu !" Si vos profils d'enfants disparaissent aprĂšs avoir fermĂ© et relancĂ© l'application, voici pourquoi et comment corriger. --- ## đŸ•”ïž LES 5 CAUSES PRINCIPALES ### 1. 🔮 **Multiples serveurs backend en conflit** (90% des cas) **SymptĂŽmes :** - Les profils apparaissent parfois, disparaissent d'autres fois - Les modifications ne se sauvegardent pas - L'application est lente **Cause :** Vous avez lancĂ© le backend plusieurs fois, et plusieurs serveurs tournent sur le port 5000 en mĂȘme temps. Chacun lit/Ă©crit dans le mĂȘme fichier `client.json`, crĂ©ant des conflits. **Solution :** ```batch # Fermer TOUS les serveurs npx kill-port 5000 # Lancer UN SEUL serveur cd family-planner\backend npm run dev ``` --- ### 2. 🟡 **Fichier JSON corrompu** (60% des cas) **SymptĂŽmes :** - Tous les profils disparaissent d'un coup - Message d'erreur dans la console du backend **Cause :** - Écriture interrompue (coupure de courant, crash) - Plusieurs serveurs Ă©crivent en mĂȘme temps - Antivirus qui bloque le fichier **Solution :** 1. VĂ©rifiez si une sauvegarde existe : ``` backend\src\data\client.json.backup backend\src\data\client.json.backup.1 backend\src\data\client.json.backup.2 ... ``` 2. Restaurez la derniĂšre sauvegarde : ```batch cd family-planner\backend\src\data copy client.json.backup client.json ``` 3. Relancez le backend --- ### 3. 🟡 **Cache navigateur** (50% des cas) **SymptĂŽmes :** - Les profils sont lĂ  dans la base de donnĂ©es mais pas dans l'interface - F5 ne rĂ©sout pas le problĂšme **Solution :** 1. Ouvrez la console du navigateur (F12) 2. Tapez : ```javascript localStorage.clear() ``` 3. Rechargez la page (Ctrl+F5) --- ### 4. 🟡 **Race condition au dĂ©marrage** (70% des cas) **SymptĂŽmes :** - Les profils n'apparaissent pas au premier lancement - Ils apparaissent aprĂšs un F5 **Cause :** Le frontend dĂ©marre avant que le backend ne soit prĂȘt. La premiĂšre requĂȘte Ă©choue. **Solution :** Utilisez les scripts `start.bat` et `stop.bat` fournis. Ils s'assurent que le backend est prĂȘt avant de lancer le frontend. --- ### 5. 🟡 **Erreur silencieuse** (40% des cas) **SymptĂŽmes :** - Rien ne se passe, pas d'erreur visible - Les profils ne chargent pas **Cause :** Le backend n'est pas lancĂ©, ou il y a une erreur rĂ©seau. **Solution :** 1. VĂ©rifiez que le backend tourne : - Ouvrez http://localhost:5000/api/children dans votre navigateur - Vous devriez voir un JSON avec vos enfants 2. Si erreur, regardez la console du backend --- ## 🚀 UTILISATION CORRECTE ### ✅ LANCEMENT (MÉTHODE RECOMMANDÉE) 1. **Double-cliquez sur `start.bat`** - Ce script : - Tue les anciens processus - CrĂ©e une sauvegarde - Lance le backend - Attend 6 secondes - Lance le frontend 2. **Attendez** les 2 fenĂȘtres : - Une fenĂȘtre Backend (bleue) - Une fenĂȘtre Frontend (violette) 3. **Ouvrez votre navigateur** sur http://localhost:5173 ### ✅ ARRÊT PROPRE 1. **Double-cliquez sur `stop.bat`** - Ce script ferme proprement les 2 serveurs - Les donnĂ©es sont sauvegardĂ©es automatiquement ### ❌ À NE PAS FAIRE - ❌ Lancer plusieurs fois le backend - ❌ Fermer la fenĂȘtre en cliquant sur la croix - ❌ Ouvrir plusieurs onglets sur l'application - ❌ Faire Ctrl+C dans les terminaux sans utiliser stop.bat --- ## đŸ›Ąïž SYSTÈME DE PROTECTION ### Sauvegardes automatiques À chaque modification, **5 sauvegardes** sont créées : ``` backend\src\data\ ├── client.json ← Fichier actif ├── client.json.backup ← DerniĂšre sauvegarde rapide ├── client.json.backup.1 ← Sauvegarde -1 ├── client.json.backup.2 ← Sauvegarde -2 ├── client.json.backup.3 ← Sauvegarde -3 ├── client.json.backup.4 ← Sauvegarde -4 └── client.json.backup.5 ← Sauvegarde -5 ``` ### Restauration automatique Si le fichier est corrompu, le backend essaie automatiquement de restaurer depuis `client.json.backup`. ### Logs amĂ©liorĂ©s Le backend affiche maintenant : - ✅ SuccĂšs : nombre d'enfants/parents chargĂ©s - ⚠ Avertissements : structure invalide, backup créé - ❌ Erreurs : dĂ©tails de l'erreur avec stack trace Le frontend affiche dans la console : - ✅ "X enfants chargĂ©s avec succĂšs" - 🔄 "Retry du chargement des enfants..." - ❌ "Erreur chargement enfants: [dĂ©tails]" --- ## 🔍 DIAGNOSTIC RAPIDE ### VĂ©rifier l'Ă©tat du systĂšme 1. **Backend actif ?** ``` http://localhost:5000/api/children ``` - Si ça marche : vous voyez un JSON - Si erreur : backend pas lancĂ© 2. **DonnĂ©es prĂ©sentes ?** ``` Ouvrez: backend\src\data\client.json ``` - Recherchez "children" : il doit y avoir des enfants dedans 3. **Plusieurs serveurs ?** ```batch netstat -ano | findstr :5000 ``` - Si vous voyez plusieurs lignes : PROBLÈME! - Solution : `npx kill-port 5000` --- ## 📞 EN CAS DE PROBLÈME ### 1. Tentative de rĂ©cupĂ©ration automatique ```batch # 1. ArrĂȘter proprement stop.bat # 2. Tuer tous les processus npx kill-port 5000 npx kill-port 5173 # 3. Relancer proprement start.bat ``` ### 2. Restauration manuelle ```batch # Aller dans le dossier data cd family-planner\backend\src\data # Lister les sauvegardes dir client.json.* # Restaurer la derniĂšre sauvegarde copy client.json.backup client.json # Relancer cd ..\..\.. start.bat ``` ### 3. VĂ©rification de la base de donnĂ©es ```batch # Afficher le contenu de client.json type family-planner\backend\src\data\client.json ``` VĂ©rifiez : - Le JSON est-il valide (accolades, virgules) ? - Y a-t-il des enfants dans "children": [] ? - La structure est-elle correcte ? --- ## 💡 CONSEILS DE PRÉVENTION 1. **Toujours utiliser start.bat et stop.bat** 2. **N'ouvrez qu'UN SEUL onglet** de l'application 3. **Attendez** que le backend soit prĂȘt avant d'ouvrir le frontend 4. **VĂ©rifiez les logs** en cas de comportement Ă©trange 5. **Faites des sauvegardes manuelles** rĂ©guliĂšrement : ```batch copy backend\src\data\client.json backup_YYYYMMDD.json ``` --- ## 📊 MESSAGES D'ERREUR COURANTS | Message | Cause | Solution | |---------|-------|----------| | `API error 500` | Backend crashĂ© | Regarder les logs backend | | `Impossible de charger les profils` | Backend pas lancĂ© | VĂ©rifier que port 5000 rĂ©pond | | `Empty response` | Backend pas prĂȘt | Attendre 5 secondes et F5 | | `EADDRINUSE` | Port dĂ©jĂ  utilisĂ© | `npx kill-port 5000` | | `JSON.parse error` | Fichier corrompu | Restaurer depuis backup | --- ## 🎯 CHECKLIST DE LANCEMENT Avant chaque session : - [ ] Fermer tous les anciens processus (stop.bat) - [ ] VĂ©rifier que client.json existe et n'est pas vide - [ ] Lancer avec start.bat - [ ] Attendre "Server ready on port 5000" - [ ] Attendre "Local: http://localhost:5173" - [ ] Ouvrir http://localhost:5173 dans UN SEUL onglet - [ ] VĂ©rifier dans la console : "X enfants chargĂ©s avec succĂšs" --- **DerniĂšre mise Ă  jour : 2025-10-13** **Version du guide : 1.0**