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>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user