feat(gherkin): ajouter features UI pour algorithme de recommandation

Création de 4 features Gherkin UI pour l'expérience utilisateur liée
à l'algorithme de recommandation:

- parametres-personnalisation.feature: Interface curseurs (géo, découverte,
  politique), profils sauvegardables, auto-switch, synchronisation multi-devices

- mode-kids-ui.feature: Interface Mode Kids, activation/désactivation, badge,
  PIN parental, filtrage visuel contenus, onboarding 13-15 ans

- filtrage-politique-ui.feature: Interface paramètres contenu politique,
  options Masquer/Équilibré/Préférences, badges, notifications, recherche

- notifications-geo.feature: Notifications géographiques au passage <500m,
  types de logos, acceptation/rejet, gestion demi-tour, historique

Complète les features API existantes (classification-geo, scoring, mode-kids,
parametrabilite, etc.) avec l'expérience utilisateur mobile.

Aligné avec règles métier 04-algorithme-recommandation.md (sections 2.1-2.11).
This commit is contained in:
jpgiannetti
2026-02-02 22:39:00 +01:00
parent 718581b954
commit 852240b5ec
4 changed files with 1065 additions and 0 deletions

View File

@@ -0,0 +1,256 @@
# language: fr
Fonctionnalité: UI - Notifications géographiques
En tant qu'utilisateur
Je veux recevoir des notifications lors du passage près d'un point d'intérêt
Afin de découvrir du contenu géolocalisé pertinent
Contexte:
Étant donné que l'application RoadWave est ouverte
Et que je suis connecté
Et que la géolocalisation est activée
Scénario: Notification au passage <500m d'un point GPS
Étant donné qu'un contenu "géo-ancré" existe au Louvre
Et que j'écoute un podcast en cours
Quand je passe à 400m du point GPS du Louvre
Alors j'entends un bip court (notification sonore)
Et je vois une notification visuelle apparaître
Et la notification affiche:
| élément | valeur |
| Logo | 🏛 (Culturel) |
| Titre | "Histoire du Louvre" |
| Distance | "À 400m" |
| Durée | "12 min" |
Et je dispose de 5 secondes pour réagir
Scénario: Types de logos selon le contenu
Plan du Scénario: Logo selon le type de contenu
Étant donné qu'un contenu de type "<type>" existe à proximité
Quand je reçois la notification
Alors je vois le logo "<logo>"
Exemples:
| type | logo |
| Info | 📍 |
| Culturel | 🏛 |
| Commercial | 🍴 |
| Événement | 🎭 |
Scénario: Accepter la notification - lecture immédiate
Étant donné que je reçois une notification géo
Quand je clique sur "Écouter" dans les 5 secondes
Alors le contenu en cours s'arrête
Et le nouveau contenu se lance immédiatement
Et je vois "Lecture: Histoire du Louvre"
Scénario: Accepter via bouton au volant
Étant donné que je reçois une notification géo
Et que je conduis
Quand j'appuie sur le bouton "Suivant" de mon volant
Alors le contenu géolocalisé se lance
Et je n'ai pas besoin de toucher l'écran
Scénario: Accepter via commande vocale
Étant donné que je reçois une notification géo
Quand je dis "Écouter"
Alors le contenu géolocalisé se lance immédiatement
Et je garde les mains sur le volant
Scénario: Ignorer la notification - délai 5 secondes
Étant donné que je reçois une notification géo
Quand je ne fais rien pendant 5 secondes
Alors la notification disparaît automatiquement
Et le contenu en cours continue normalement
Et le contenu géo est ajouté à la file d'attente
Scénario: Notification ajoutée à la file si ignorée
Étant donné que j'ignore une notification géo
Quand je consulte ma file d'attente
Alors je vois le contenu "Histoire du Louvre" dans la liste
Et je peux l'écouter plus tard
Scénario: Notification publicitaire - son différent
Étant donné qu'une publicité géolocalisée existe à proximité
Quand je passe à <500m
Alors j'entends un son différent (optionnel selon paramètres)
Et je vois le logo 🍴 "Restaurant local"
Et je vois "(Publicité)" bien visible
Et je peux accepter ou ignorer comme un contenu normal
Scénario: Publicité ne coupe jamais le contenu en cours
Étant donné que j'écoute un podcast
Et qu'une pub géolocalisée existe à proximité
Quand je reçois la notification pub
Alors le podcast en cours continue sans interruption
Et la pub s'intercalera uniquement entre deux séquences si acceptée
Scénario: Gestion du demi-tour - pas de re-notification
Étant donné que j'ai reçu une notification pour le Louvre
Et que j'ai ignoré la notification
Quand je fais demi-tour et repasse à <500m du Louvre
Alors je ne reçois pas de nouvelle notification
Et le contenu reste dans la file d'attente
Scénario: Réinitialisation après 24h
Étant donné que j'ai ignoré une notification pour le Louvre
Et que 24 heures se sont écoulées
Quand je repasse à <500m du Louvre
Alors je reçois à nouveau la notification
Et je peux choisir de l'écouter
Scénario: Notification visuelle discrète en mode conduite
Étant donné que je conduis à 50 km/h
Quand je reçois une notification géo
Alors la notification apparaît en bas de l'écran
Et elle est discrète pour ne pas distraire
Et le texte est lisible rapidement
Et l'animation est fluide
Scénario: Compteur de temps restant pour accepter
Étant donné que je reçois une notification géo
Quand la notification s'affiche
Alors je vois un compteur circulaire "5...4...3...2...1"
Et le cercle se vide progressivement
Et je sais combien de temps il me reste
Scénario: Balayer pour ignorer rapidement
Étant donné que je reçois une notification géo
Quand je balaye la notification vers la droite
Alors la notification disparaît immédiatement
Et le contenu est ajouté à la file d'attente
Et je vois "Ajouté à la file d'attente"
Scénario: Balayer pour accepter rapidement
Étant donné que je reçois une notification géo
Quand je balaye la notification vers la gauche
Alors le contenu se lance immédiatement
Et je vois "Lecture: Histoire du Louvre"
Scénario: Désactiver les notifications géo dans les paramètres
Étant donné que je suis dans les paramètres
Quand je désactive "Notifications géolocalisées"
Alors je ne reçois plus de notifications au passage de points GPS
Mais les contenus géo restent recommandés normalement dans la file
Scénario: Régler le rayon de déclenchement
Étant donné que je suis dans les paramètres avancés
Quand je modifie "Rayon de notification" de 500m à 1000m
Alors les notifications se déclenchent à 1000m au lieu de 500m
Et je reçois les notifications plus tôt
Scénario: Désactiver le son des notifications
Étant donné que je suis dans les paramètres audio
Quand je désactive "Son des notifications géo"
Alors je reçois uniquement les notifications visuelles
Et aucun bip n'est joué
Scénario: Désactiver uniquement les pubs géolocalisées
Étant donné que je suis dans les paramètres
Quand je désactive "Publicités géolocalisées"
Alors je ne reçois plus de notifications pour les pubs
Mais je reçois toujours les notifications pour les contenus organiques
Scénario: Notification en mode piéton
Étant donné que je suis en mode piéton (vitesse < 5 km/h)
Quand je passe à <500m d'un point GPS
Alors je reçois la notification normalement
Et la notification peut être plus détaillée (mode piéton)
Et je vois une miniature du contenu
Scénario: Notification en mode voiture
Étant donné que je conduis à 70 km/h
Quand je reçois une notification géo
Alors la notification est ultra-simplifiée
Et je vois uniquement: Logo + Titre + "Écouter"
Et l'interface est adaptée à la conduite
Scénario: Historique des notifications ignorées
Étant donné que j'ai ignoré 5 notifications géo aujourd'hui
Quand je consulte "Historique notifications"
Alors je vois la liste des 5 notifications ignorées:
| contenu | heure | lieu |
| Histoire du Louvre | 14:30 | Paris 1er |
| Restaurant local | 15:00 | Paris 8e |
| Musée d'Orsay | 15:45 | Paris 7e |
Et je peux les écouter depuis l'historique
Scénario: Notification avec aperçu vocal (optionnel)
Étant donné que j'ai activé "Aperçu vocal" dans les paramètres
Quand je reçois une notification géo
Alors après le bip, j'entends: "Histoire du Louvre, 12 minutes, à 400 mètres"
Et je peux accepter vocalement en disant "Écouter"
Scénario: Plusieurs notifications en cascade
Étant donné que je suis dans une zone dense (Paris)
Et qu'il y a 3 contenus géo-ancrés dans un rayon de 500m
Quand je passe à proximité
Alors je reçois la notification du contenu le plus proche en premier
Et les autres notifications sont espacées de 30 secondes minimum
Et je ne suis pas submergé de notifications
Scénario: Priorisation des notifications par pertinence
Étant donné que 2 contenus sont à proximité:
| contenu | distance | score_intérêts |
| Audio-guide A | 300m | 0.9 |
| Podcast B | 250m | 0.3 |
Quand je dois recevoir une notification
Alors "Audio-guide A" est notifié en premier (score plus élevé)
Même si "Podcast B" est plus proche
Scénario: Notification lors d'une pause
Étant donné que j'ai mis en pause mon contenu
Quand je passe à <500m d'un point GPS
Alors je reçois la notification normalement
Et si j'accepte, le nouveau contenu se lance
Et l'ancien contenu en pause reste en pause
Scénario: Carte avec points d'intérêt à proximité
Étant donné que je consulte l'écran "Carte"
Quand je zoome sur ma position
Alors je vois des marqueurs pour tous les contenus géo-ancrés à <5km
Et chaque marqueur affiche le logo du type de contenu
Et je peux taper sur un marqueur pour voir les détails
Scénario: Prévisualiser les notifications à venir sur itinéraire
Étant donné que j'ai saisi un itinéraire dans GPS
Quand je consulte "Contenus sur votre route"
Alors je vois la liste des contenus géo qui seront notifiés:
| contenu | dans | type |
| Histoire du Louvre | 5 min | 🏛 Culturel |
| Restaurant local | 12min | 🍴 Commercial|
Et je peux pré-écouter ou ignorer d'avance
Scénario: Annuler une notification en cours
Étant donné qu'une notification géo s'affiche
Et que le compteur est à 3 secondes
Quand je tape sur "Fermer"
Alors la notification disparaît immédiatement
Et le contenu est ajouté à la file d'attente
Scénario: Badge compteur de notifications ignorées
Étant donné que j'ai ignoré 3 notifications géo
Quand je consulte l'écran principal
Alors je vois un badge "3" sur l'icône "File d'attente"
Et je sais qu'il y a 3 contenus géo en attente
Scénario: Animation fluide de la notification
Quand une notification géo apparaît
Alors elle glisse du bas vers le haut de l'écran
Et l'animation dure 300ms
Et elle est fluide (60 FPS)
Et elle ne bloque pas l'interface principale
Scénario: Notification en arrière-plan (app fermée)
Étant donné que l'app est fermée
Et que les notifications sont autorisées
Quand je passe à <500m d'un point GPS
Alors je reçois une notification push système:
"""
🏛 RoadWave
Histoire du Louvre
À 400m 12 min
Ouvrir pour écouter
"""
Et en tapant dessus, l'app s'ouvre et le contenu peut être lancé