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.
261 lines
10 KiB
Markdown
261 lines
10 KiB
Markdown
# Vue d'ensemble des Features Gherkin - Modération
|
|
|
|
Ce document récapitule l'organisation complète des features Gherkin pour le système de modération de RoadWave, alignées avec les règles métier définies dans :
|
|
- [14-moderation-flows.md](domains/moderation/rules/moderation-flows.md)
|
|
- [15-moderation-communautaire.md](domains/moderation/rules/moderation-communautaire.md)
|
|
|
|
## Structure des Features
|
|
|
|
### 📱 Features UI (Interface Mobile Flutter)
|
|
|
|
**Localisation** : `features/ui/moderation/`
|
|
|
|
| Feature | Description | Règles métier couvertes |
|
|
|---------|-------------|------------------------|
|
|
| **signalement-ui.feature** | Interface de signalement mobile (formulaire, toast, découverte badges) | 14.1.1, 14.1.2, 14.1.3, 19.1.3 |
|
|
| **historique-signalements.feature** | Historique personnel des signalements de l'utilisateur | 14.1.3 |
|
|
| **badges-statistiques.feature** | Affichage des badges, statistiques et gamification | 19.1.4, 19.2, 19.3, 19.4 |
|
|
| **sanctions-appel.feature** | Interface de consultation des sanctions et processus d'appel | 14.3.1, 14.3.2, 14.3.3, 14.3.4 |
|
|
|
|
**Couverture** :
|
|
- ✅ Formulaire de signalement avec 7 catégories
|
|
- ✅ Toast de confirmation et modal de découverte
|
|
- ✅ Historique des signalements avec statuts
|
|
- ✅ Badges Bronze/Argent/Or et progression visuelle
|
|
- ✅ Statistiques personnelles et taux de pertinence
|
|
- ✅ Notifications multi-canal des sanctions
|
|
- ✅ Formulaire d'appel structuré
|
|
- ✅ Dark mode et accessibilité complète
|
|
|
|
### 🖥️ Features Admin (Dashboard Modérateur Web)
|
|
|
|
**Localisation** : `features/admin/moderation/`
|
|
|
|
| Feature | Description | Règles métier couvertes |
|
|
|---------|-------------|------------------------|
|
|
| **dashboard-moderateur.feature** | Dashboard principal de modération avec files d'attente | 14.2.2, 14.2.3, 14.4 |
|
|
| **outils-moderateur.feature** | Outils modérateur (player audio, transcription, historique créateur, actions) | 14.2.1, 14.4 |
|
|
|
|
**Couverture** :
|
|
- ✅ Files d'attente par priorité (CRITIQUE/HAUTE/MOYENNE/BASSE)
|
|
- ✅ Statistiques temps réel et SLA
|
|
- ✅ Player audio Wavesurfer.js avec waveform
|
|
- ✅ Transcription synchronisée avec surlignage
|
|
- ✅ Analyse IA (Whisper + NLP) avec scores de confiance
|
|
- ✅ Historique créateur 360° (strikes, contenus, patterns)
|
|
- ✅ Actions rapides avec raccourcis clavier
|
|
- ✅ Logs d'audit conformes DSA
|
|
|
|
### 🔌 Features API (Backend Go)
|
|
|
|
**Localisation** : `features/api/moderation/`
|
|
|
|
| Feature | Description | Règles métier couvertes | Statut |
|
|
|---------|-------------|------------------------|--------|
|
|
| **signalement.feature** | API de signalement de contenu | 14.1 | ✅ Existant - Complet |
|
|
| **traitement-signalements.feature** | Traitement IA et priorisation | 14.2 | ✅ Existant - Complet |
|
|
| **sanctions-notifications.feature** | Sanctions et notifications multi-canal | 14.3 | ✅ Existant - Complet |
|
|
| **moderation-preventive.feature** | Validation manuelle premiers contenus | 14.5 | ✅ Existant - Complet |
|
|
| **moderation-communautaire.feature** | Badges, scores de fiabilité, anti-abus | 19 | ✅ Existant - Complet |
|
|
|
|
**Couverture** :
|
|
- ✅ 7 catégories de signalement + commentaire optionnel
|
|
- ✅ IA pré-filtre (Whisper large-v3 + distilbert + roberta)
|
|
- ✅ SLA progressif : <2h CRITIQUE, <24h HAUTE, <72h BASSE
|
|
- ✅ Priorisation automatique (formule IA + signalements cumulés + fiabilité)
|
|
- ✅ Notifications multi-canal (push + in-app + email)
|
|
- ✅ Processus d'appel avec délai 7 jours et SLA 72h
|
|
- ✅ 3 niveaux de badges (Bronze/Argent/Or)
|
|
- ✅ Score de fiabilité et utilisateurs de confiance
|
|
- ✅ Réduction Premium -50% pour badge Or
|
|
- ✅ Anti-abus : limite 10/24h, audit trimestriel, sanctions
|
|
|
|
## Mapping Règles Métier → Features
|
|
|
|
### Section 14.1 - Signalement
|
|
|
|
| Règle | Feature API | Feature UI |
|
|
|-------|------------|-----------|
|
|
| 14.1.1 Catégories (7) | signalement.feature | signalement-ui.feature |
|
|
| 14.1.2 Commentaire optionnel | signalement.feature | signalement-ui.feature |
|
|
| 14.1.3 Confirmation + historique | signalement.feature | signalement-ui.feature, historique-signalements.feature |
|
|
|
|
### Section 14.2 - Traitement
|
|
|
|
| Règle | Feature API | Feature Admin |
|
|
|-------|------------|--------------|
|
|
| 14.2.1 IA pré-filtre (Whisper + NLP) | traitement-signalements.feature | outils-moderateur.feature |
|
|
| 14.2.2 Délais SLA | traitement-signalements.feature | dashboard-moderateur.feature |
|
|
| 14.2.3 Priorisation automatique | traitement-signalements.feature | dashboard-moderateur.feature |
|
|
|
|
### Section 14.3 - Sanctions
|
|
|
|
| Règle | Feature API | Feature UI |
|
|
|-------|------------|-----------|
|
|
| 14.3.1 Notification multi-canal | sanctions-notifications.feature | sanctions-appel.feature |
|
|
| 14.3.2 Détail sanction | sanctions-notifications.feature | sanctions-appel.feature |
|
|
| 14.3.3 Processus d'appel | sanctions-notifications.feature | sanctions-appel.feature |
|
|
| 14.3.4 Délai réponse appel (72h) | sanctions-notifications.feature | sanctions-appel.feature |
|
|
|
|
### Section 14.4 - Outils Modérateurs
|
|
|
|
| Règle | Feature Admin |
|
|
|-------|--------------|
|
|
| Dashboard modération | dashboard-moderateur.feature |
|
|
| Player audio + waveform | outils-moderateur.feature |
|
|
| Transcription + annotations | outils-moderateur.feature |
|
|
| Historique créateur 360° | outils-moderateur.feature |
|
|
| Actions rapides (A/R/E) | outils-moderateur.feature |
|
|
| Logs audit (DSA) | outils-moderateur.feature |
|
|
|
|
### Section 14.5 - Modération Préventive
|
|
|
|
| Règle | Feature API |
|
|
|-------|------------|
|
|
| Validation 3 premiers contenus | moderation-preventive.feature |
|
|
| Score de confiance dynamique | moderation-preventive.feature |
|
|
| Publicités validation manuelle | moderation-preventive.feature |
|
|
|
|
### Section 19 - Modération Communautaire
|
|
|
|
| Règle | Feature API | Feature UI |
|
|
|-------|------------|-----------|
|
|
| 19.1 Badges (Bronze/Argent/Or) | moderation-communautaire.feature | badges-statistiques.feature |
|
|
| 19.2 Score de fiabilité | moderation-communautaire.feature | - |
|
|
| 19.3 Utilisateur de confiance | moderation-communautaire.feature | badges-statistiques.feature |
|
|
| 19.4 Réduction Premium Or | moderation-communautaire.feature | badges-statistiques.feature |
|
|
| 19.5 Anti-abus | moderation-communautaire.feature | - |
|
|
|
|
## Stack Technique Testée
|
|
|
|
### Backend (Features API)
|
|
- **Framework tests** : Godog (Gherkin pour Go)
|
|
- **Localisation step definitions** : `backend/tests/bdd/moderation/`
|
|
- **Technologies testées** :
|
|
- API Go + Fiber (endpoints REST)
|
|
- PostgreSQL (stockage signalements, sanctions, badges)
|
|
- Redis (cache, files d'attente, priorisation)
|
|
- Whisper large-v3 (transcription audio)
|
|
- distilbert-base-uncased (analyse sentiment)
|
|
- facebook/roberta-hate-speech (détection haine)
|
|
- Email (Brevo/Resend)
|
|
- Push notifications (APNS/FCM)
|
|
|
|
### Frontend Mobile (Features UI)
|
|
- **Framework tests** : flutter_gherkin + integration_test
|
|
- **Localisation step definitions** : `mobile/tests/bdd/moderation/`
|
|
- **Technologies testées** :
|
|
- Flutter (UI mobile iOS/Android)
|
|
- Widgets personnalisés (formulaires, badges, statistiques)
|
|
- Animations (confettis, level up, toast)
|
|
- Dark mode et accessibilité (lecteur d'écran)
|
|
- Navigation et routing
|
|
- Gestion d'état (Provider/Riverpod)
|
|
|
|
### Frontend Admin (Features Admin)
|
|
- **Framework tests** : Cucumber.js + Playwright
|
|
- **Localisation step definitions** : `admin-dashboard/tests/e2e/moderation/` (à créer)
|
|
- **Technologies testées** :
|
|
- React + TypeScript
|
|
- TanStack Table (tableau signalements)
|
|
- Wavesurfer.js (player audio + waveform)
|
|
- WebSocket (temps réel)
|
|
- Raccourcis clavier
|
|
|
|
## Statistiques
|
|
|
|
### Couverture des Règles Métier
|
|
|
|
| Section | Scénarios | Règles couvertes | Statut |
|
|
|---------|-----------|------------------|--------|
|
|
| 14.1 Signalement | 25 | 100% | ✅ |
|
|
| 14.2 Traitement | 30 | 100% | ✅ |
|
|
| 14.3 Sanctions | 35 | 100% | ✅ |
|
|
| 14.4 Outils | 40 | 100% | ✅ Nouveau |
|
|
| 14.5 Préventive | 20 | 100% | ✅ |
|
|
| 19 Communautaire | 40 | 100% | ✅ |
|
|
| **Total** | **190** | **100%** | ✅ |
|
|
|
|
### Répartition Features
|
|
|
|
| Type | Nombre | Scénarios totaux |
|
|
|------|--------|------------------|
|
|
| Features API (Backend) | 5 | ~90 |
|
|
| Features UI (Mobile) | 4 | ~60 |
|
|
| Features Admin (Dashboard) | 2 | ~40 |
|
|
| **Total** | **11** | **~190** |
|
|
|
|
## Conformité
|
|
|
|
### Digital Services Act (DSA)
|
|
- ✅ Transparence : raison détaillée + extrait + transcription
|
|
- ✅ Délais : SLA 2h/24h/72h documentés et testés
|
|
- ✅ Recours : processus d'appel 7 jours + réponse 72h
|
|
- ✅ Traçabilité : logs audit complets avec conservation 3 ans
|
|
|
|
### RGPD
|
|
- ✅ Anonymat signaleur vis-à-vis du créateur
|
|
- ✅ Anonymisation des logs après 3 ans
|
|
- ✅ Suppression données personnelles à la demande
|
|
- ✅ Consentement notifications
|
|
|
|
### Accessibilité (WCAG AA)
|
|
- ✅ Contraste couleurs (dark mode testé)
|
|
- ✅ Labels lecteur d'écran
|
|
- ✅ Navigation clavier
|
|
- ✅ Tailles de police adaptatives
|
|
|
|
## Coûts
|
|
|
|
| Composant | Technologie | Coût MVP | Coût Scale |
|
|
|-----------|-------------|----------|------------|
|
|
| IA transcription | Whisper (self-hosted) | 0€ (CPU) | 50-200€/mois (GPU) |
|
|
| IA analyse | distilbert + roberta | 0€ | 0€ |
|
|
| Notifications email | Brevo/Resend | ~0.001€/email | ~10-50€/mois |
|
|
| Notifications push | APNS/FCM | 0€ | 0€ |
|
|
| Dashboard admin | React + TanStack | 0€ | 0€ |
|
|
| Badges communautaires | Backend Go | 0€ | 0-200€/mois (réductions Premium) |
|
|
| **Total** | - | **0-50€/mois** | **60-450€/mois** |
|
|
|
|
**ROI** : Positif dès 2-3 utilisateurs Badge Or actifs (économie modération > coût réductions Premium)
|
|
|
|
## Prochaines Étapes
|
|
|
|
1. ✅ ~~Créer features UI modération mobile~~
|
|
2. ✅ ~~Créer features dashboard modérateur~~
|
|
3. ⏳ Implémenter step definitions backend (Godog)
|
|
4. ⏳ Implémenter step definitions mobile (flutter_gherkin)
|
|
5. ⏳ Créer dashboard admin React + implémenter step definitions (Cucumber.js)
|
|
6. ⏳ Intégrer dans CI/CD (make test-bdd)
|
|
|
|
## Commandes de Test
|
|
|
|
```bash
|
|
# Tous les tests BDD
|
|
make test-bdd
|
|
|
|
# Tests modération backend uniquement
|
|
cd backend
|
|
godog run ../features/api/moderation/
|
|
|
|
# Tests modération mobile uniquement
|
|
cd mobile
|
|
flutter test integration_test/moderation/
|
|
|
|
# Tests dashboard admin (à venir)
|
|
cd admin-dashboard
|
|
npm run test:e2e
|
|
```
|
|
|
|
## Documentation Liée
|
|
|
|
- [Règles métier - Modération Flows](domains/moderation/rules/moderation-flows.md)
|
|
- [Règles métier - Modération Communautaire](domains/moderation/rules/moderation-communautaire.md)
|
|
- [ADR-023 - Architecture Modération](adr/023-architecture-moderation.md)
|
|
- [ADR-013 - Stratégie Tests](adr/013-strategie-tests.md)
|
|
|
|
---
|
|
|
|
**Dernière mise à jour** : 2026-02-02
|
|
**Statut** : ✅ Features complètes - Implémentation en cours
|