Files
roadwave/docs/domains/content/features/audio-guides/systeme-double-clic-sortie.feature
jpgiannetti 5e5fcf4714 refactor(docs): réorganiser la documentation selon principes DDD
Réorganise la documentation du projet selon les principes du Domain-Driven Design (DDD) pour améliorer la cohésion, la maintenabilité et l'alignement avec l'architecture modulaire du backend.

**Structure cible:**
```
docs/domains/
├── README.md (Context Map)
├── _shared/ (Core Domain)
├── recommendation/ (Supporting Subdomain)
├── content/ (Supporting Subdomain)
├── moderation/ (Supporting Subdomain)
├── advertising/ (Generic Subdomain)
├── premium/ (Generic Subdomain)
└── monetization/ (Generic Subdomain)
```

**Changements effectués:**

Phase 1: Création de l'arborescence des 7 bounded contexts
Phase 2: Déplacement des règles métier (01-19) vers domains/*/rules/
Phase 3: Déplacement des diagrammes d'entités vers domains/*/entities/
Phase 4: Déplacement des diagrammes flux/états/séquences vers domains/*/
Phase 5: Création des README.md pour chaque domaine
Phase 6: Déplacement des features Gherkin vers domains/*/features/
Phase 7: Création du Context Map (domains/README.md)
Phase 8: Mise à jour de mkdocs.yml pour la nouvelle navigation
Phase 9: Correction automatique des liens internes (script fix-markdown-links.sh)
Phase 10: Nettoyage de l'ancienne structure (regles-metier/, diagrammes/, features/)

**Configuration des tests:**
- Makefile: godog run docs/domains/*/features/
- scripts/generate-bdd-docs.py: features_dir → docs/domains

**Avantages:**
 Cohésion forte: toute la doc d'un domaine au même endroit
 Couplage faible: domaines indépendants, dépendances explicites
 Navigabilité améliorée: README par domaine = entrée claire
 Alignement code/docs: miroir de backend/internal/
 Onboarding facilité: exploration domaine par domaine
 Tests BDD intégrés: features au plus près des règles métier

Voir docs/REFACTOR-DDD.md pour le plan complet.
2026-02-07 17:15:02 +01:00

193 lines
8.6 KiB
Gherkin

# language: fr
Fonctionnalité: Système double clic et sortie audio-guide mode voiture
En tant qu'utilisateur en voiture
Je veux pouvoir désactiver le GPS automatique et sortir de l'audio-guide facilement
Afin de gérer les situations d'embouteillage ou de changement de plan
Contexte:
Étant donné qu'un utilisateur est en mode voiture
Et qu'un audio-guide de 8 séquences est actif
Et que le mode GPS automatique est activé par défaut
Et que la séquence 2 est en cours de lecture
# Comportement bouton [▶|] Suivant
Scénario: Premier clic Suivant - Passage en mode manuel
Étant donné que le mode GPS auto est actif
Et que la séquence 2 vient de se terminer
Et que le prochain point GPS (séquence 3) est à 2 km
Quand l'utilisateur clique sur le bouton [|] Suivant
Alors le GPS automatique est désactivé
Et le mode bascule en "mode manuel"
Et la séquence 3 démarre immédiatement
Et un toast s'affiche pendant 3 secondes:
"""
Mode manuel activé. Cliquez à nouveau pour quitter l'audio-guide.
"""
Et un timer de 10 secondes démarre en arrière-plan
Scénario: Deuxième clic Suivant dans les 10 secondes - Sortie audio-guide
Étant donné que le mode manuel vient d'être activé il y a 5 secondes
Et que la séquence 3 est en cours de lecture
Quand l'utilisateur clique à nouveau sur [|] Suivant
Alors l'audio-guide est mis en pause
Et l'historique de progression est conservé (séquence 3 à X:XX)
Et l'application retourne au flux normal de recommandation
Et un toast s'affiche pendant 2 secondes: "Audio-guide en pause"
Scénario: Clic Suivant après 10 secondes - Navigation normale
Étant donné que le mode manuel est actif depuis 12 secondes
Et que la séquence 3 est en cours
Quand l'utilisateur clique sur [|] Suivant
Alors la séquence 4 démarre immédiatement
Et le timer de 10 secondes redémarre
Et le mode reste en "mode manuel"
Et aucune sortie d'audio-guide ne se produit
Scénario: Clics multiples Suivant en mode manuel
Étant donné que le mode manuel est actif
Et que l'utilisateur clique sur [|] pour passer séquence 3 4
Et que 5 secondes se passent
Quand l'utilisateur clique à nouveau sur [|] pour passer séquence 4 5
Alors la séquence 5 démarre
Et le timer de 10 secondes redémarre à chaque clic
Et l'utilisateur peut naviguer normalement entre les séquences
Scénario: Double clic rapide accidentel - sortie immédiate
Étant donné que le mode GPS auto est actif
Et que la séquence 2 vient de se terminer
Quand l'utilisateur clique sur [|] (clic 1)
Et que l'utilisateur clique immédiatement sur [|] (clic 2 à <2s)
Alors l'audio-guide est mis en pause après le clic 2
Et l'utilisateur retourne au flux normal
Et un toast confirme: "Audio-guide en pause"
# Comportement bouton [|◀] Précédent
Scénario: Bouton Précédent dans audio-guide GPS auto
Étant donné que le mode GPS auto est actif
Et que la séquence 3 est en cours
Quand l'utilisateur clique sur [|◀] Précédent
Alors la séquence 2 démarre
Et l'audio-guide reste actif
Et le mode GPS auto reste actif
Scénario: Bouton Précédent dans audio-guide mode manuel
Étant donné que le mode manuel est actif
Et que la séquence 5 est en cours
Quand l'utilisateur clique sur [|◀] Précédent
Alors la séquence 4 démarre
Et l'audio-guide reste actif
Et le mode manuel reste actif
Scénario: Bouton Précédent hors audio-guide - Reprend audio-guide si contenu précédent
Étant donné que l'utilisateur a quitté l'audio-guide "Safari du Paugre"
Et que l'utilisateur écoute un contenu normal "Podcast A"
Quand l'utilisateur clique sur [|◀] Précédent
Alors l'audio-guide "Safari du Paugre" reprend
Et la dernière séquence écoutée (séquence 3) reprend
# Détection et reprise après détour
Scénario: Détection hors itinéraire >1 km pendant >10 min
Étant donné que l'audio-guide est actif (mode GPS auto ou manuel)
Et que l'utilisateur s'éloigne à 1.2 km de tous les points GPS
Et que cette situation dure 11 minutes
Quand le système détecte le hors itinéraire
Alors un toast s'affiche: "Audio-guide en pause (hors itinéraire)"
Et l'icône de l'audio-guide passe en gris (inactif)
Et la lecture continue du contenu en cours s'arrête
Scénario: Retour sur itinéraire <100m d'un point non écouté
Étant donné que l'audio-guide est en pause (hors itinéraire)
Et que l'utilisateur revient à 80m du point GPS séquence 5 (non écoutée)
Quand le système détecte le retour sur itinéraire
Alors une popup s'affiche:
"""
Reprendre l'audio-guide à la séquence 5 ?
[Reprendre] [Voir liste] [Ignorer]
"""
Scénario: Action "Reprendre" après retour sur itinéraire
Étant donné que la popup de reprise est affichée
Quand l'utilisateur clique sur [Reprendre]
Alors la séquence 5 démarre immédiatement
Et l'audio-guide redevient actif
Et l'icône repasse en couleur normale
Scénario: Action "Voir liste" après retour sur itinéraire
Étant donné que la popup de reprise est affichée
Quand l'utilisateur clique sur [Voir liste]
Alors la liste complète des séquences s'affiche
Et l'utilisateur peut choisir manuellement quelle séquence écouter
Scénario: Action "Ignorer" après retour sur itinéraire
Étant donné que la popup de reprise est affichée
Quand l'utilisateur clique sur [Ignorer]
Alors la popup se ferme
Et l'audio-guide reste en pause
Et l'utilisateur continue le flux normal de recommandation
# Respect des clics manuels
Scénario: Séquence skippée manuellement non reproposée automatiquement
Étant donné que l'utilisateur est en mode manuel
Et que l'utilisateur clique [|] pour passer de séquence 3 à séquence 4
Et que la séquence 3 est marquée "skippée volontairement"
Quand l'utilisateur revient à 50m du point GPS séquence 3
Alors aucune popup de reprise automatique ne s'affiche
Et l'utilisateur peut revenir manuellement via liste séquences s'il le souhaite
Scénario: Séquence skippée par GPS (point manqué) reproposable
Étant donné que l'utilisateur a dépassé un point GPS à 110m (rayon 30m)
Et que la séquence 3 a été marquée "point manqué" (pas de skip manuel)
Quand l'utilisateur revient à 80m du point GPS séquence 3
Alors une popup de reprise s'affiche:
"""
Reprendre la séquence 3 ?
[Reprendre] [Voir liste] [Ignorer]
"""
# Mode manuel persistant
Scénario: Mode manuel persiste jusqu'à fin audio-guide
Étant donné que le mode manuel est activé en séquence 3
Quand l'utilisateur navigue jusqu'à la séquence 8 (dernière)
Alors le mode manuel reste actif durant toutes les séquences
Et le GPS automatique n'est jamais réactivé
Scénario: Reset mode GPS auto au redémarrage audio-guide
Étant donné que l'utilisateur a quitté l'audio-guide en mode manuel
Et que plusieurs heures se sont écoulées
Quand l'utilisateur relance l'audio-guide "Safari du Paugre"
Alors le mode GPS automatique est réactivé par défaut
Et l'utilisateur peut à nouveau passer en mode manuel s'il le souhaite
# Cas d'usage réel : embouteillage
Scénario: Embouteillage - Passage manuel puis sortie
Étant donné que l'utilisateur écoute la séquence 2 "Les lions"
Et que la séquence 2 se termine
Et que le prochain point GPS (séquence 3) est à 3 km
Et que l'utilisateur est bloqué dans un embouteillage
Et que l'ETA indique " 30 minutes"
Quand l'utilisateur clique [|] (clic 1) pour passer en mode manuel
Alors la séquence 3 démarre immédiatement
Et le toast indique: "Mode manuel activé. Cliquez à nouveau pour quitter."
Quand l'utilisateur clique [|] (clic 2) dans les 8 secondes
Alors l'audio-guide est mis en pause
Et l'utilisateur retourne au flux normal (podcasts, musique)
Et la progression est sauvegardée (séquence 3 à X:XX)
Scénario: Reprise audio-guide après sortie embouteillage
Étant donné que l'utilisateur a quitté l'audio-guide en séquence 3
Et que plusieurs heures plus tard, l'utilisateur se reconnecte
Et que l'utilisateur est à 80m du point GPS séquence 4
Quand le système détecte la proximité
Alors une popup de reprise s'affiche:
"""
Reprendre l'audio-guide "Safari du Paugre" ?
Progression : 3/8 séquences
[Reprendre] [Recommencer] [Voir liste]
"""