# language: fr Fonctionnalité: Audio-guides multi-séquences pour piétons En tant qu'auditeur à pied Je veux profiter d'audio-guides structurés lors de mes visites Afin de découvrir des lieux de manière autonome et à mon rythme Contexte: Étant donné que l'API RoadWave est disponible Et que je suis connecté en tant qu'auditeur Et que je suis en mode piéton (vitesse <5 km/h) Scénario: Détection d'audio-guide à proximité Étant donné que je me trouve à 80 mètres du Musée du Louvre Et que 3 audio-guides sont disponibles pour ce lieu Quand le système détecte ma position Alors je reçois une notification push: """ 📍 Audio-guide disponible : Musée du Louvre Choisissez parmi 3 guides pour Musée du Louvre Tap pour explorer """ Scénario: Rayon de détection de 100m Étant donné qu'un audio-guide est centré aux coordonnées GPS du Louvre Quand je suis à exactement 100m du centre Alors la notification est déclenchée Et quand je suis à 101m, aucune notification n'est envoyée Scénario: Page de sélection des audio-guides Étant donné que j'ai tapé sur la notification audio-guide Quand la page de sélection s'affiche Alors je vois une liste de guides disponibles: | titre | créateur | nb_sequences | durée | note | écoutes | | Visite complète | Créateur A | 12 | 45 min | 4.8 | 1.2K | | Œuvres majeures | Créateur B | 5 | 20 min | 4.9 | 3.5K | | Visite famille | Créateur C | 8 | 30 min | 4.7 | 850 | Scénario: Sélection d'un audio-guide Étant donné que je suis sur la page de sélection Quand je tape sur "Visite complète (45 min)" Alors l'interface de lecture d'audio-guide s'ouvre Et la séquence 1 commence automatiquement Et je vois la liste complète des 12 séquences Scénario: Interface de lecture audio-guide Étant donné que j'ai sélectionné un audio-guide de 12 séquences Quand l'interface s'affiche Alors je vois: | élément | exemple | | Titre guide | 🎨 Visite complète • Musée du Louvre | | Piste actuelle | Piste 2/12 | | Titre séquence | "La Joconde - Histoire et mystères" | | Barre de progression | 3:24 / 6:50 | | Liste séquences | ✅ 1. Intro, ▶️ 2. Joconde, ⏸️ 3. Vénus... | | Boutons navigation | Précédent, Play/Pause, Suivant | Scénario: Navigation vers séquence suivante Étant donné que j'écoute la séquence 2 Quand je tape sur "Suivant" Alors la séquence 3 commence immédiatement Et le titre de la séquence s'affiche: "Vénus de Milo" Et la barre de progression se réinitialise Scénario: Navigation vers séquence précédente Étant donné que j'écoute la séquence 5 Quand je tape sur "Précédent" Alors la séquence 4 recommence depuis le début Et je peux réécouter cette séquence Scénario: Saut direct à une séquence spécifique Étant donné que j'écoute la séquence 2 Et que la liste des séquences est affichée Quand je tape sur "7. Peintures Renaissance" Alors la séquence 7 démarre immédiatement Et je passe directement de la séquence 2 à la 7 Scénario: Commande vocale "Suivant" Étant donné que j'écoute la séquence 3 Quand je dis "Suivant" via la commande vocale Alors la séquence 4 démarre Et la commande vocale fonctionne même si l'écran est verrouillé Scénario: Commande vocale "Précédent" Étant donné que j'écoute la séquence 6 Quand je dis "Précédent" via la commande vocale Alors la séquence 5 démarre depuis le début Scénario: Pause et reprise à la position exacte Étant donné que j'écoute la séquence 4 à la position 2:30 Quand je mets en pause Et que j'attends 5 minutes Et que je reprends la lecture Alors la séquence reprend exactement à 2:30 Et aucune donnée n'est perdue Scénario: Guidage vocal automatique entre séquences Étant donné que la séquence 2 se termine Quand la transition vers la séquence 3 se produit Alors j'entends un message vocal: """ Vous avez terminé la séquence 2. Dirigez-vous vers la Vénus de Milo pour la séquence 3. """ Et la séquence 3 ne démarre pas automatiquement (navigation manuelle) Scénario: Avertissement si éloignement du point d'intérêt Étant donné que je suis dans le guide du Louvre Et que je devrais être devant la Vénus de Milo (séquence 3) Quand je m'éloigne de plus de 50m de ce point Alors j'entends un message vocal: """ Vous vous éloignez de la prochaine étape. Consultez le plan. """ Et un bouton "Voir le plan" apparaît dans l'interface Scénario: Sauvegarde automatique de la progression Étant donné que j'écoute la séquence 5 à la position 1:45 Quand je ferme l'application brutalement Et que je la rouvre 10 minutes plus tard Alors je vois une popup "Reprendre la visite du Musée du Louvre ?" Et si je choisis "Reprendre", je retourne à la séquence 5 à 1:45 Scénario: Option de recommencer depuis le début Étant donné que j'ai une progression sauvegardée à la séquence 7 Quand je rouvre le guide Alors je vois 2 options: | option | action | | Reprendre à la séquence 7 | Reprend à la position exacte | | Recommencer depuis le début | Retourne à la séquence 1 | Scénario: Expiration de la sauvegarde après 30 jours Étant donné que j'ai une progression sauvegardée depuis 30 jours Quand j'essaie de reprendre le guide Alors la sauvegarde est considérée comme expirée Et je recommence depuis la séquence 1 Et je vois le message "Votre précédente visite date de plus de 30 jours. Recommençons depuis le début." Scénario: Synchronisation multi-device de la progression Étant donné que j'écoute un guide sur mon iPhone à la séquence 4 Quand je ferme l'app et ouvre sur mon iPad Alors je vois la progression synchronisée Et je peux reprendre à la séquence 4 sur l'iPad Scénario: Marquage "Terminé" après toutes les séquences Étant donné que j'écoute la dernière séquence (12/12) Quand cette séquence se termine Alors le guide est marqué "✅ Terminé" dans mon historique Et je vois un message de félicitation: """ Félicitations ! Vous avez terminé la visite complète du Musée du Louvre. """ Et le créateur gagne les statistiques d'écoute complète Scénario: Création d'audio-guide par un créateur Étant donné que je suis un créateur Quand je crée un nouvel audio-guide Alors je dois: | étape | détail | | Uploader plusieurs fichiers | 1 fichier MP3 par séquence | | Numéroter les séquences | Séquence 1, Séquence 2, etc. | | Titrer chaque séquence | "Introduction", "La Joconde", etc. | | Définir point GPS unique | Centre du lieu (ex: Louvre) | | Définir rayon de détection | Par défaut 100m | Et la durée totale est calculée automatiquement Scénario: Structure JSON de stockage audio-guide Étant donné qu'un créateur publie un audio-guide du Louvre Quand les métadonnées sont stockées en base Alors le format JSON contient: ```json { "guide_id": "abc123", "title": "Visite complète Musée du Louvre", "location": {"lat": 48.8606, "lon": 2.3376, "radius": 200}, "sequences": [ { "sequence_number": 1, "title": "Introduction et architecture", "audio_url": "https://cdn.../seq1.mp3", "duration_seconds": 180 }, { "sequence_number": 2, "title": "La Joconde", "audio_url": "https://cdn.../seq2.mp3", "duration_seconds": 410 } ], "total_duration_seconds": 2700, "creator_id": "creator_xyz" } ``` Scénario: Limitation du nombre de séquences Étant donné que je crée un audio-guide Quand j'essaie d'ajouter plus de 50 séquences Alors je vois le message "Maximum 50 séquences par audio-guide" Et je dois structurer mon contenu différemment ou créer plusieurs guides Scénario: Quitter le guide et sauvegarder Étant donné que j'écoute la séquence 6 Quand je tape sur le bouton "×" (fermer) Alors je vois une confirmation: """ Voulez-vous quitter ce guide ? Votre progression sera sauvegardée. """ Et si je confirme, la progression est enregistrée Et je retourne à l'écran principal Scénario: Statistiques créateur pour audio-guides Étant donné que je suis créateur d'un audio-guide Quand je consulte mes statistiques Alors je vois: | métrique | exemple valeur | | Nombre de démarrages | 1250 | | Nombre de complétions (100%) | 387 (31%) | | Séquence la plus skippée | Séquence 8 | | Durée moyenne d'écoute | 28 min (sur 45) | Scénario: Audio-guide multilingue (post-MVP) Étant donné qu'un créateur peut publier plusieurs versions linguistiques Quand un touriste anglophone visite le Louvre Alors il voit les guides disponibles en anglais Et peut choisir parmi les guides traduits Mais cette fonctionnalité n'est pas disponible en MVP Scénario: Publicité entre séquences d'audio-guide Étant donné que je suis un utilisateur gratuit Et que j'écoute un audio-guide Quand je passe de la séquence 5 à la séquence 6 Alors une publicité peut être insérée (1 pub toutes les 5 séquences) Et la publicité est skippable après 5 secondes Et les utilisateurs Premium ne voient pas de publicité Scénario: Audio-guide en mode offline Étant donné que j'ai téléchargé un audio-guide complet Quand je visite le lieu sans connexion internet Alors toutes les séquences sont disponibles hors ligne Et la navigation fonctionne normalement Et seule la sauvegarde cloud est différée jusqu'à reconnexion Scénario: Notation d'un audio-guide après écoute Étant donné que j'ai terminé un audio-guide Quand je ferme l'interface Alors je vois une popup "Notez cette visite" Et je peux donner une note de 1 à 5 étoiles Et cette note contribue à la note globale visible par les autres utilisateurs Scénario: Filtrage par langue dans la page de sélection Étant donné que plusieurs audio-guides sont disponibles en différentes langues Quand j'accède à la page de sélection Alors je peux filtrer par langue Et par défaut, les guides dans ma langue système sont affichés en premier Scénario: Réutilisation de l'infrastructure existante Étant donné qu'un audio-guide est techniquement un contenu structuré Alors il réutilise: | composant | usage | | OVH Object Storage | Hébergement fichiers MP3 séquences | | Streaming HLS | Diffusion audio adaptative | | Cache Redis | Métadonnées guides + progressions | | PostgreSQL | Stockage structure JSON guides | Et aucune infrastructure dédiée n'est nécessaire