Initial commit

This commit is contained in:
jpgiannetti
2026-01-31 11:45:11 +01:00
commit f99fb3c614
166 changed files with 115155 additions and 0 deletions

View File

@@ -0,0 +1,224 @@
# language: fr
@rgpd @geoip @degraded-mode
Fonctionnalité: Mode dégradé avec GeoIP (sans GPS précis)
# 13.5 - GeoIP par défaut, GPS optionnel (progressive disclosure)
Contexte:
Étant donné que je suis un nouvel utilisateur
Et que je lance l'application pour la première fois
# Niveaux de précision
Plan du Scénario: Trois niveaux de géolocalisation disponibles
Étant donné que j'utilise le niveau de géolocalisation "<niveau>"
Quand le système détermine ma position
Alors la technologie utilisée est "<technologie>"
Et les contenus accessibles sont "<contenus>"
Et le consentement RGPD est "<consentement>"
Exemples:
| niveau | technologie | contenus | consentement |
| Pays | Aucune géoloc | Contenus nationaux uniquement | Non requis |
| Ville | GeoIP (MaxMind) | Contenus régionaux/ville | Non requis |
| Précis | GPS | Tous contenus (hyperlocaux inclus) | Requis |
# Démarrage avec GeoIP automatique
Scénario: GeoIP activé par défaut au premier lancement
Étant donné que je lance l'application pour la première fois
Et que je n'ai pas encore accepté le GPS précis
Quand l'application démarre
Alors le système utilise automatiquement GeoIP basé sur mon adresse IP
Et ma position est détectée au niveau ville: "Paris, France"
Et aucun consentement n'est requis (GeoIP ne collecte pas de données personnelles)
Et je peux accéder aux contenus régionaux et de ville
Scénario: Détection de ville avec MaxMind GeoLite2
Étant donné que mon adresse IP est 93.184.216.34
Quand le système utilise GeoIP MaxMind GeoLite2
Alors ma ville est détectée: "Paris"
Et ma région est détectée: "Île-de-France"
Et mon pays est détecté: "France"
Et la précision est d'environ 80% au niveau ville
Et aucune coordonnée GPS précise n'est révélée
# Banner in-app pour upgrade vers GPS
Scénario: Banner d'invitation à activer le GPS
Étant donné que j'utilise l'application en mode GeoIP
Quand je suis sur l'écran principal
Alors un banner discret s'affiche en haut:
"""
Activez la géolocalisation pour découvrir du contenu près de chez vous
[Activer]
"""
Et le banner n'est pas intrusif (pas de popup modale)
Et je peux le fermer temporairement avec un bouton X
Et le banner réapparaît tous les 7 jours si je ne l'active pas
Scénario: Upgrade volontaire vers GPS depuis le banner
Étant donné que le banner d'invitation au GPS est affiché
Quand je clique sur "Activer"
Alors un écran de consentement GPS s'affiche
Et l'écran explique les avantages:
"""
En activant la géolocalisation précise, vous pouvez:
- Découvrir du contenu hyperlocal près de vous
- Accéder aux audio-guides géolocalisés
- Recevoir des notifications quand vous passez près de points d'intérêt
"""
Et je peux accepter ou refuser
Et si j'accepte, la permission OS est demandée
# Contenus accessibles selon le niveau
Scénario: Contenus disponibles en mode Pays (aucune géoloc)
Étant donné que je n'autorise aucune géolocalisation
Quand le système recherche du contenu à me proposer
Alors seuls les contenus "National" sont disponibles
Et les contenus géolocalisés (Ancré, Contextuel) ne sont pas proposés
Et je vois un message: "Activez la géolocalisation pour plus de contenu local"
Scénario: Contenus disponibles en mode Ville (GeoIP)
Étant donné que j'utilise le mode GeoIP et que je suis détecté à Paris
Quand le système recherche du contenu à me proposer
Alors les contenus suivants sont disponibles:
| type_contenu | disponible |
| National | oui |
| Région Île-de-France | oui |
| Ville Paris | oui |
| Hyperlocal (GPS) | non |
| Audio-guides | non |
Et je reçois des recommandations pertinentes pour Paris
Scénario: Tous contenus disponibles en mode Précis (GPS)
Étant donné que j'ai activé la géolocalisation précise
Quand le système recherche du contenu à me proposer
Alors tous les types de contenus sont disponibles:
| type_contenu | disponible |
| National | oui |
| Régional | oui |
| Ville | oui |
| Hyperlocal (Ancré) | oui |
| Contextuel | oui |
| Audio-guides | oui |
# Pas de consentement requis pour GeoIP
Scénario: GeoIP ne nécessite pas de consentement RGPD
Étant donné que j'utilise le mode GeoIP
Quand un auditeur CNIL vérifie la conformité
Alors GeoIP n'est pas considéré comme une donnée personnelle
Et l'adresse IP n'est pas conservée après détection de la ville
Et seule la ville est stockée (non identifiant)
Et aucun consentement n'est requis conformément au RGPD
# Implémentation MaxMind GeoLite2
Scénario: Base de données MaxMind self-hosted
Étant donné que RoadWave utilise MaxMind GeoLite2
Quand on analyse l'infrastructure
Alors la base de données GeoLite2 est hébergée sur les serveurs RoadWave
Et aucune requête n'est envoyée à un service tiers
Et la base de données est mise à jour automatiquement chaque mois
Et le coût est de 0 (GeoLite2 est gratuit)
Scénario: Mise à jour mensuelle de la base GeoIP
Étant donné que MaxMind publie des mises à jour mensuelles
Quand le 1er du mois arrive
Alors un job automatique télécharge la nouvelle base GeoLite2
Et la base est mise à jour sans interruption de service
Et un log est créé pour traçabilité
Et si la mise à jour échoue, une alerte est envoyée
# Progressive disclosure - UX dégradée acceptable
Scénario: UX acceptable en mode GeoIP
Étant donné que j'utilise le mode GeoIP à Paris
Quand je parcours l'application
Alors je peux écouter du contenu pertinent pour Paris et l'Île-de-France
Et l'expérience est satisfaisante même sans GPS précis
Et je ne suis pas bloqué dans l'utilisation de l'application
Et je peux choisir d'activer le GPS quand je le souhaite
Scénario: Incitation progressive à activer le GPS
Étant donné que j'utilise le mode GeoIP depuis 2 semaines
Et que je n'ai pas activé le GPS
Quand je consulte un audio-guide dans les résultats de recherche
Alors un message s'affiche:
"""
Cet audio-guide nécessite la géolocalisation précise pour fonctionner.
[Activer le GPS] [Plus tard]
"""
Et si je clique "Plus tard", je peux continuer à utiliser l'app normalement
Et l'incitation reste douce et non intrusive
# Passage d'un mode à l'autre
Scénario: Upgrade GeoIP vers GPS
Étant donné que j'utilise le mode GeoIP
Quand j'active la géolocalisation précise
Alors le système bascule immédiatement en mode GPS
Et les contenus hyperlocaux deviennent disponibles
Et mon feed se rafraîchit avec du contenu plus précis
Et un toast de confirmation s'affiche: "Géolocalisation activée"
Scénario: Downgrade GPS vers GeoIP
Étant donné que j'utilise le mode GPS précis
Quand je désactive la géolocalisation dans les paramètres OS
Alors le système bascule automatiquement en mode GeoIP
Et les contenus hyperlocaux ne sont plus proposés
Et un banner s'affiche: "Géolocalisation désactivée. Seul le contenu régional est disponible."
Et l'application continue de fonctionner normalement
# Détection automatique du mode
Scénario: Détection automatique au démarrage de l'app
Étant donné que j'ouvre l'application
Quand l'app vérifie les permissions de géolocalisation
Alors le système détecte automatiquement le mode disponible:
| permission GPS | consentement app | mode activé |
| Refusée | Non demandé | Pays |
| Refusée | Accepté | GeoIP |
| Accordée | Accepté | GPS précis |
Et le mode est appliqué sans interaction utilisateur
# Précision GeoIP ~80%
Scénario: Précision acceptable pour la plupart des cas
Étant donné que j'habite à Lyon
Et que mon IP est une IP résidentielle standard
Quand le système utilise GeoIP pour me localiser
Alors la ville détectée est "Lyon" (correct à 80%)
Et dans 20% des cas, la ville peut être légèrement erronée (banlieue proche)
Et cette précision est suffisante pour proposer du contenu régional pertinent
Scénario: GeoIP avec VPN ou proxy
Étant donné que j'utilise un VPN avec une IP sortante à Paris
Mais que je suis physiquement à Lyon
Quand le système utilise GeoIP
Alors la ville détectée est "Paris" (IP du VPN)
Et les contenus proposés sont pour Paris
Et je peux activer le GPS précis pour corriger la localisation
# Conformité RGPD
Scénario: Pas de donnée personnelle collectée avec GeoIP
Étant donné que j'utilise le mode GeoIP
Quand le système détermine ma ville via mon IP
Alors l'adresse IP n'est pas conservée après détection
Et seule la ville "Paris" est stockée en base de données
Et la ville seule n'est pas une donnée personnelle (RGPD)
Et aucun consentement n'est donc requis
# Coût de la solution: 0€
Scénario: Solution GeoIP gratuite et self-hosted
Étant donné que RoadWave utilise MaxMind GeoLite2
Quand on calcule le coût de la solution
Alors le coût est de 0
Et la solution est opensource
Et la base de données est hébergée sur les serveurs RoadWave
Et aucun coût SaaS tiers