16fd4c8c36
Lecteur d'histoires cadenassé pour le coucher (Android/Flutter). - CLAUDE.md : principes craftsmanship/TDD/clean code/clean archi + decisions techniques - ROADMAP.md : suivi haut niveau des 7 jalons, a tenir a jour par etape - docs/specs/ : specs completes decoupees par jalon, etapes en sous-fichiers - .gitignore Flutter (pubspec.lock versionne, projet applicatif) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.4 KiB
2.4 KiB
5.3 — Accès à l'espace parent & abritage de la gestion podcasts
Objectif
Relier l'icône discrète de l'écran enfant à une porte parentale (saisie du code) qui ouvre l'espace parent, et y intégrer la gestion des abonnements (J3).
Périmètre & hors-périmètre
- Inclus : porte parentale (saisie + vérification), espace parent, déplacement de la gestion podcasts (J3) derrière cette porte.
- Exclus : réglages de limites (J6, qui s'ajouteront à l'espace parent).
Dépendances
5.1, 5.2 (code + vérification), 3.x (gestion podcasts), 4.2 (icône posée).
Conception
- Application :
VerifyParentalCodeUseCase(utiliseParentalCodeRepository.verify). - Presentation (
features/parental/presentation/) :ParentGateView: pavé numérique, saisie 4 chiffres →VerifyParentalCodeUseCase. Bon code → navigation espace parent ; mauvais → message + reset saisie. Anti-spam simple (léger délai après N échecs) optionnel, documenté.ParentHomeView: menu de l'espace parent → « Mes podcasts » (écrans de J3), « Réglages » (changer le code), placeholder « Limites » (rempli en J6).- Brancher les écrans de gestion podcasts de J3 ici, et retirer l'accès dev temporaire mis en place au J3.
- Sortie de l'espace parent → retour à l'écran enfant (qui réactive l'épinglage, J4).
Plan TDD
- Red :
verify_parental_code_use_case_test.dart— bon code →true; mauvais →false(repo mocké). - Green : implémenter.
- Red :
parent_gate_view_test.dart(widget) — saisie correcte → navigation vers l'espace parent (provider mocké) ; incorrecte → message d'erreur, pas de navigation. - Green : implémenter la porte.
- Red :
parent_home_view_test.dart— les entrées de menu mènent aux écrans attendus (podcasts, réglages). - Green : implémenter l'espace parent + câbler la gestion podcasts.
- Refactor : supprimer l'accès dev temporaire de J3 ; vérifier qu'on n'atteint plus la gestion podcasts sans code.
Definition of Done
- Tests use case + porte + accueil parent verts.
- Depuis l'écran enfant : ⚙️ → code correct → gestion des podcasts ; code incorrect → refus ; aucun accès à la gestion sans code.
tool/check.shpasse ; étape 5.3 cochée dansROADMAP.md.
Risques / notes
- Vérifier qu'aucune route résiduelle (dev J3) ne contourne la porte parentale.