202 lines
11 KiB
Markdown
202 lines
11 KiB
Markdown
# 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](./maquettes/courantes/maquette-dashboard-parent-quotidien-v4.png)
|
||
> **Mini-spec :** [31_MINI-SPEC-QUOTIDIEN-PARENT-AM.md](./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](https://git.ptits-pas.fr/jmartin/petitspas/issues/165) | Epic quotidien |
|
||
| A1 | [#166](https://git.ptits-pas.fr/jmartin/petitspas/issues/166) | [Front] Coquille TdB parent |
|
||
| A2 | [#167](https://git.ptits-pas.fr/jmartin/petitspas/issues/167) | [Front] Couple enfant–nounou |
|
||
| A3 | [#168](https://git.ptits-pas.fr/jmartin/petitspas/issues/168) | [Backend] API couples parent |
|
||
| B1 | [#169](https://git.ptits-pas.fr/jmartin/petitspas/issues/169) | [Front] Coquille TdB AM |
|
||
| B2 | [#170](https://git.ptits-pas.fr/jmartin/petitspas/issues/170) | [Front] Couple enfant–parent(s) |
|
||
| B3 | [#171](https://git.ptits-pas.fr/jmartin/petitspas/issues/171) | [Backend] API enfants AM |
|
||
| C1 | [#172](https://git.ptits-pas.fr/jmartin/petitspas/issues/172) | [Backend] API cartes |
|
||
| C2 | [#173](https://git.ptits-pas.fr/jmartin/petitspas/issues/173) | [Front] Cartes parent |
|
||
| C3 | [#174](https://git.ptits-pas.fr/jmartin/petitspas/issues/174) | [Front] Cartes AM |
|
||
| C4 | [#175](https://git.ptits-pas.fr/jmartin/petitspas/issues/175) | [Front] Déclarer absence |
|
||
| C5 | [#176](https://git.ptits-pas.fr/jmartin/petitspas/issues/176) | [Front] Formulaires AM cartes |
|
||
| D1 | [#177](https://git.ptits-pas.fr/jmartin/petitspas/issues/177) | [Backend] API blog |
|
||
| D2 | [#178](https://git.ptits-pas.fr/jmartin/petitspas/issues/178) | [Front] Blog parent |
|
||
| D3 | [#179](https://git.ptits-pas.fr/jmartin/petitspas/issues/179) | [Front] Blog AM |
|
||
| D4 | [#180](https://git.ptits-pas.fr/jmartin/petitspas/issues/180) | [Front] Blog gestionnaire |
|
||
| E1 | [#181](https://git.ptits-pas.fr/jmartin/petitspas/issues/181) | [Backend] Socle messagerie |
|
||
| E2 | [#182](https://git.ptits-pas.fr/jmartin/petitspas/issues/182) | [Backend] Mess. AM |
|
||
| E3 | [#183](https://git.ptits-pas.fr/jmartin/petitspas/issues/183) | [Backend] Mess. RPE |
|
||
| E4 | [#184](https://git.ptits-pas.fr/jmartin/petitspas/issues/184) | [Front] Messagerie parent |
|
||
| E5 | [#185](https://git.ptits-pas.fr/jmartin/petitspas/issues/185) | [Front] Messagerie AM |
|
||
| E6 | [#186](https://git.ptits-pas.fr/jmartin/petitspas/issues/186) | [Front] Mess. RPE gestionnaire |
|
||
| F1 | [#187](https://git.ptits-pas.fr/jmartin/petitspas/issues/187) | [Front] Stubs Agenda / Contrat |
|
||
| F2 | [#188](https://git.ptits-pas.fr/jmartin/petitspas/issues/188) | [Front] Swipe mobile |
|
||
| G1 | [#189](https://git.ptits-pas.fr/jmartin/petitspas/issues/189) | [Backend] Seeds quotidien |
|
||
|
||
---
|
||
|
||
## Epic A — Coquille TdB parent
|
||
|
||
### A1 — [Front] Coquille TdB parent 3 colonnes + bandeau → [#166](https://git.ptits-pas.fr/jmartin/petitspas/issues/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](https://git.ptits-pas.fr/jmartin/petitspas/issues/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](https://git.ptits-pas.fr/jmartin/petitspas/issues/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](https://git.ptits-pas.fr/jmartin/petitspas/issues/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é
|
||
|
||
1. **A1 → A2 → A3** (coquille + contexte parent)
|
||
2. **C1 → C2 / C4** (premières cartes utiles)
|
||
3. **D1 → D2 / D3** (blog central)
|
||
4. **E1 → E2 → E4** (messagerie AM)
|
||
5. **B1 → B2 → B3** + miroirs C3/C5/D3/E5 (AM)
|
||
6. **E3 / E5 / E6 / D4** (RPE)
|
||
7. **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.
|