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>
This commit is contained in:
291
docs/archive/TROUBLESHOOTING.md
Normal file
291
docs/archive/TROUBLESHOOTING.md
Normal file
@@ -0,0 +1,291 @@
|
||||
# 🔧 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**
|
||||
Reference in New Issue
Block a user