Files
Vincent Bourdon 16fd4c8c36 docs: cadrage initial Storytime (specs par jalon, roadmap, CLAUDE.md)
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>
2026-06-19 17:03:33 +02:00

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 (utilise ParentalCodeRepository.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

  1. Red : verify_parental_code_use_case_test.dart — bon code → true ; mauvais → false (repo mocké).
  2. Green : implémenter.
  3. Red : parent_gate_view_test.dart (widget) — saisie correcte → navigation vers l'espace parent (provider mocké) ; incorrecte → message d'erreur, pas de navigation.
  4. Green : implémenter la porte.
  5. Red : parent_home_view_test.dart — les entrées de menu mènent aux écrans attendus (podcasts, réglages).
  6. Green : implémenter l'espace parent + câbler la gestion podcasts.
  7. 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.sh passe ; étape 5.3 cochée dans ROADMAP.md.

Risques / notes

  • Vérifier qu'aucune route résiduelle (dev J3) ne contourne la porte parentale.