Réorganise la documentation du projet selon les principes du Domain-Driven Design (DDD) pour améliorer la cohésion, la maintenabilité et l'alignement avec l'architecture modulaire du backend. **Structure cible:** ``` docs/domains/ ├── README.md (Context Map) ├── _shared/ (Core Domain) ├── recommendation/ (Supporting Subdomain) ├── content/ (Supporting Subdomain) ├── moderation/ (Supporting Subdomain) ├── advertising/ (Generic Subdomain) ├── premium/ (Generic Subdomain) └── monetization/ (Generic Subdomain) ``` **Changements effectués:** Phase 1: Création de l'arborescence des 7 bounded contexts Phase 2: Déplacement des règles métier (01-19) vers domains/*/rules/ Phase 3: Déplacement des diagrammes d'entités vers domains/*/entities/ Phase 4: Déplacement des diagrammes flux/états/séquences vers domains/*/ Phase 5: Création des README.md pour chaque domaine Phase 6: Déplacement des features Gherkin vers domains/*/features/ Phase 7: Création du Context Map (domains/README.md) Phase 8: Mise à jour de mkdocs.yml pour la nouvelle navigation Phase 9: Correction automatique des liens internes (script fix-markdown-links.sh) Phase 10: Nettoyage de l'ancienne structure (regles-metier/, diagrammes/, features/) **Configuration des tests:** - Makefile: godog run docs/domains/*/features/ - scripts/generate-bdd-docs.py: features_dir → docs/domains **Avantages:** ✅ Cohésion forte: toute la doc d'un domaine au même endroit ✅ Couplage faible: domaines indépendants, dépendances explicites ✅ Navigabilité améliorée: README par domaine = entrée claire ✅ Alignement code/docs: miroir de backend/internal/ ✅ Onboarding facilité: exploration domaine par domaine ✅ Tests BDD intégrés: features au plus près des règles métier Voir docs/REFACTOR-DDD.md pour le plan complet.
71 lines
3.0 KiB
Gherkin
71 lines
3.0 KiB
Gherkin
# language: fr
|
|
|
|
@ui @profile @privacy @mvp
|
|
Fonctionnalité: Statistiques arrondies pour protection de la vie privée
|
|
|
|
En tant qu'utilisateur
|
|
Je veux que mes statistiques publiques soient arrondies
|
|
Afin de protéger ma vie privée et éviter le tracking précis
|
|
|
|
Scénario: Arrondi du nombre d'écoutes publiques
|
|
Étant donné un créateur avec 1,234 écoutes exactes
|
|
Quand son profil public est affiché
|
|
Alors le nombre affiché est: "1.2k écoutes"
|
|
Et non pas "1,234"
|
|
Et un événement "STATS_ROUNDED_DISPLAYED" est enregistré
|
|
|
|
Scénario: Règles d'arrondi selon les volumes
|
|
Étant donné différents volumes d'écoutes
|
|
Alors l'arrondi appliqué est:
|
|
| Écoutes exactes | Affiché publiquement |
|
|
| 42 | 40 |
|
|
| 157 | 150+ |
|
|
| 1,234 | 1.2k |
|
|
| 15,678 | 15k |
|
|
| 123,456 | 120k |
|
|
| 1,234,567 | 1.2M |
|
|
Et un événement "ROUNDING_RULES_APPLIED" est enregistré
|
|
|
|
Scénario: Statistiques précises pour le créateur seulement
|
|
Étant donné un créateur "alice@roadwave.fr"
|
|
Quand elle consulte son propre dashboard
|
|
Alors elle voit les chiffres exacts: 1,234
|
|
Mais les visiteurs externes voient: 1.2k
|
|
Et un événement "PRECISE_STATS_CREATOR_VIEW" est enregistré
|
|
|
|
Scénario: Arrondi des revenus publics
|
|
Étant donné un créateur avec 1,567€ de revenus
|
|
Quand ses stats publiques sont affichées
|
|
Alors le montant est arrondi: "1.5k€"
|
|
Et les décimales exactes sont masquées
|
|
Et un événement "REVENUE_ROUNDED_PUBLIC" est enregistré
|
|
|
|
Scénario: Arrondi du nombre d'abonnés
|
|
Étant donné un créateur avec 8,743 abonnés
|
|
Alors le profil public affiche: "8.7k abonnés"
|
|
Et évite le tracking précis de croissance
|
|
Et un événement "FOLLOWERS_ROUNDED_DISPLAYED" est enregistré
|
|
|
|
Scénario: Protection contre le scraping de données
|
|
Étant donné un bot qui scrape les profils
|
|
Quand il collecte les statistiques arrondies
|
|
Alors il ne peut pas obtenir de données précises
|
|
Et le tracking temporel est rendu imprécis
|
|
Et un événement "SCRAPING_PROTECTION_ACTIVE" est enregistré
|
|
|
|
Scénario: Option de désactivation de l'arrondi pour créateurs vérifiés
|
|
Étant donné un créateur vérifié "MuseeDuLouvre"
|
|
Quand il active "Afficher statistiques exactes"
|
|
Alors les chiffres précis sont publics
|
|
Et cela renforce la transparence
|
|
Et un événement "PRECISE_STATS_PUBLIC_ENABLED" est enregistré
|
|
|
|
Scénario: Métriques d'impact de l'arrondi sur la vie privée
|
|
Étant donné que 10 000 profils affichent des stats arrondies
|
|
Alors l'impact est mesuré:
|
|
| Métrique | Valeur |
|
|
| Tentatives de tracking bloquées | 1,234 |
|
|
| Précision moyenne du scraping | -70% |
|
|
| Satisfaction utilisateurs | 4.5/5 |
|
|
Et les métriques sont exportées vers le monitoring
|