Complete family planning application with: - React frontend with TypeScript - Node.js/Express backend with TypeScript - Python ingestion service for document processing - Planning ingestion service with LLM integration - Shared UI components and type definitions - OAuth integration for calendar synchronization - Comprehensive documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
7.0 KiB
🔧 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 :
# 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 :
-
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 ... -
Restaurez la dernière sauvegarde :
cd family-planner\backend\src\data copy client.json.backup client.json -
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 :
- Ouvrez la console du navigateur (F12)
- Tapez :
localStorage.clear() - 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 :
-
Vérifiez que le backend tourne :
- Ouvrez http://localhost:5000/api/children dans votre navigateur
- Vous devriez voir un JSON avec vos enfants
-
Si erreur, regardez la console du backend
🚀 UTILISATION CORRECTE
✅ LANCEMENT (MÉTHODE RECOMMANDÉE)
-
Double-cliquez sur
start.bat- Ce script :
- Tue les anciens processus
- Crée une sauvegarde
- Lance le backend
- Attend 6 secondes
- Lance le frontend
- Ce script :
-
Attendez les 2 fenêtres :
- Une fenêtre Backend (bleue)
- Une fenêtre Frontend (violette)
-
Ouvrez votre navigateur sur http://localhost:5173
✅ ARRÊT PROPRE
- 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
-
Backend actif ?
http://localhost:5000/api/children- Si ça marche : vous voyez un JSON
- Si erreur : backend pas lancé
-
Données présentes ?
Ouvrez: backend\src\data\client.json- Recherchez "children" : il doit y avoir des enfants dedans
-
Plusieurs serveurs ?
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
# 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
# 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
# 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
- Toujours utiliser start.bat et stop.bat
- N'ouvrez qu'UN SEUL onglet de l'application
- Attendez que le backend soit prêt avant d'ouvrir le frontend
- Vérifiez les logs en cas de comportement étrange
- Faites des sauvegardes manuelles régulièrement :
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