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>
Family Planner Hub
Family Planner Hub est un socle applicatif pour orchestrer les emplois du temps et l environnement d une fratrie. Le depot fournit l infrastructure initiale pour:
- collecter des plannings pour chaque enfant (PDF, image, tableur),
- analyser ces documents via un service d ingestion et d OCR pour extraire les activites,
- centraliser les evenements dans une API,
- proposer une interface multi ecran claire, avec navigation plein ecran en un clic,
- generer des notifications et des alertes autour des activites remarquables (sport, sorties, examens, etc.).
Apercu de l architecture
family-planner/
|-- backend/ # API Express + services metiers
|-- frontend/ # Application React (Vite + TypeScript)
|-- ingestion-service/ # Service Python pour OCR et parsing de plannings
|-- shared/ # Bibliotheques partagees (types TS, composants UI)
|-- config/ # Fichiers de configuration multi environnement
|-- docs/ # Documentation produit, technique et parcours utilisateurs
`-- README.md
Flux cible
- L utilisateur ajoute un enfant et charge un planning (drag-and-drop ou selection, PDF/PNG/JPEG/XLSX).
- Le frontend envoie le document au backend.
- Le backend stocke le fichier puis delegue l analyse au service
ingestion-service. - Le service OCR produit un schema canonical d activites et le renvoie a l API.
- L API persiste le planning, calcule les evenements cle et alimente le UI.
- Le UI affiche la semaine par enfant, signale les alertes et permet un affichage plein ecran.
Capacites cibles
- Multi-enfants illimites avec profils individuels.
- Synchronisation journaliere/semaine + vue agenda familiale.
- Gestion des alertes (push navigateur, emails ou autres adaptateurs).
- Mode plein ecran simple.
- Support de plusieurs ecrans (responsive + casting web).
- Authentification familiale minimale (a definir).
Stack technique
Frontend (frontend/)
- Vite + React + TypeScript.
- Styled Components (placeholder) pour le theming dynamique.
- React Query pour la gestion des appels API.
- Architecture modulable:
screens/,components/,services/,styles/.
Backend (backend/)
- Node.js 20 + Express + TypeScript.
- Prisma (optionnel, non configure) comme ORM cible.
- Architecture hexagonale legere (routes -> controllers -> services -> models).
- Gestion des evenements via un bus simple (placeholder).
Ingestion (ingestion-service/)
- Python 3.11.
- FastAPI expose des endpoints internes.
- Pydantic pour les schemas.
- Support d OCR via Tesseract (a integrer).
- Pipelines modulaires (parser PDF, parser image, parser tableur).
Shared packages (shared/)
shared/types: definitions TypeScript communes (DTO, schemas).shared/ui: composants React reutilisables (design system leger).
Prise en main
1. Installer les dependances
# Frontend
cd frontend
npm install
# Backend
cd ../backend
npm install
# Ingestion
cd ../ingestion-service
pip install -e .[dev]
2. Variables d environnement
Creer un fichier .env dans chaque package (voir config/) pour configurer les secrets ou URLs.
3. Lancer les applications
🎯 MÉTHODE SIMPLE (Recommandé) :
Double-cliquez sur :
START.bat
Ou manuellement :
# Terminal 1 - Backend (port 5000)
cd backend
npm run dev
# Terminal 2 - Frontend (port 5173)
cd frontend
npm run dev
# Terminal 3 - Ingestion service (optionnel, port 8000)
cd ingestion-service
uvicorn ingestion.main:app --reload
⚠️ IMPORTANT : Attendez 30 secondes que tout compile avant d'ouvrir le navigateur.
4. Ouvrir l'application
- Ouvrez votre navigateur sur http://localhost:5173
- Appuyez sur Ctrl + Shift + R pour vider le cache
- Créez un profil enfant ou sélectionnez-en un
- Dans "Congés scolaires", vous pouvez maintenant sélectionner Monaco 🇲🇨
5. Arrêter les serveurs
Double-cliquez sur :
STOP.bat
Ou fermez simplement les fenêtres de terminal.
🇲🇨 Monaco - Calendrier Scolaire
Family Planner intègre désormais les vacances scolaires et jours fériés de Monaco !
Régions disponibles :
- Zone A, B, C (France métropolitaine)
- Corse
- Monaco 🇲🇨 (avec jours fériés spécifiques)
- DOM-TOM (Guadeloupe, Guyane, Martinique, Réunion, Mayotte)
Jours fériés spécifiques à Monaco :
- Sainte Dévote (27 janvier)
- Fête du Prince (19 novembre)
- Fête-Dieu (juin)
Sources officielles :
- Arrêté ministériel n° 2023-221 du 18 avril 2023
- Gouvernement Princier de Monaco
Voir PORTS.md pour la configuration des ports.
Documentation
docs/architecture.md: diagramme haut niveau, flux de donnees, choix techniques.docs/product-vision.md: besoins utilisateurs, priorites fonctionnelles, feuille de route.docs/data-contracts.md: schemas partageables entre services (DTO, payloads).docs/ux-flow.md: wireframes textuels, parcours utilisateur, interactions cle.docs/archive/: documentation historique et notes de développement.- PORTS.md : Configuration complète des ports utilisés.
Plan de developpement suggere
- Onboarding: terminer le design system minimal, definir les couleurs et la grille.
- Persistence: brancher une base SQLite/PostgreSQL via Prisma, ajouter migrations.
- Import OCR: connecter Tesseract ou un provider cloud, creer les pipelines de parsing.
- Alertes: implementer la logique de detection (regex mots cle, categories).
- Multi-devices: ajouter PWA/offline, ecran TV, application mobile (React Native ou Tauri).
Scripts racine
Le fichier package.json racine declare des scripts d orchestration (install, lint, test). Voir la section suivante pour plus de details.
Licence
En attente de definition (placeholder). Ajouter la licence familiale ou open-source adaptee lorsque le projet sera partage.