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,261 @@
# Family Planner - Intégration Pronote
## Nouveautés de la Page de Profil
La page de profil a été entièrement redesignée pour intégrer toutes les fonctionnalités et les données Pronote.
### Nouvelles Fonctionnalités
#### 1. Boutons d'Action Intégrés
Tous les boutons sont maintenant directement accessibles sur la page de profil :
- **📅 Planning** - Accéder au planning complet
- **📥 Importer** - Synchroniser les données depuis Pronote
- **✏️ Modifier** - Modifier le profil
- **🔌 Connexion Pronote** - Se connecter à Pronote
- **🗑️ Supprimer** - Supprimer le profil
#### 2. Connexion Pronote
- Cliquez sur le bouton "Connexion Pronote"
- Entrez l'URL de votre établissement (ex: https://demo.index-education.net/pronote)
- Entrez votre nom d'utilisateur
- Entrez votre mot de passe
- La connexion est sécurisée et les identifiants ne sont pas stockés en clair
#### 3. Données Pronote Affichées
Une fois connecté à Pronote, vous verrez automatiquement :
##### Moyennes Générales
- Moyenne personnelle
- Moyenne de la classe
- Classement dans la classe
##### Dernières Notes
- Les 4 dernières notes obtenues
- Matière, type d'évaluation, date
- Code couleur selon la note (vert > 14, orange 10-14, rouge < 10)
##### Absences & Retards
- Nombre d'absences du trimestre
- Nombre de retards du trimestre
- Historique détaillé
##### Prochains Devoirs
- Les 3 prochains devoirs à rendre
- Matière, description, date limite
- Code couleur selon l'urgence
##### Emploi du Temps
- Cours de la journée en cours
- Horaires, matières, salles, professeurs
#### 4. Autres Fonctionnalités
##### Région Scolaire et Congés
- Sélection de la zone scolaire (A, B, C, DOM-TOM)
- Affichage automatique des congés et jours fériés
- Synchronisation avec le planning
##### Notes Personnelles
- Zone de texte pour ajouter des notes libres
- Sauvegarde automatique
- Visible uniquement par vous
## Démarrage de l'Application
### Méthode 1 : Double-clic sur le fichier (RECOMMANDÉ)
1. Localisez le fichier **`LANCER_APPLICATION.bat`**
2. Double-cliquez dessus
3. L'application démarrera automatiquement tous les serveurs
4. Votre navigateur s'ouvrira sur http://localhost:5173/profiles
### Méthode 2 : Ligne de commande
```bash
cd "C:\Users\philh\OneDrive\Documents\Codes\family-planner"
.\LANCER_APPLICATION.bat
```
### Méthode 3 : PowerShell (avancé)
```powershell
cd "C:\Users\philh\OneDrive\Documents\Codes\family-planner"
powershell -ExecutionPolicy Bypass -File .\start-app.ps1
```
## Utilisation de Pronote
### Première Connexion
1. **Ouvrir l'application** via le fichier LANCER_APPLICATION.bat
2. **Accéder à un profil**
- Cliquez sur le profil d'un enfant (ex: Robin Heyraud)
- Vous verrez le badge "Non connecté à Pronote" en rouge
3. **Se connecter à Pronote**
- Cliquez sur le bouton "🔌 Connexion Pronote"
- Une modale s'ouvre avec 3 champs :
- **URL Pronote** : Entrez l'URL de votre établissement
- Exemple : `https://0140020w.index-education.net/pronote`
- Ou : `https://demo.index-education.net/pronote`
- **Nom d'utilisateur** : Votre identifiant Pronote
- **Mot de passe** : Votre mot de passe Pronote
- Cliquez sur "Se connecter"
4. **Vérifier la connexion**
- Le badge passe au vert : "Connecté à Pronote"
- Les données s'affichent automatiquement :
- Moyennes
- Notes
- Devoirs
- Emploi du temps
- Absences et retards
### Importer les Données
- Cliquez sur le bouton "📥 Importer"
- Les données Pronote sont synchronisées
- Un message de confirmation s'affiche
### Déconnexion
- Cliquez à nouveau sur "🔌 Reconnecter Pronote"
- Vous pouvez vous reconnecter avec de nouveaux identifiants
## Données de Démonstration
### Sans Connexion Pronote Réelle
Si vous n'avez pas accès à un vrai compte Pronote, l'application utilise des **données de démonstration** :
- Moyennes : 15.2 (général), 13.8 (classe)
- 5 notes récentes en mathématiques, physique, philosophie, anglais, histoire
- Emploi du temps du lundi et mardi
- 5 devoirs à venir
- 2 absences et 3 retards
Ces données permettent de tester l'interface sans connexion réelle.
### Pour Tester avec un Vrai Compte
Vous pouvez utiliser l'URL de démonstration officielle de Pronote (si disponible) :
- URL : `https://demo.index-education.net/pronote`
- Consultez le site officiel d'Index Éducation pour les identifiants de test
## Architecture Technique
### Serveurs Lancés
Le script de démarrage lance 3 serveurs :
1. **API Pronote** (Port 3000)
- Serveur Node.js/Express
- Gère l'authentification Pronote
- Fournit les endpoints API pour récupérer les données
- Base de données SQLite pour le cache
2. **Backend** (Port 3001)
- API backend de Family Planner
- Gère les profils, calendriers, etc.
3. **Frontend** (Port 5173)
- Interface React
- Accès via http://localhost:5173
### Endpoints API Pronote
- `POST /api/pronote/login` - Connexion
- `GET /api/pronote/user/info` - Infos utilisateur
- `GET /api/pronote/grades` - Notes
- `GET /api/pronote/averages` - Moyennes
- `GET /api/pronote/schedule` - Emploi du temps
- `GET /api/pronote/homework` - Devoirs
- `GET /api/pronote/absences` - Absences
- `GET /api/pronote/delays` - Retards
### Stockage des Données
- **Tokens JWT** : Stockés dans localStorage du navigateur
- **Données Pronote** : Mises en cache dans SQLite
- **Session** : Expire après 1 heure (renouvellement automatique)
## Dépannage
### Problème : Les boutons ne s'affichent pas
- **Solution** : Vérifiez que vous êtes sur la page de profil d'un enfant
- URL correcte : `http://localhost:5173/child/[ID]`
### Problème : "Erreur de connexion à Pronote"
- **Causes possibles** :
- URL Pronote incorrecte
- Identifiants erronés
- Établissement qui bloque les connexions externes
- Serveur API Pronote non démarré
- **Solutions** :
- Vérifiez l'URL (doit commencer par https://)
- Vérifiez vos identifiants
- Consultez les logs du serveur
- Redémarrez l'application
### Problème : "Non connecté à Pronote" après connexion
- **Solution** :
- Rafraîchissez la page (F5)
- Vérifiez la console du navigateur (F12)
- Reconnectez-vous à Pronote
### Problème : Les données ne se chargent pas
- **Solution** :
- Cliquez sur "📥 Importer"
- Vérifiez que le serveur API (port 3000) est actif
- Consultez les logs du serveur
- Videz le cache du navigateur
### Problème : L'application ne démarre pas
- **Solution** :
1. Vérifiez que Node.js est installé : `node --version`
2. Installez les dépendances :
```bash
cd backend && npm install
cd ../frontend && npm install
cd .. && npm install
```
3. Fermez tous les processus Node.js existants
4. Relancez LANCER_APPLICATION.bat
### Voir les Logs
Pour voir les logs des serveurs :
- **PowerShell** : Les logs s'affichent automatiquement
- **CMD** : Vérifiez les fichiers :
- `pronote-server.log`
- `backend.log`
- `frontend.log`
## Sécurité
### Données Sensibles
- Les mots de passe Pronote ne sont PAS stockés en clair
- Utilisation de JWT pour l'authentification
- Tokens cryptés dans localStorage
- Sessions expirées automatiquement
### Recommandations
1. **Ne partagez jamais** vos identifiants Pronote
2. **Fermez l'application** après utilisation
3. **Videz le cache** si vous utilisez un ordinateur partagé
4. **Changez vos mots de passe** régulièrement
## Support
Pour toute question ou problème :
1. Consultez d'abord ce document
2. Vérifiez les logs des serveurs
3. Essayez de redémarrer l'application
4. Consultez la documentation technique dans README.md
---
**Version** : 1.0.0
**Dernière mise à jour** : 13 Octobre 2025
**Développé avec** : Claude Code