# language: fr @api @audio-guides @content-creation @mvp Fonctionnalité: Wizard complet de création d'audio-guide multi-séquences En tant que créateur de contenu Je veux créer un audio-guide avec plusieurs séquences géolocalisées Afin de proposer une expérience guidée immersive aux utilisateurs Contexte: Étant donné que le système supporte les limites suivantes: | Paramètre | Valeur | | Nombre max de séquences par guide | 50 | | Taille max fichier audio | 100 MB | | Formats audio acceptés | MP3, M4A, WAV | | Durée max par séquence | 15 minutes | | Rayon min d'un point d'intérêt | 10 mètres | | Rayon max d'un point d'intérêt | 500 mètres | Scénario: Création d'un audio-guide - Étape 1: Informations générales Étant donné un créateur "alice@roadwave.fr" connecté Quand le créateur clique sur "Créer un audio-guide" Alors le wizard s'ouvre sur l'étape 1 "Informations générales" Et le créateur remplit le formulaire: | Champ | Valeur | | Titre | Visite guidée du Quartier Latin | | Description courte | Découvrez l'histoire du quartier étudiant | | Description longue | Plongez dans 2000 ans d'histoire... | | Catégorie | Tourisme | | Langues disponibles | Français, Anglais | | Durée estimée | 2 heures | | Difficulté | Facile | | Accessibilité PMR | Oui | Et le créateur clique sur "Suivant" Alors les données sont validées et enregistrées en brouillon Et un événement "AUDIO_GUIDE_CREATION_STARTED" est enregistré Et la métrique "audio_guide.creation.step1_completed" est incrémentée Scénario: Création d'un audio-guide - Étape 2: Image de couverture Étant donné un créateur "bob@roadwave.fr" à l'étape 2 du wizard Quand le créateur upload une image de couverture: | Propriété | Valeur | | Fichier | quartier-latin-cover.jpg | | Taille | 1920x1080 px | | Format | JPEG | | Poids | 2.5 MB | Alors l'image est uploadée vers le stockage S3 Et une miniature est générée automatiquement (300x200 px) Et un aperçu de l'image est affiché Et le créateur peut recadrer l'image via un éditeur intégré Et le créateur clique sur "Suivant" Alors l'image est associée au brouillon Et un événement "AUDIO_GUIDE_COVER_UPLOADED" est enregistré Et la métrique "audio_guide.creation.step2_completed" est incrémentée Scénario: Création d'un audio-guide - Étape 3: Ajout de séquences via carte Étant donné un créateur "charlie@roadwave.fr" à l'étape 3 du wizard Quand le créateur voit une carte interactive centrée sur Paris Et clique sur "Ajouter un point d'intérêt" sur la carte Et place un marqueur à la position: 48.8534, 2.3488 (Notre-Dame) Alors un formulaire de séquence s'ouvre: | Champ | Valeur par défaut | | Nom du point | [Vide] | | Position GPS | 48.8534, 2.3488 | | Rayon de déclenchement| 50 mètres | | Ordre dans le parcours| 1 | | Fichier audio | [Non uploadé] | Et le créateur remplit les informations: | Champ | Valeur | | Nom du point | Cathédrale Notre-Dame de Paris | | Rayon de déclenchement| 100 mètres | | Ordre dans le parcours| 1 | Et le créateur upload un fichier audio "notre-dame.mp3" (12 MB, 8min 30s) Et le créateur clique sur "Enregistrer le point" Alors la séquence 1 est créée et affichée sur la carte Et un événement "AUDIO_GUIDE_SEQUENCE_ADDED" est enregistré Et la métrique "audio_guide.sequences.added" est incrémentée Scénario: Ajout de plusieurs séquences consécutives Étant donné un créateur "david@roadwave.fr" avec 1 séquence créée Quand le créateur ajoute 4 nouvelles séquences: | Ordre | Nom | Position GPS | Rayon | Audio | | 2 | Sainte-Chapelle | 48.8555, 2.3450 | 80m | chapelle.mp3 | | 3 | Panthéon | 48.8462, 2.3464 | 100m | pantheon.mp3 | | 4 | Jardin du Luxembourg | 48.8462, 2.3371 | 150m | jardin.mp3 | | 5 | Sorbonne | 48.8487, 2.3431 | 70m | sorbonne.mp3 | Alors les 5 séquences sont affichées sur la carte avec des marqueurs numérotés Et une ligne de parcours relie les points dans l'ordre Et la distance totale du parcours est calculée: 3.2 km Et la durée totale des audios est calculée: 42 minutes Et un panneau latéral liste les séquences avec possibilité de réorganiser Et un événement "AUDIO_GUIDE_SEQUENCES_BATCH_ADDED" est enregistré Et la métrique "audio_guide.sequences.count" est mise à jour: 5 Scénario: Réorganisation de l'ordre des séquences par drag & drop Étant donné un créateur "eve@roadwave.fr" avec 5 séquences créées Quand le créateur utilise le panneau latéral Et fait glisser la séquence #3 "Panthéon" vers la position #2 Alors l'ordre des séquences est mis à jour: | Nouvel ordre | Nom | | 1 | Cathédrale Notre-Dame | | 2 | Panthéon | | 3 | Sainte-Chapelle | | 4 | Jardin du Luxembourg | | 5 | Sorbonne | Et la ligne de parcours sur la carte est recalculée Et la distance totale est recalculée: 3.5 km Et un événement "AUDIO_GUIDE_SEQUENCES_REORDERED" est enregistré Et la métrique "audio_guide.sequences.reordered" est incrémentée Scénario: Modification d'une séquence existante Étant donné un créateur "frank@roadwave.fr" avec 5 séquences créées Quand le créateur clique sur le marqueur #2 "Panthéon" sur la carte Alors le formulaire d'édition s'ouvre avec les données actuelles Et le créateur modifie: | Champ | Ancienne valeur | Nouvelle valeur | | Rayon de déclenchement| 100m | 120m | | Fichier audio | pantheon.mp3 | pantheon-v2.mp3 | Et le créateur clique sur "Enregistrer les modifications" Alors la séquence est mise à jour Et le nouveau fichier audio remplace l'ancien Et l'ancien fichier est supprimé du stockage S3 Et un événement "AUDIO_GUIDE_SEQUENCE_UPDATED" est enregistré Et la métrique "audio_guide.sequences.updated" est incrémentée Scénario: Suppression d'une séquence Étant donné un créateur "grace@roadwave.fr" avec 5 séquences créées Quand le créateur clique sur l'icône de suppression de la séquence #3 Alors un dialogue de confirmation s'affiche: "Supprimer cette séquence ?" Et le créateur confirme la suppression Alors la séquence #3 est supprimée Et le fichier audio associé est marqué pour suppression différée (30 jours) Et les séquences suivantes sont renumérotées automatiquement: | Ancien ordre | Nouveau ordre | Nom | | 4 | 3 | Jardin du Luxembourg | | 5 | 4 | Sorbonne | Et la ligne de parcours est recalculée Et un événement "AUDIO_GUIDE_SEQUENCE_DELETED" est enregistré Et la métrique "audio_guide.sequences.deleted" est incrémentée Scénario: Validation de la distance minimale entre séquences Étant donné un créateur "henry@roadwave.fr" avec 2 séquences créées Quand le créateur tente d'ajouter une 3ème séquence à 5 mètres de la séquence #1 Alors un message d'erreur s'affiche: "Ce point est trop proche d'un point existant (min: 20m)" Et le marqueur est affiché en rouge sur la carte Et la séquence n'est pas enregistrée tant que le créateur ne déplace pas le marqueur Et un événement "AUDIO_GUIDE_SEQUENCE_TOO_CLOSE" est enregistré Et la métrique "audio_guide.validation.sequence_too_close" est incrémentée Scénario: Création d'un audio-guide - Étape 4: Configuration avancée Étant donné un créateur "iris@roadwave.fr" à l'étape 4 du wizard Quand le créateur configure les options avancées: | Option | Valeur | | Prix (gratuit ou payant) | Gratuit | | Visibilité | Publique | | Mode de lecture | Séquentiel obligatoire | | Autoriser les avis utilisateurs | Oui | | Autoriser le téléchargement | Non | | Activer les sous-titres | Oui | Et clique sur "Suivant" Alors les options sont enregistrées Et un événement "AUDIO_GUIDE_CONFIG_COMPLETED" est enregistré Et la métrique "audio_guide.creation.step4_completed" est incrémentée Scénario: Création d'un audio-guide - Étape 5: Prévisualisation et publication Étant donné un créateur "jack@roadwave.fr" à l'étape 5 du wizard Quand le créateur voit la prévisualisation complète: | Section | Contenu | | Informations | Titre, description, durée | | Image | Aperçu de la couverture | | Parcours | Carte avec 5 séquences | | Audio | Liste des 5 fichiers audio | | Configuration | Prix, visibilité, options | Et clique sur "Tester le parcours en simulation" Alors une simulation GPS est lancée avec lecture des audios Et le créateur peut naviguer dans le parcours virtuel Et après validation, le créateur clique sur "Publier l'audio-guide" Alors l'audio-guide passe du statut "brouillon" à "publié" Et l'audio-guide devient visible dans les recherches et recommandations Et un événement "AUDIO_GUIDE_PUBLISHED" est enregistré Et la métrique "audio_guide.published" est incrémentée Et un email de confirmation est envoyé au créateur Scénario: Sauvegarde automatique du brouillon pendant la création Étant donné un créateur "kate@roadwave.fr" en train de créer un audio-guide Quand le créateur remplit des informations à chaque étape Alors le brouillon est automatiquement sauvegardé toutes les 30 secondes Et un indicateur "Sauvegardé automatiquement à 14:32" s'affiche Et en cas de fermeture accidentelle, le créateur peut reprendre la création Et un événement "AUDIO_GUIDE_DRAFT_AUTOSAVED" est enregistré toutes les 30s Et la métrique "audio_guide.drafts.autosaved" est incrémentée Scénario: Récupération d'un brouillon après interruption Étant donné un créateur "luke@roadwave.fr" qui a commencé un audio-guide hier Et le brouillon a été sauvegardé automatiquement à l'étape 3 Quand le créateur clique sur "Créer un audio-guide" Alors un message s'affiche: "Vous avez un brouillon en cours. Reprendre la création ?" Et le créateur clique sur "Reprendre" Alors le wizard s'ouvre directement à l'étape 3 Et toutes les données saisies sont restaurées Et un événement "AUDIO_GUIDE_DRAFT_RESUMED" est enregistré Et la métrique "audio_guide.drafts.resumed" est incrémentée Scénario: Import d'un parcours GPX pour créer automatiquement les séquences Étant donné un créateur "mary@roadwave.fr" à l'étape 3 du wizard Quand le créateur clique sur "Importer un parcours GPX" Et upload un fichier "parcours-paris.gpx" avec 10 waypoints Alors le système extrait les coordonnées GPS de chaque waypoint Et crée automatiquement 10 séquences avec positions GPS pré-remplies Et les marqueurs sont affichés sur la carte Et le créateur doit ensuite ajouter les fichiers audio et noms pour chaque séquence Et un événement "AUDIO_GUIDE_GPX_IMPORTED" est enregistré Et la métrique "audio_guide.gpx.imported" est incrémentée Scénario: Validation de la qualité audio avant publication Étant donné un créateur "nathan@roadwave.fr" qui tente de publier un audio-guide Quand le système analyse les fichiers audio uploadés Et détecte que le fichier "sequence-3.mp3" a un bitrate de 32 kbps (trop faible) Alors un avertissement s'affiche: "Le fichier 'sequence-3.mp3' a une qualité audio faible. Recommandé: 128 kbps minimum" Et le créateur peut choisir de: | Action | Conséquence | | Ignorer et publier quand même | Publication autorisée | | Remplacer le fichier | Retour à l'édition | Et un événement "AUDIO_GUIDE_LOW_QUALITY_WARNING" est enregistré Et la métrique "audio_guide.quality.warnings" est incrémentée Scénario: Limitation du nombre de brouillons par créateur Étant donné un créateur "olive@roadwave.fr" avec 10 brouillons en cours Quand le créateur tente de créer un 11ème audio-guide Alors un message s'affiche: "Vous avez atteint la limite de 10 brouillons. Veuillez publier ou supprimer des brouillons existants." Et un lien vers la liste des brouillons est affiché Et la création est bloquée jusqu'à suppression d'un brouillon Et un événement "AUDIO_GUIDE_DRAFT_LIMIT_REACHED" est enregistré Et la métrique "audio_guide.drafts.limit_reached" est incrémentée Scénario: Métriques de performance du wizard de création Étant donné que 1000 audio-guides sont créés par mois Quand les métriques de création sont collectées Alors les indicateurs suivants sont disponibles: | Métrique | Valeur cible | | Taux de complétion du wizard | > 65% | | Temps moyen de création | < 45 min | | Nombre moyen de séquences par guide | 5-8 | | Taux d'abandon à chaque étape | < 15% | | Taux d'utilisation de l'autosave | 100% | Et les métriques sont exportées vers le système de monitoring Et des optimisations UX sont proposées si taux d'abandon > 20%