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>
292 lines
7.0 KiB
Markdown
292 lines
7.0 KiB
Markdown
# 🔧 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**
|