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:
philippe
2025-10-14 10:43:33 +02:00
commit fdd72c1135
239 changed files with 44160 additions and 0 deletions

View 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**