docs(0.2.0): mini-spec quotidien parent/AM, découpage tickets et maquettes.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
# Mini-spec — Quotidien parent / AM
|
||||
|
||||
> **Statut :** figée pour backlog (sept. 2026)
|
||||
> **Réf. visuelle :** [maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png](./maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png)
|
||||
> **Découpage tickets :** [30_DECOUPAGE-TICKETS-QUOTIDIEN.md](./30_DECOUPAGE-TICKETS-QUOTIDIEN.md)
|
||||
> **CDC :** vision d’origine conservée ; priorités UX évoluées (blog central, couple enfant–nounou)
|
||||
|
||||
## 1. Objectif
|
||||
|
||||
Construire les **espaces parent et AM du quotidien** : tableau de bord 3 colonnes, file de cartes (absences / congés / sorties), **blog** (cœur du jour), **messagerie** AM et RPE. Logiciel réel peuplé de données ; une démo = sync live multi-écrans (parent / AM / gestionnaire).
|
||||
|
||||
## 2. UI — contrainte non négociable
|
||||
|
||||
- Look **papier / pastel**, lignée **login / inscription** (`paper2.png`), pas le dashboard staff violet Material
|
||||
- PC paysage : **3 colonnes** égales
|
||||
- Mobile : **swipe** entre les 3 panneaux ; TdB / Agenda / Contrat via nav dédiée
|
||||
|
||||
### Architecture front — maximiser les widgets partagés
|
||||
|
||||
Parent et AM sont **quasi identiques** : **ne pas dupliquer** les colonnes métier.
|
||||
|
||||
| Brique | Usage |
|
||||
|--------|--------|
|
||||
| Widget **Blog** | Colonne milieu parent **et** AM (+ entrée publication gestionnaire qui réutilise le composeur) |
|
||||
| Widget **Messagerie** | Colonne droite parent **et** AM (+ vue gestionnaire RPE) |
|
||||
| Widget **flux de cartes** | Colonne gauche parent **et** AM (actions / droits selon rôle) |
|
||||
| Widget **bandeau couple** | Variante *enfant\|nounou* (parent) vs *enfant\|parent(s)* (AM) — même composant paramétré |
|
||||
| Coquille TdB 3 colonnes | Layout / bandeau navig commun ; le rôle injecte le couple + droits |
|
||||
|
||||
Principe : **briques correctement encapsulées** (API claire props / callbacks), branchées sur le même back ; seules les **différences de rôle** (qui crée quoi, libellés d’action) restent hors du widget partagé.
|
||||
|
||||
|
||||
## 3. Layout TdB
|
||||
|
||||
| Colonne | Contenu |
|
||||
|---------|---------|
|
||||
| **Gauche** | Couple actif · flux de **cartes** · actions (ex. Déclarer une absence) |
|
||||
| **Milieu** | **Blog** — affichage **par défaut** à l’arrivée |
|
||||
| **Droite** | **Messagerie** seule — onglets Mess. AM (défaut) \| Mess. RPE |
|
||||
|
||||
Bandeau : **TdB** · **Agenda** · **Contrat** · menu user (recherche AM, paramètres…).
|
||||
|
||||
### Parent — couple
|
||||
|
||||
- Un bandeau **enfant | nounou** (photos + noms)
|
||||
- Plusieurs gardes → dropdown unique (bascule de couple)
|
||||
- Une seule garde → affichage informatif (pas de chevron)
|
||||
|
||||
### AM — couple (miroir)
|
||||
|
||||
- Bandeau **enfant | parent(s)**
|
||||
- 2 parents : noms empilés à droite ; 1 parent : nom centré
|
||||
- Pas de photo parent obligatoire (option profil plus tard)
|
||||
|
||||
## 4. Canaux (ne pas mélanger)
|
||||
|
||||
| Canal | Rôle |
|
||||
|-------|------|
|
||||
| **Cartes** | Décisions / futur proche : absences, congés, maladie AM, sorties à valider |
|
||||
| **Blog** | Mémoire / actus du quotidien (texte + photos) — **indispensable**, plus un module optionnel CDC §9 |
|
||||
| **Mess. AM** | Chat foyer ↔ AM (style WhatsApp : texte, emoji, images) |
|
||||
| **Mess. RPE** | Privée par défaut ; ajout de participants pour médiation / conflit |
|
||||
|
||||
## 5. Règles métier V1
|
||||
|
||||
| Type | Qui initie | Validation |
|
||||
|------|------------|------------|
|
||||
| Absence enfant | Parent | Pas de veto AM |
|
||||
| Congé AM | AM | **1 parent** accepte ou refuse |
|
||||
| Maladie AM | AM | Parent accuse réception (pas de doc médical in-app) |
|
||||
| Sortie | AM / RPE | **1 parent** suffit (présence / absence) ; explication aussi via blog |
|
||||
|
||||
- Mess. AM : les **2 parents** voient le **même** fil — **pas** de masquage V1
|
||||
- Blog auteurs V1 : **AM** + **gestionnaire (RPE)** — parent auteur = plus tard
|
||||
- Couple actif filtre cartes + messagerie + blog (hypothèse produit : **oui**)
|
||||
|
||||
## 6. Hors périmètre de ce jalon
|
||||
|
||||
- Page **Contrat** riche (Pajemploi, CP…) — stub bandeau OK
|
||||
- **Agenda** calendrier riche — stub bandeau OK
|
||||
- Notifications CDC fourre-tout (paiement, dossier…)
|
||||
- Masquage messages ; posts blog parent
|
||||
- Carnet repas/sieste (roadmap Phase 4)
|
||||
|
||||
## 7. Critères « effet démo » (acceptation)
|
||||
|
||||
Avec données peuplées, sur au moins 2 supports :
|
||||
|
||||
1. Parent et AM voient le **même contexte de garde** (couple / enfant)
|
||||
2. Parent déclare une **absence** → carte visible côté AM
|
||||
3. AM publie un **post blog** (texte + photo) → visible colonne blog parent
|
||||
4. Gestionnaire publie une **annonce RPE** → visible sur les TdB concernés
|
||||
5. Message **Mess. AM** d’un côté → apparaît de l’autre (près temps réel)
|
||||
6. Look conforme charte papier / pastel
|
||||
|
||||
## 8. Point de départ code
|
||||
|
||||
- Parent : `frontend/lib/screens/home/parent_screen/ParentDashboardScreen.dart` + `dashbord_parent/`
|
||||
- AM : `frontend/lib/screens/am/am_dashboard_screen.dart` (placeholder)
|
||||
- Cartes couleurs : `frontend/assets/cards/` (7 teintes max)
|
||||
|
||||
## 9. Ordre de build suggéré
|
||||
|
||||
Voir [30_DECOUPAGE-TICKETS-QUOTIDIEN.md](./30_DECOUPAGE-TICKETS-QUOTIDIEN.md) § ordre — A (coquille parent) → C (cartes) → D (blog) → E (messagerie) → B (miroir AM) → RPE → F/G (mobile + seeds).
|
||||
Reference in New Issue
Block a user