Files
roadwave/docs/domains/moderation/features/api/moderation-communautaire.feature
jpgiannetti 5e5fcf4714 refactor(docs): réorganiser la documentation selon principes DDD
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.
2026-02-07 17:15:02 +01:00

398 lines
17 KiB
Gherkin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# language: fr
@moderation @community
Fonctionnalité: Modération communautaire - Badges et récompenses
En tant que plateforme
Je veux gamifier les signalements pertinents
Afin d'améliorer la qualité des signalements et réduire la charge modérateurs
# 19. Modération Communautaire - Badges et Récompenses
Contexte:
Étant donné que le système de modération communautaire est actif
# 19.1 - Système de badges
Scénario: Trois niveaux de badges disponibles
Étant donné que je consulte le système de badges
Quand je vois les badges disponibles
Alors 3 niveaux de badges existent:
| badge | nom | critères | avantages |
| 🥉 | Contributeur Bronze | 5 validés + 70% pertinence | Signalements prioritaires (+10 points) |
| 🥈 | Contributeur Argent | 20 validés + 80% pertinence | +20 points + Badge visible profil |
| 🥇 | Contributeur Or | 50 validés + 90% pertinence | +30 points + Badge + Réduction Premium |
Et les badges valorisent la qualité plutôt que la quantité
Scénario: Règles d'éligibilité aux badges
Étant donné que je veux obtenir un badge
Quand je consulte les règles d'éligibilité
Alors les critères suivants s'appliquent:
| règle | valeur |
| Minimum signalements envoyés pour éligibilité | 10 |
| Signalements "En cours" comptent dans le calcul | non |
| Signalements rejetés font baisser le taux | oui |
| Période de calcul (glissante) | 6 mois |
Et seuls les 6 derniers mois sont pris en compte
Scénario: Calcul du taux de pertinence
Étant donné que j'ai envoyé 20 signalements
Et que 16 ont été validés par les modérateurs
Et que 4 ont été rejetés
Quand le système calcule mon taux de pertinence
Alors la formule appliquée est "Signalements validés / Total signalements × 100"
Et mon taux est de 80% (16 / 20 × 100)
Et ce taux détermine mon éligibilité aux badges
Scénario: Obtention du badge Bronze
Étant donné que j'ai 10 signalements envoyés
Et que 7 signalements ont été validés
Et que mon taux de pertinence est de 70%
Quand le système évalue mon éligibilité
Alors j'obtiens le badge 🥉 Contributeur Bronze
Et je reçois une notification:
"""
🎉 Félicitations ! Vous êtes désormais Contributeur Bronze.
Merci de rendre RoadWave meilleur !
"""
Et mes futurs signalements gagnent +10 points de priorité
Scénario: Obtention du badge Argent
Étant donné que j'ai déjà le badge Bronze
Et que j'ai 25 signalements envoyés
Et que 20 signalements ont été validés
Et que mon taux de pertinence est de 80%
Et que 30 jours se sont écoulés depuis l'obtention du badge Bronze
Quand le système évalue mon éligibilité
Alors j'obtiens le badge 🥈 Contributeur Argent
Et je reçois une notification:
"""
🎉 Impressionnant ! Badge Contributeur Argent obtenu.
Votre engagement fait la différence !
"""
Et le badge est visible sur mon profil public
Et mes futurs signalements gagnent +20 points de priorité
Scénario: Obtention du badge Or
Étant donné que j'ai déjà le badge Argent
Et que j'ai 60 signalements envoyés
Et que 54 signalements ont été validés
Et que mon taux de pertinence est de 90%
Et que 60 jours se sont écoulés depuis l'obtention du badge Argent
Quand le système évalue mon éligibilité
Alors j'obtiens le badge 🥇 Contributeur Or
Et je reçois une notification:
"""
🎉 Exceptionnel ! Vous êtes Contributeur Or.
La communauté vous remercie pour votre aide précieuse !
"""
Et je bénéficie d'une réduction Premium -50% pendant 3 mois
Et mes futurs signalements gagnent +30 points de priorité
Scénario: Délai minimum entre niveaux de badges
Étant donné que j'ai obtenu le badge Bronze il y a 15 jours
Et que je remplis les critères pour le badge Argent
Quand le système évalue mon éligibilité
Alors je ne peux pas encore obtenir le badge Argent
Et je dois attendre 15 jours supplémentaires (30 jours minimum)
Et cela évite la montée en badge trop rapide (anti-farming)
# 19.1.3 - Découverte du système
Scénario: Modal d'information au premier signalement
Étant donné que je viens d'envoyer mon tout premier signalement
Et que le toast de confirmation standard s'est affiché
Quand exactement 2 secondes se sont écoulées
Alors une modal d'information s'affiche automatiquement
Et la modal explique le système de badges et récompenses
Et la modal contient le titre "🎯 Bravo ! Vous contribuez à une communauté plus saine"
Et la modal contient le message suivant:
"""
En signalant ce contenu, vous participez activement à améliorer
l'expérience de tous les utilisateurs RoadWave.
Vos contributions de qualité sont valorisées et récompensées :
🥉 Bronze : 5 signalements validés
Signalements prioritaires (+10 points)
🥈 Argent : 20 signalements validés
Badge visible + priorité accrue (+20 points)
🥇 Or : 50 signalements validés
Réduction Premium -50% pendant 3 mois
💡 Votre taux de pertinence compte !
Formule : Signalements validés ÷ Total × 100
Continuez à nous aider, chaque signalement pertinent compte ! 🙏
"""
Et la modal contient un bouton "En savoir plus" qui redirige vers la page dédiée badges
Et la modal contient un bouton "J'ai compris" qui ferme la modal
Et la modal ne se réaffiche jamais (flag "badge_modal_seen" en base de données)
Et le délai de 2 secondes permet de laisser l'utilisateur lire le toast de confirmation d'abord
# 19.1.4 - Affichage badges et statistiques
Scénario: Statistiques personnelles visibles
Étant donné que j'ai un badge Bronze
Quand je consulte "Profil > Mes signalements"
Alors je vois mes statistiques de modération:
"""
📊 Vos statistiques de modération
Signalements envoyés : 27
Validés : 23
Rejetés : 4
Taux de pertinence : 85%
Badge actuel : 🥉 Contributeur Bronze
Prochain palier : 🥈 Contributeur Argent (17 signalements validés restants)
"""
Et je vois ma progression vers le prochain badge
Scénario: Toast après validation de signalement
Étant donné que j'ai un badge Bronze (3/5 signalements validés)
Et que j'envoie un nouveau signalement
Quand le modérateur valide mon signalement
Alors je reçois un toast:
"""
Bravo ! Votre signalement a aidé la communauté.
Progression : 4/5 pour badge Bronze 🥉
"""
Et je vois ma progression vers le badge suivant
Scénario: Toast après rejet de signalement
Étant donné que j'ai un taux de pertinence de 65%
Et que j'envoie un nouveau signalement
Quand le modérateur rejette mon signalement
Alors je reçois un toast:
"""
Signalement non retenu.
Taux de pertinence : 60%.
Continuez vos efforts !
"""
Et je vois l'impact sur mon taux de pertinence
# 19.2 - Score de fiabilité
Scénario: Calcul du score de fiabilité
Étant donné que j'ai 15 signalements validés
Et que j'ai 3 signalements rejetés
Et que j'ai le badge Or actif
Quand le système calcule mon score de fiabilité
Alors la formule appliquée est:
"""
Score fiabilité = min(100, (Validés × 10 - Rejetés × 5 + Bonus_Or × 20))
"""
Et mon score est: min(100, (15 × 10 - 3 × 5 + 1 × 20)) = 100 (plafonné)
Et ce score est utilisé dans l'algorithme de priorisation
Scénario: Utilisation du score dans la priorisation
Étant donné que j'ai un score de fiabilité de 85/100
Et qu'un autre utilisateur a un score de 30/100
Quand nous signalons des contenus similaires
Alors mon signalement a un meilleur score de priorité
Et mon signalement est traité en premier
Et la formule de priorité inclut:
"""
Priorité = (Score_IA × 0.7) + (Signalements_cumulés × 0.2) + (Fiabilité_signaleur × 0.1)
"""
Et la fiabilité est normalisée : 85/100 = 0.85
# 19.3 - Statut "Utilisateur de confiance"
Scénario: Obtention automatique du statut de confiance
Étant donné que j'obtiens le badge Argent
Quand mon statut est mis à jour
Alors je deviens automatiquement "Utilisateur de confiance"
Et mes signalements sont traités en priorité (même score IA)
Et je reçois des notifications sous 12h (au lieu de 24-48h)
Et le badge "Utilisateur de confiance" s'affiche sur mon profil
Scénario: Révocation du statut de confiance
Étant donné que je suis "Utilisateur de confiance"
Et que je perds mon badge Argent après audit trimestriel
Quand mon statut est réévalué
Alors le statut "Utilisateur de confiance" est révoqué
Et je reviens au statut normal
Et aucune sanction supplémentaire n'est appliquée
# 19.4 - Réduction Premium pour badge Or
Scénario: Notification de réduction Premium au badge Or
Étant donné que j'obtiens le badge Contributeur Or
Quand la notification est envoyée
Alors je reçois un email + push + in-app:
"""
🎉 Exceptionnel ! Vous avez obtenu le badge Contributeur Or
Vous faites partie des meilleurs contributeurs de RoadWave.
Grâce à votre engagement et votre vigilance, vous aidez
des milliers d'utilisateurs à profiter d'une expérience audio de qualité.
La communauté vous remercie ! 🙏
En reconnaissance de votre aide précieuse, vous bénéficiez de :
3 mois d'abonnement Premium à -50%
2.49/mois au lieu de 4.99
[Profiter de l'offre]
Cette offre est valable pendant 30 jours.
"""
Et l'offre est valable pendant 30 jours
Scénario: Activation de la réduction Premium Or
Étant donné que j'ai obtenu le badge Or
Et que j'ai reçu l'offre Premium -50%
Quand je clique sur "Profiter de l'offre" dans les 30 jours
Alors je souscris à Premium à 2.49/mois
Et la réduction est valable pour 3 mois
Et après 3 mois, le renouvellement passe à 4.99/mois
Et l'offre n'est pas cumulable avec l'offre annuelle
Scénario: Expiration de l'offre Premium après 30 jours
Étant donné que j'ai obtenu le badge Or il y a 31 jours
Et que je n'ai pas activé l'offre Premium -50%
Quand j'essaie d'activer l'offre
Alors l'offre a expiré
Et je vois le message "Votre offre Premium -50% a expiré"
Et mon badge Or est conservé (seule l'offre expire)
Et je ne peux plus bénéficier de la réduction
Scénario: Rappels avant expiration de l'offre
Étant donné que j'ai obtenu le badge Or
Et que je n'ai pas encore activé l'offre Premium
Quand il reste 7 jours avant l'expiration
Alors je reçois un email + push:
"""
Il vous reste 7 jours pour profiter de votre réduction Premium -50%
"""
Et quand il reste 1 jour, je reçois un dernier rappel:
"""
Dernière chance ! Votre réduction Premium -50% expire demain
"""
Scénario: Perte du badge Or pendant l'abonnement Premium
Étant donné que j'ai le badge Or et l'abonnement Premium -50% actif
Et que je perds le badge Or après un audit trimestriel
Quand mon abonnement arrive à échéance
Alors l'abonnement en cours reste actif jusqu'à sa fin normale
Mais le renouvellement se fait à prix normal 4.99/mois
Et je ne peux pas réobtenir l'offre -50% même si je récupère le badge Or
# 19.5 - Anti-abus
Scénario: Limite de 10 signalements par 24h
Étant donné que j'ai déjà envoyé 10 signalements aujourd'hui
Quand j'essaie d'envoyer un 11ème signalement
Alors le signalement est automatiquement rejeté
Et je vois le message:
"""
Limite quotidienne atteinte (10 signalements/24h).
Réessayez demain.
"""
Et une alerte modérateur automatique est déclenchée
Scénario: Détection de signalement massif suspect
Étant donné que j'ai envoyé 35 signalements cette semaine
Quand l'audit automatique hebdomadaire s'exécute
Alors mon compte est détecté comme suspect (>30/semaine)
Et une enquête manuelle modérateur est déclenchée
Et le modérateur peut révoquer mon badge si abus confirmé
Scénario: Patterns suspects détectés
Étant donné que le système analyse mes patterns de signalement
Quand des comportements suspects sont identifiés:
| pattern | seuil |
| Signalement massif | >30/semaine |
| Taux de pertinence très faible | <50% |
| Tous signalements rejetés sur 7 jours | 100% rejet |
| Signalements ciblant toujours même créateur | Harcèlement |
Alors une enquête manuelle est déclenchée
Et le modérateur examine les signalements en détail
Scénario: Audit trimestriel automatique des badges
Étant donné que le système effectue l'audit trimestriel
Quand mon badge est audité
Alors le système recalcule mon taux de pertinence sur 6 mois glissants
Et vérifie les critères:
| badge | taux minimum |
| Bronze | 70% |
| Argent | 80% |
| Or | 90% |
Et si mon taux est insuffisant, mon badge est révoqué
Scénario: Email de prévention 7 jours avant audit
Étant donné que l'audit trimestriel arrive dans 7 jours
Et que mon taux de pertinence est de 78%
Et que j'ai un badge Argent (minimum 80% requis)
Quand le système envoie les notifications préventives
Alors je reçois un email:
"""
Votre badge Contributeur Argent sera audité dans 7 jours.
Taux de pertinence actuel : 78%
Minimum requis : 80%
Continuez à signaler du contenu pertinent pour conserver votre badge !
"""
Et je suis informé à l'avance pour améliorer mes signalements
Scénario: Résultat d'audit - Badge conservé
Étant donné que l'audit trimestriel vient d'être effectué
Et que mon taux de pertinence est de 85%
Et que j'ai un badge Argent (minimum 80% requis)
Quand je reçois le résultat
Alors je reçois un email: "Badge conservé ✓"
Et mon badge reste actif pour 3 mois supplémentaires
Scénario: Résultat d'audit - Badge révoqué
Étant donné que l'audit trimestriel vient d'être effectué
Et que mon taux de pertinence est de 75%
Et que j'ai un badge Argent (minimum 80% requis)
Quand je reçois le résultat
Alors je reçois un email: "Badge révoqué ✗"
Et mon badge Argent est révoqué immédiatement
Mais je peux réobtenir un badge ultérieurement (pas de ban)
Scénario: Sanctions pour abus détecté - Mineur
Étant donné que j'ai envoyé >10 signalements/jour pendant 1 jour
Quand l'abus mineur est détecté
Alors je reçois un avertissement
Et ma limite est réduite à 5 signalements/jour pendant 7 jours
Et je reçois une notification explicative
Scénario: Sanctions pour abus détecté - Modéré
Étant donné que j'ai envoyé >30 signalements/semaine
Et que mon taux de pertinence est <50%
Quand l'abus modéré est confirmé
Alors tous mes badges sont révoqués
Et je suis interdit de signalement pendant 30 jours
Et je reçois une notification de sanction
Scénario: Sanctions pour abus détecté - Grave
Étant donné que j'ai participé à un farming coordonné de signalements
Quand l'abus grave est confirmé par modérateur
Alors je reçois un ban permanent de la fonctionnalité signalement
Et tous mes badges sont révoqués définitivement
Et il n'y a pas de recours possible pour farming confirmé
# ROI et justification
Scénario: ROI positif de la modération communautaire
Étant donné que 10 utilisateurs Or sont actifs
Quand on calcule le ROI
Alors chaque utilisateur Or économise 5-10h de modération/mois
Et cela représente 75-150 économisés par utilisateur (taux 15/h)
Et le total est de 750-1500 économisés/mois
Et le coût des réductions Premium est maximum 200/mois (50 utilisateurs Or)
Et le ROI est positif dès 2-3 utilisateurs Or actifs
Scénario: Coût total du système
Étant donné que le système de modération communautaire est en place
Quand on calcule le coût total
Alors en phase MVP, le coût est de 0
Et en phase Post-MVP avec réductions Premium, le coût est de 0-200/mois
Et le système est entièrement automatique (0 développement continu)
Et le ROI est largement positif