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

126
docs/architecture.md Normal file
View File

@@ -0,0 +1,126 @@
# Architecture overview
## System context
- **Parents / Encadrants** accedent a l interface web depuis desktop, tablette ou affichage TV.
- **API Backend** gere l authentification, la persistence et la logique metier.
- **Service d ingestion** transforme les fichiers bruts en evenements normalises.
- **Stockage** (base SQL + objet) conserve les plannings et medias associes.
- **Bus d evenements** (placeholder) propagate les alertes et notifications.
```mermaid
flowchart LR
User[Utilisateur] -->|HTTP| Frontend
Frontend -->|REST| Backend
Backend -->|Upload| Storage[(Stockage fichiers)]
Backend -->|Job| Ingestion
Ingestion -->|Resultat JSON| Backend
Backend -->|WebSocket / REST| Frontend
Backend -->|Events| Notifier[(Alerting)]
```
## Modules
### Frontend
- `screens/` vues principales (Planning, Enfants, Parametres).
- `components/` elements UI generiques (plan board, timeline, modals).
- `services/` clients API (children, schedules, alerts, uploads).
- `styles/` theming global, mode plein ecran, palette dynamique.
- `state/` (a creer) pour Zustand ou Redux Toolkit.
### Backend
- `routes/` definitions Express pour enfants, plannings, fichiers, alertes.
- `controllers/` validation request/response via Zod.
- `services/` logique (assignation planning, detection alertes).
- `models/` mapping ORM (Prisma / Sequelize placeholder).
- `config/` gestion env, secrets, toggles features.
- `jobs/` (a ajouter) pour traitements asynchrones d ingestion.
### Ingestion
- `adapters/ocr.py` connecteurs Tesseract / Vision API.
- `parsers/` exploitent pdfplumber, openpyxl, pillow.
- `schemas/` definissent le format de sortie unifie.
- `tasks/` pipeline orchestrateur (FastAPI background tasks ou Celery).
### Shared
- `types/` exports TypeScript (DTO communs: Child, Schedule, Activity, Alert).
- `ui/` composants design system (Bouton, Barre laterale, timeline).
## Donnees
### Entite Child
```
Child {
id: string
fullName: string
birthDate?: string
colorHex?: string
notes?: string
}
```
### Entite Schedule
```
Schedule {
id: string
childId: string
periodStart: string
periodEnd: string
sourceFileUrl: string
activities: Activity[]
}
```
### Entite Activity
```
Activity {
id: string
title: string
category: "school" | "sport" | "medical" | "event" | "other"
description?: string
location?: string
startDateTime: string
endDateTime: string
reminders: Reminder[]
metadata?: Record<string, string>
}
```
### Entite Reminder
```
Reminder {
id: string
activityId: string
offsetMinutes: number
channel: "push" | "email" | "sms" | "device"
}
```
## Operations cle
1. **Upload planning** (POST `/children/{id}/schedules`)
2. **Lister calendrier** (GET `/calendar?from=&to=`)
3. **Mettre a jour activite** (PATCH `/activities/{id}`)
4. **Activer mode plein ecran** (frontend uniquement)
5. **Notifications programmes** (backend -> notifier)
## Securite
- API key familiale + Auth future (magic link / SSO).
- Sanitisation des fichiers uploades.
- Limitation taille fichier (10MB par defaut).
- Logs et audit (pistes a definir).
## Extensibilite
- Connecteurs agenda (Google Calendar, Outlook).
- Synchronisation ecoles via SFTP/Email.
- Application mobile (React Native) reutilisant API + shared UI.