11 KiB
Découpage tickets — Quotidien parent / AM
Statut : backlog Gitea créé (milestone
0.2.0, #165–#189) — création anticipée avant validation PO ; descriptions enrichies ensuite à partir de la mini-spec / découpage.
Réf. visuelle : maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png
Mini-spec : 31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md
Règle : tickets front / back séparés · widgets partagés parent↔AM · pas d’implé code tant que le PO n’a pas validé le backlog.
Intention produit (rappel)
- TdB PC en 3 colonnes : cartes | blog (défaut) | messagerie
- Contexte actif = couple enfant–nounou (parent) / enfant–parent(s) (AM)
- Blog indispensable (AM + RPE) ; messagerie type WhatsApp (BABA, 2 parents = même fil AM)
- Look papier / pastel / lignée inscription (pas le dashboard staff)
- Widgets partagés parent ↔ AM (blog, messagerie, cartes, coquille, couple paramétré) — pas de double implémentation
- « Effet démo » = logiciel peuplé + sync live multi-écrans — pas un sous-MVP jetable
- Hors ce découpage (jalons suivants) : page Contrat riche (Pajemploi, CP), notifs CDC fourre-tout, masquage messages, posts blog parent, Agenda « riche » (entrée bandeau possible en stub)
Contrainte technique front (dictée 23/09)
Les panneaux parent et AM étant quasiment identiques, le découpage impose des briques réutilisables :
| Widget / module | Tickets concernés |
|---|---|
| Coquille TdB 3 colonnes + bandeau | A1, B1 — B1 réutilise la coquille d’A1 |
| Sélecteur couple (mode parent vs AM) | A2, B2 — un composant, 2 modes |
| Flux de cartes | C2, C3 — un widget + config rôles |
| Blog (fil + composeur) | D2, D3, D4 — même brique |
| Messagerie (chat + onglets) | E4, E5, E6 — même brique |
Les tickets [Front] AM (B1, B2, C3, D3, E5) = intégration / mode rôle, pas une 2ᵉ copie du code.
Proposition de milestone
| Champ | Valeur |
|---|---|
| Titre | 0.2.0 (rouvert) |
| Description | Quotidien parent / AM — TdB 3 colonnes, cartes, blog, messagerie |
| Label | v0.2.0 |
Mapping Gitea
| Id | Issue | Titre |
|---|---|---|
| Epic | #165 | Epic quotidien |
| A1 | #166 | [Front] Coquille TdB parent |
| A2 | #167 | [Front] Couple enfant–nounou |
| A3 | #168 | [Backend] API couples parent |
| B1 | #169 | [Front] Coquille TdB AM |
| B2 | #170 | [Front] Couple enfant–parent(s) |
| B3 | #171 | [Backend] API enfants AM |
| C1 | #172 | [Backend] API cartes |
| C2 | #173 | [Front] Cartes parent |
| C3 | #174 | [Front] Cartes AM |
| C4 | #175 | [Front] Déclarer absence |
| C5 | #176 | [Front] Formulaires AM cartes |
| D1 | #177 | [Backend] API blog |
| D2 | #178 | [Front] Blog parent |
| D3 | #179 | [Front] Blog AM |
| D4 | #180 | [Front] Blog gestionnaire |
| E1 | #181 | [Backend] Socle messagerie |
| E2 | #182 | [Backend] Mess. AM |
| E3 | #183 | [Backend] Mess. RPE |
| E4 | #184 | [Front] Messagerie parent |
| E5 | #185 | [Front] Messagerie AM |
| E6 | #186 | [Front] Mess. RPE gestionnaire |
| F1 | #187 | [Front] Stubs Agenda / Contrat |
| F2 | #188 | [Front] Swipe mobile |
| G1 | #189 | [Backend] Seeds quotidien |
Epic A — Coquille TdB parent
A1 — [Front] Coquille TdB parent 3 colonnes + bandeau → #166
Bandeau TdB / Agenda / Contrat + menu user ; corps en 3 colonnes (cartes | blog | messagerie) ; fond papier / pastel. Livrer la coquille comme widget/layout réutilisable (l’AM B1 s’en branche). Remplace / refactor ParentDashboardScreen + dashbord_parent/.
A2 — [Front] Sélecteur couple enfant–nounou → #167
Composant paramétrable (mode parent : enfant|nounou). Dropdown si plusieurs gardes ; informatif si une seule. B2 = même widget en mode AM.
A3 — [Back] API contexte de garde actif (couples parent)
Endpoint(s) listant les couples enfant–AM du parent connecté + couple « courant » (persistance session / préférence). Données mini : ids, noms, photos.
Epic B — Coquille TdB AM (miroir)
B1 — [Front] Coquille TdB AM 3 colonnes + bandeau → #169
Réutilise la coquille d’A1/#166 ; point de départ am_dashboard_screen.dart.
B2 — [Front] Sélecteur couple enfant–parent(s) → #170
Même widget qu’A2 en mode AM : gauche photo enfant ; droite parent1+parent2 empilés ou un parent centré.
B3 — [Back] API contexte enfants accueillis (AM)
Liste des enfants / foyers pour l’AM + contexte courant (symétrique A3).
Epic C — Cartes (file du quotidien)
C1 — [Back] Modèle + API cartes / événements de garde
Types V1 : absence enfant, congé AM, maladie AM (« arrêt »), sortie à valider. CRUD / transitions de statut ; liaison couple / agenda (hook minimal). Règles : absence enfant sans veto AM ; congé AM accepter/refuser (1 parent suffit) ; maladie AM accusé parent ; sortie 1 parent suffit. Aucun doc médical stocké.
C2 — [Front] Flux de cartes colonne gauche (parent)
Liste scroll pastel (palette assets/cards/ — 7 couleurs) ; ouverture détail ; actions valider / refuser / accusé selon type. Bouton Déclarer une absence (+ autres actions TBD plus tard).
C3 — [Front] Flux de cartes colonne gauche (AM)
Miroir : création congé / maladie / sortie ; lecture absences enfants du jour / à venir.
C4 — [Front] Formulaire déclarer une absence (parent)
Saisie période (+ motif léger si besoin) → crée une carte côté AM.
C5 — [Front] Formulaires AM congé / maladie / sortie
Création des cartes correspondantes + ciblage enfants si sortie.
Epic D — Blog
D1 — [Back] Modèle + API blog (posts + médias)
Posts par auteur AM ou gestionnaire (RPE) ; texte + photos ; ciblage enfants (AM) / audience (RPE) ; fil visible parents (et AM selon règles). Sync temps réel ou polling acceptable V1.
D2 — [Front] Colonne Blog parent (défaut)
Fil de posts ; auteur distinct AM vs RPE ; miniatures ; pas de bouton « Écrire un post » parent en V1 (reporté).
D3 — [Front] Colonne Blog AM — lecture + écrire un post
Composer texte + photos + sélection enfants concernés ; publication.
D4 — [Front] Publication blog gestionnaire (point d’entrée staff)
UI minimale côté dashboard gestionnaire (ou réutilisation) pour publier une annonce RPE visible sur les TdB parent/AM.
Epic E — Messagerie
E1 — [Back] Socle messagerie (choix lib / protocole) + API
Évaluer brique existante (style chat WhatsApp : texte, emoji, images). Conversations, participants, pièces jointes images. Temps réel (WS ou équivalent) souhaité pour l’effet multi-écrans.
E2 — [Back] Mess. AM — conversation foyer ↔ AM
Une conversation par couple/foyer ; les deux parents voient le même fil. Pas de masquage V1.
E3 — [Back] Mess. RPE — privée + ajout de participants
Fil 1↔1 par défaut (parent↔RPE ou AM↔RPE) ; possibilité d’ajouter 2ᵉ parent / AM / parent pour médiation.
E4 — [Front] Colonne messagerie parent (onglets Mess. AM | Mess. RPE)
UI chat + saisie + PJ ; défaut = Mess. AM.
E5 — [Front] Colonne messagerie AM (onglets équivalents)
Miroir parent ; Mess. AM = foyer courant ; Mess. RPE = canal relais.
E6 — [Front] Mess. RPE côté gestionnaire (entrée minimale)
Liste / réponse aux fils RPE + ajout de participants pour médiation.
Epic F — Navigation & mobile (socle)
F1 — [Front] Navigation Agenda / Contrat (stubs ou routes)
Entrées bandeau : pages placeholder ou squelette (Agenda / Contrat pleine page) pour ne pas bloquer le TdB — contenu métier = jalons suivants.
F2 — [Front] Adaptation mobile — swipe 3 panneaux
Sur téléphone : swipe Blog ↔ Cartes ↔ Messagerie ; navigation TdB/Agenda/Contrat hors swipe. Contrat peut rester limité (« mieux sur PC ») en V1 si besoin.
Epic G — Données de démo / peuplement
G1 — [Back/Outillage] Jeu de données peuplé quotidien
Scripts / seeds : foyer 2 parents, AM, enfant(s), quelques cartes, posts blog, fils messagerie — pour enchaîner une démo multi-écrans sans saisie manuelle lourde.
Hors découpage (volontairement)
| Sujet | Motif |
|---|---|
| Page Contrat (Pajemploi, CP, avenants) | Module valué — jalon dédié |
| Agenda calendrier riche | Entrée bandeau OK en stub ; métier plus tard |
| Notifs CDC (contrat/paiement/dossier) | Plus tard |
| Masquage messages / privé parent↔AM | Plus tard |
| Parent auteur de posts blog | Hypothétique / plus tard |
| Photo parent à l’inscription | Non ; éventuel menu profil plus tard |
Ordre de réalisation suggéré
- A1 → A2 → A3 (coquille + contexte parent)
- C1 → C2 / C4 (premières cartes utiles)
- D1 → D2 / D3 (blog central)
- E1 → E2 → E4 (messagerie AM)
- B1 → B2 → B3 + miroirs C3/C5/D3/E5 (AM)
- E3 / E5 / E6 / D4 (RPE)
- F1 → F2 + G1 (nav, mobile, seeds)
Validation
Backlog créé sur Gitea (#165–#189, milestone 0.2.0).
Implémentation code : seulement après relecture PO / ajustements éventuels sur le découpage.