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.
This commit is contained in:
jpgiannetti
2026-02-07 17:15:02 +01:00
parent 78422bb2c0
commit 5e5fcf4714
227 changed files with 1413 additions and 1967 deletions

View File

@@ -0,0 +1,84 @@
# language: fr
Fonctionnalité: Connexion utilisateur
En tant qu'utilisateur existant
Je veux me connecter à mon compte
Afin d'accéder à mes contenus et paramètres
Contexte:
Étant donné que l'API RoadWave est disponible
Et qu'un utilisateur existe avec:
| email | mot_de_passe |
| user@test.fr | Password123 |
Scénario: Connexion réussie avec identifiants valides
Quand je me connecte avec:
| email | mot_de_passe |
| user@test.fr | Password123 |
Alors je suis connecté avec succès
Et je reçois un access token valide pour 15 minutes
Et je reçois un refresh token valide pour 30 jours
Scénario: Connexion échouée avec email inexistant
Quand je me connecte avec l'email "inexistant@test.fr"
Alors la connexion échoue
Et je vois le message "Email ou mot de passe incorrect"
Scénario: Connexion échouée avec mot de passe incorrect
Quand je me connecte avec:
| email | mot_de_passe |
| user@test.fr | MauvaisPass1 |
Alors la connexion échoue
Et je vois le message "Email ou mot de passe incorrect"
Scénario: Blocage après 5 tentatives échouées
Étant donné que j'ai échoué 4 tentatives de connexion
Quand j'échoue une 5ème tentative de connexion
Alors mon compte est temporairement bloqué
Et je vois le message "Compte bloqué pour 15 minutes après 5 tentatives échouées"
Et je reçois un email de notification de blocage
Scénario: Tentative de connexion pendant le blocage
Étant donné que mon compte est bloqué suite à 5 tentatives échouées
Et que seulement 5 minutes se sont écoulées
Quand j'essaie de me connecter avec les bons identifiants
Alors la connexion échoue
Et je vois le message "Compte bloqué. Réessayez dans 10 minutes"
Scénario: Déblocage automatique après 15 minutes
Étant donné que mon compte est bloqué suite à 5 tentatives échouées
Et que 15 minutes se sont écoulées
Quand je me connecte avec les bons identifiants
Alors je suis connecté avec succès
Et le compteur de tentatives est réinitialisé
Scénario: Reset du compteur après connexion réussie
Étant donné que j'ai échoué 3 tentatives de connexion
Quand je me connecte avec les bons identifiants
Alors je suis connecté avec succès
Et le compteur de tentatives est remis à 0
Scénario: Reset automatique du compteur après 15 minutes sans blocage
Étant donné que j'ai échoué 3 tentatives de connexion
Et que 15 minutes se sont écoulées sans nouvelle tentative
Quand je consulte mon compteur de tentatives
Alors le compteur est réinitialisé à 0
Scénario: Déblocage via lien "Mot de passe oublié"
Étant donné que mon compte est bloqué suite à 5 tentatives échouées
Quand j'utilise la fonction "Mot de passe oublié"
Et que je réinitialise mon mot de passe
Alors le blocage est levé immédiatement
Et je peux me connecter avec le nouveau mot de passe
Scénario: Email de notification lors d'un blocage
Étant donné que j'ai échoué 5 tentatives de connexion
Alors je reçois un email avec:
| sujet | Tentatives de connexion suspectes détectées |
| contenu_contient | Votre compte a été temporairement bloqué |
| lien_mot_de_passe | présent |
Scénario: Connexion multi-device simultanée autorisée
Étant donné que je suis connecté sur un appareil iOS
Quand je me connecte également sur un appareil Android
Alors les deux sessions sont actives simultanément
Et je peux utiliser l'application sur les deux appareils