Files
FamilyPlanner/docs/archive/TROUBLESHOOTING.md
philippe fdd72c1135 Initial commit: Family Planner application
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>
2025-10-14 10:43:33 +02:00

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 :

  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 :

    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 :
    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 :

  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 ?

    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

  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 :
    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