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:
314
features/ui/recommendation/parametres-personnalisation.feature
Normal file
314
features/ui/recommendation/parametres-personnalisation.feature
Normal file
@@ -0,0 +1,314 @@
|
||||
# language: fr
|
||||
Fonctionnalité: UI - Paramètres de personnalisation et profils
|
||||
En tant qu'utilisateur
|
||||
Je veux personnaliser mon expérience avec des curseurs et profils
|
||||
Afin d'adapter l'application à mes différents contextes d'usage
|
||||
|
||||
Contexte:
|
||||
Étant donné que l'application RoadWave est ouverte
|
||||
Et que je suis connecté
|
||||
|
||||
Scénario: Accéder aux paramètres de personnalisation
|
||||
Quand j'ouvre le menu principal
|
||||
Et que je clique sur "Paramètres"
|
||||
Et que je clique sur "Personnalisation"
|
||||
Alors je vois l'écran "Personnalisation des recommandations"
|
||||
Et je vois trois curseurs disponibles:
|
||||
| curseur | icône | description |
|
||||
| Géolocalisation | 📍 | Local ← slider → National |
|
||||
| Découverte | 🎲 | 0% ← slider → 50% |
|
||||
| Politique | ⚖️ | Masquer / Équilibré / Préféré |
|
||||
|
||||
Scénario: Déplacer le curseur Géolocalisation vers Local
|
||||
Étant donné que je suis sur l'écran de personnalisation
|
||||
Et que le curseur Géolocalisation est au centre (défaut)
|
||||
Quand je déplace le curseur vers la gauche (Local)
|
||||
Alors le curseur se positionne à 30% (local)
|
||||
Et je vois le texte "Recommandations locales privilégiées"
|
||||
Et un indicateur visuel montre que la zone géographique est réduite
|
||||
Et je vois "Portée: ~50 km"
|
||||
|
||||
Scénario: Déplacer le curseur Géolocalisation vers National
|
||||
Étant donné que je suis sur l'écran de personnalisation
|
||||
Quand je déplace le curseur Géolocalisation vers la droite (National)
|
||||
Alors le curseur se positionne à 80% (national)
|
||||
Et je vois le texte "Découverte nationale activée"
|
||||
Et je vois "Portée: toute la France"
|
||||
Et une carte de France s'affiche avec la zone en surbrillance
|
||||
|
||||
Scénario: Régler le curseur Découverte à 0%
|
||||
Quand je déplace le curseur Découverte tout à gauche (0%)
|
||||
Alors le curseur est à 0%
|
||||
Et je vois l'icône 🎯 "Personnalisé max"
|
||||
Et je vois le message "Aucune surprise, uniquement vos préférences"
|
||||
Et un badge "0% aléatoire" s'affiche
|
||||
|
||||
Scénario: Régler le curseur Découverte à 10% (défaut)
|
||||
Quand je déplace le curseur Découverte à 10%
|
||||
Alors je vois l'icône ⚖️ "Équilibré"
|
||||
Et je vois "1 contenu sur 10 sera une découverte"
|
||||
Et c'est marqué comme "(Recommandé)"
|
||||
|
||||
Scénario: Régler le curseur Découverte à 30%
|
||||
Quand je déplace le curseur Découverte à 30%
|
||||
Alors je vois l'icône 🎲 "Découverte élevée"
|
||||
Et je vois "3 contenus sur 10 seront des découvertes"
|
||||
|
||||
Scénario: Régler le curseur Découverte à 50% (max)
|
||||
Quand je déplace le curseur Découverte tout à droite (50%)
|
||||
Alors je vois l'icône 🌍 "Découverte max"
|
||||
Et je vois "50% de contenus aléatoires"
|
||||
Et je vois le message "Explorez tout RoadWave!"
|
||||
|
||||
Scénario: Sélectionner option Politique "Masquer"
|
||||
Étant donné que le paramètre Politique est sur "Équilibré" (défaut)
|
||||
Quand je clique sur le bouton radio "Masquer"
|
||||
Alors l'option "Masquer contenu politique" est sélectionnée
|
||||
Et je vois l'icône 🚫 "Aucun contenu politique"
|
||||
Et je vois "0% de contenus tagués Politique"
|
||||
|
||||
Scénario: Sélectionner option Politique "Équilibré"
|
||||
Quand je clique sur le bouton radio "Équilibré"
|
||||
Alors l'option est sélectionnée
|
||||
Et je vois l'icône ⚖️ "Équilibré"
|
||||
Et je vois "Contenu politique selon vos intérêts" (défaut MVP)
|
||||
|
||||
Scénario: Sélectionner option Politique "Mes préférences"
|
||||
Quand je clique sur le bouton radio "Mes préférences"
|
||||
Alors l'option est sélectionnée
|
||||
Et je vois l'icône ❤️ "Selon votre jauge Politique"
|
||||
Et je vois "Basé sur votre jauge 'Politique': 45%"
|
||||
|
||||
Scénario: Sauvegarder les modifications de paramètres
|
||||
Étant donné que j'ai modifié les 3 curseurs
|
||||
Quand je clique sur "Sauvegarder"
|
||||
Alors je vois une animation de confirmation
|
||||
Et je vois "Paramètres enregistrés ✓"
|
||||
Et je retourne à l'écran précédent
|
||||
Et les nouvelles recommandations utilisent ces paramètres
|
||||
|
||||
Scénario: Annuler les modifications de paramètres
|
||||
Étant donné que j'ai modifié les curseurs
|
||||
Et que je n'ai pas sauvegardé
|
||||
Quand je clique sur "Retour"
|
||||
Alors je vois une popup "Sauvegarder les modifications?"
|
||||
Et je vois deux boutons "Sauvegarder" et "Abandonner"
|
||||
Quand je clique sur "Abandonner"
|
||||
Alors les paramètres ne sont pas modifiés
|
||||
Et je retourne à l'écran précédent
|
||||
|
||||
Scénario: Créer un nouveau profil personnalisé
|
||||
Étant donné que je suis sur l'écran de personnalisation
|
||||
Quand je clique sur "Créer un profil"
|
||||
Alors je vois un popup "Nouveau profil"
|
||||
Et je peux saisir un nom de profil
|
||||
Et je peux choisir une icône:
|
||||
| icône | description |
|
||||
| 🚗 | Trajet quotidien |
|
||||
| 🛣️ | Road trip |
|
||||
| 👶 | Enfants |
|
||||
| 🏃 | Sport |
|
||||
| 🎵 | Musique |
|
||||
|
||||
Scénario: Créer profil "Trajet quotidien"
|
||||
Quand je crée un profil nommé "Trajet quotidien"
|
||||
Et que je choisis l'icône 🚗
|
||||
Et que je configure:
|
||||
| paramètre | valeur |
|
||||
| Géolocalisation | Local |
|
||||
| Découverte | 5% |
|
||||
| Politique | Masquer |
|
||||
Et que je clique sur "Créer le profil"
|
||||
Alors le profil "🚗 Trajet quotidien" est créé
|
||||
Et je le vois dans la liste des profils
|
||||
Et je vois "Profil créé avec succès"
|
||||
|
||||
Scénario: Créer profil "Road trip"
|
||||
Quand je crée un profil nommé "Road trip"
|
||||
Et que je choisis l'icône 🛣️
|
||||
Et que je configure:
|
||||
| paramètre | valeur |
|
||||
| Géolocalisation | Régional |
|
||||
| Découverte | 30% |
|
||||
| Politique | Équilibré |
|
||||
Alors le profil est créé et sauvegardé
|
||||
|
||||
Scénario: Créer profil "Enfants" avec Mode Kids
|
||||
Quand je crée un profil nommé "Enfants"
|
||||
Et que je choisis l'icône 👶
|
||||
Et que j'active "Mode Kids"
|
||||
Alors le profil est créé avec:
|
||||
| paramètre | valeur |
|
||||
| Mode Kids | Activé |
|
||||
| Politique | Masquer (forcé) |
|
||||
| Publicité | Aucune (forcé) |
|
||||
Et les autres paramètres sont grisés/verrouillés
|
||||
|
||||
Scénario: Afficher la liste des profils
|
||||
Étant donné que j'ai créé 3 profils:
|
||||
| nom | icône | actif |
|
||||
| Trajet quotidien | 🚗 | Non |
|
||||
| Road trip | 🛣️ | Oui |
|
||||
| Enfants | 👶 | Non |
|
||||
Quand je consulte l'écran de personnalisation
|
||||
Alors je vois la section "Mes profils"
|
||||
Et je vois mes 3 profils sous forme de cartes
|
||||
Et le profil "Road trip" est marqué avec un badge "Actif"
|
||||
|
||||
Scénario: Activer un profil existant
|
||||
Étant donné que le profil "Road trip" est actif
|
||||
Et que je vois le profil "Trajet quotidien"
|
||||
Quand je clique sur la carte "Trajet quotidien"
|
||||
Alors je vois un popup de confirmation "Activer ce profil?"
|
||||
Et je vois un aperçu des paramètres du profil
|
||||
Quand je confirme
|
||||
Alors le profil "Trajet quotidien" devient actif
|
||||
Et je vois une animation de transition
|
||||
Et je vois "Profil 'Trajet quotidien' activé ✓"
|
||||
Et le badge "Actif" se déplace sur ce profil
|
||||
|
||||
Scénario: Indicateur visuel du profil actif
|
||||
Étant donné que le profil "Road trip" est actif
|
||||
Quand je consulte l'écran principal
|
||||
Alors je vois en haut de l'écran un badge "🛣️ Road trip"
|
||||
Et ce badge indique quel profil est actuellement utilisé
|
||||
Et je peux taper dessus pour switcher rapidement
|
||||
|
||||
Scénario: Switcher rapidement de profil depuis l'écran principal
|
||||
Étant donné que je suis sur l'écran principal
|
||||
Et que le profil "Road trip" est actif
|
||||
Quand je tape sur le badge "🛣️ Road trip"
|
||||
Alors je vois une liste déroulante de tous mes profils
|
||||
Quand je sélectionne "🚗 Trajet quotidien"
|
||||
Alors le profil change instantanément
|
||||
Et je vois "Profil changé"
|
||||
Et les recommandations se rechargent
|
||||
|
||||
Scénario: Modifier un profil existant
|
||||
Étant donné que j'ai un profil "Trajet quotidien"
|
||||
Quand je fais un appui long sur la carte du profil
|
||||
Alors je vois un menu contextuel avec:
|
||||
| action | icône |
|
||||
| Modifier | ✏️ |
|
||||
| Dupliquer | 📋 |
|
||||
| Supprimer | 🗑️ |
|
||||
Quand je clique sur "Modifier"
|
||||
Alors je peux modifier les paramètres du profil
|
||||
Et je sauvegarde les changements
|
||||
|
||||
Scénario: Dupliquer un profil
|
||||
Étant donné que j'ai un profil "Road trip"
|
||||
Quand je fais un appui long et choisis "Dupliquer"
|
||||
Alors un nouveau profil "Road trip (copie)" est créé
|
||||
Et il a les mêmes paramètres que l'original
|
||||
Et je peux le renommer et modifier
|
||||
|
||||
Scénario: Supprimer un profil
|
||||
Étant donné que j'ai un profil "Ancien profil"
|
||||
Quand je fais un appui long et choisis "Supprimer"
|
||||
Alors je vois une confirmation "Supprimer ce profil?"
|
||||
Quand je confirme
|
||||
Alors le profil est supprimé
|
||||
Et je vois "Profil supprimé"
|
||||
|
||||
Scénario: Impossible de supprimer le profil actif
|
||||
Étant donné que le profil "Road trip" est actif
|
||||
Quand je fais un appui long et choisis "Supprimer"
|
||||
Alors je vois "Impossible de supprimer le profil actif"
|
||||
Et je dois d'abord activer un autre profil
|
||||
|
||||
Scénario: Synchronisation profils entre devices
|
||||
Étant donné que j'ai créé 2 profils sur mon iPhone
|
||||
Quand je me connecte sur mon iPad
|
||||
Alors je vois mes 2 profils automatiquement synchronisés
|
||||
Et le profil actif sur iPhone est aussi actif sur iPad
|
||||
Et je vois "Profils synchronisés depuis iPhone"
|
||||
|
||||
Scénario: Modification profil synchronisée en temps réel
|
||||
Étant donné que j'ai ouvert l'app sur iPhone et iPad
|
||||
Quand je modifie un profil sur iPhone
|
||||
Alors le profil est mis à jour sur iPad en temps réel
|
||||
Et je vois une notification "Profil mis à jour" sur iPad
|
||||
|
||||
Scénario: Auto-switch selon contexte (détection trajet)
|
||||
Étant donné que j'ai un profil "Trajet quotidien"
|
||||
Et que l'option "Auto-switch intelligent" est activée
|
||||
Quand l'app détecte que je suis sur mon trajet habituel (GPS récurrent)
|
||||
Alors le profil "Trajet quotidien" s'active automatiquement
|
||||
Et je vois une notification "Profil 'Trajet quotidien' activé"
|
||||
Et je peux annuler en 5 secondes
|
||||
|
||||
Scénario: Désactiver l'auto-switch intelligent
|
||||
Étant donné que l'auto-switch est activé
|
||||
Quand je désactive l'option dans les paramètres
|
||||
Alors aucun changement automatique de profil n'est fait
|
||||
Et je garde le contrôle total
|
||||
|
||||
Scénario: Limitation nombre de profils
|
||||
Étant donné que j'ai créé 5 profils (maximum)
|
||||
Quand j'essaie de créer un 6ème profil
|
||||
Alors je vois "Limite de 5 profils atteinte"
|
||||
Et je dois supprimer un profil pour en créer un nouveau
|
||||
|
||||
Scénario: Blocage modification paramètres en conduite
|
||||
Étant donné que je suis en conduite (vitesse GPS > 10 km/h)
|
||||
Quand j'essaie d'ouvrir les paramètres de personnalisation
|
||||
Alors l'accès est bloqué
|
||||
Et je vois "⚠️ Configurez avant de prendre la route"
|
||||
Et je dois arrêter le véhicule pour modifier
|
||||
|
||||
Scénario: Warning au lancement app
|
||||
Quand je lance l'application pour la première fois
|
||||
Alors je vois un message de bienvenue
|
||||
Et je vois "Configurez vos préférences avant de prendre la route"
|
||||
Et je peux accéder directement aux paramètres
|
||||
Ou "Configurer plus tard"
|
||||
|
||||
Scénario: Profil par défaut pour nouveaux utilisateurs
|
||||
Étant donné que je viens de m'inscrire
|
||||
Quand j'ouvre l'app pour la première fois
|
||||
Alors un profil "Par défaut" est créé automatiquement
|
||||
Et il a les paramètres standards:
|
||||
| paramètre | valeur |
|
||||
| Géolocalisation | Équilibré |
|
||||
| Découverte | 10% |
|
||||
| Politique | Équilibré |
|
||||
|
||||
Scénario: Prévisualisation des modifications en temps réel
|
||||
Étant donné que je modifie le curseur Géolocalisation
|
||||
Quand je déplace le curseur
|
||||
Alors je vois une prévisualisation en temps réel:
|
||||
| élément | affichage |
|
||||
| Rayon géographique | Cercle sur mini-carte |
|
||||
| Nombre contenus impactés | "~250 contenus à proximité"|
|
||||
| Distance max | "100 km" |
|
||||
|
||||
Scénario: Tooltip explicatif sur chaque curseur
|
||||
Quand je tape sur l'icône ℹ️ à côté du curseur Géolocalisation
|
||||
Alors je vois un tooltip explicatif:
|
||||
"""
|
||||
Géolocalisation
|
||||
|
||||
Local: Privilégie les contenus très proches (< 50 km)
|
||||
National: Découvrez des contenus de toute la France
|
||||
|
||||
Idéal en Local pour les trajets quotidiens,
|
||||
en National pour les road trips.
|
||||
"""
|
||||
|
||||
Scénario: Exporter/Importer profils
|
||||
Étant donné que j'ai configuré mes profils parfaitement
|
||||
Quand je clique sur "Exporter mes profils"
|
||||
Alors un fichier JSON est généré
|
||||
Et je peux le partager avec un autre appareil
|
||||
Quand j'importe ce fichier sur un autre appareil
|
||||
Alors tous mes profils sont restaurés
|
||||
|
||||
Scénario: Reset profils aux valeurs par défaut
|
||||
Étant donné que j'ai modifié tous mes paramètres
|
||||
Quand je clique sur "Réinitialiser aux valeurs par défaut"
|
||||
Alors je vois une confirmation
|
||||
Quand je confirme
|
||||
Alors tous les profils sont supprimés
|
||||
Et un profil "Par défaut" est recréé
|
||||
Et je vois "Paramètres réinitialisés"
|
||||
Reference in New Issue
Block a user