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:
@@ -23,7 +23,7 @@ RoadWave nécessite un système d'authentification sécurisé pour mobile (iOS/A
|
||||
- Base de données PostgreSQL partagée avec RoadWave (séparation logique par schéma)
|
||||
- Aucune donnée d'authentification ne transite par des serveurs tiers
|
||||
|
||||
> 📋 **Clarification** : OAuth2 PKCE est le **protocole technique** utilisé entre l'app mobile et Zitadel. Ce n'est **PAS** pour des fournisseurs tiers. L'authentification reste 100% email/password native (voir [Règle 01](../regles-metier/01-authentification-inscription.md#11-méthodes-dinscription)).
|
||||
> 📋 **Clarification** : OAuth2 PKCE est le **protocole technique** utilisé entre l'app mobile et Zitadel. Ce n'est **PAS** pour des fournisseurs tiers. L'authentification reste 100% email/password native (voir [Règle 01](../domains/_shared/rules/authentification.md#11-méthodes-dinscription)).
|
||||
|
||||
## Alternatives considérées
|
||||
|
||||
@@ -112,7 +112,7 @@ graph TB
|
||||
- Zitadel implémente OAuth2/OIDC comme **protocole**, mais l'auth reste email/password
|
||||
- Alternative serait session cookies (moins adapté mobile) ou JWT custom (réinventer la roue)
|
||||
|
||||
> 📋 **Référence** : Voir [Règle 01 - Méthodes d'Inscription](../regles-metier/01-authentification-inscription.md#11-méthodes-dinscription) pour la décision métier.
|
||||
> 📋 **Référence** : Voir [Règle 01 - Méthodes d'Inscription](../domains/_shared/rules/authentification.md#11-méthodes-dinscription) pour la décision métier.
|
||||
|
||||
## Exemple d'intégration
|
||||
|
||||
|
||||
@@ -205,8 +205,8 @@ Le service de gestion des permissions (`lib/core/services/location_permission_se
|
||||
### Documentation Associée
|
||||
|
||||
- **Guide détaillé** : [/docs/mobile/permissions-strategy.md](../mobile/permissions-strategy.md)
|
||||
- **Règles métier** : [Règle 05 - Mode Piéton](../regles-metier/05-interactions-navigation.md#512-mode-piéton-audio-guides)
|
||||
- **RGPD** : [Règle 02 - Conformité RGPD](../regles-metier/02-conformite-rgpd.md)
|
||||
- **Règles métier** : [Règle 05 - Mode Piéton](../domains/recommendation/rules/interactions-navigation.md#512-mode-piéton-audio-guides)
|
||||
- **RGPD** : [Règle 02 - Conformité RGPD](../domains/_shared/rules/rgpd.md)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -114,5 +114,5 @@ flowchart TD
|
||||
|
||||
- [ADR-004 : CDN (Souveraineté)](004-cdn.md)
|
||||
- [ADR-015 : Hébergement](015-hebergement.md)
|
||||
- [Règle 02 : RGPD (Mode Dégradé)](../regles-metier/02-conformite-rgpd.md#136-géolocalisation-optionnelle)
|
||||
- [Règle 02 : RGPD (Mode Dégradé)](../domains/_shared/rules/rgpd.md#136-géolocalisation-optionnelle)
|
||||
- IP2Location Lite : https://lite.ip2location.com/
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
## Contexte
|
||||
|
||||
Le système de modération RoadWave doit traiter des signalements de contenu audio problématique (haine, spam, droits d'auteur, etc.) avec :
|
||||
- **SLA stricts** : 2h (critique), 24h (haute), 72h (standard) définis dans [Règle 14](../regles-metier/14-moderation-flows.md)
|
||||
- **SLA stricts** : 2h (critique), 24h (haute), 72h (standard) définis dans [Règle 14](../domains/moderation/rules/moderation-flows.md)
|
||||
- **Scalabilité** : 0-10K+ signalements/mois
|
||||
- **Conformité DSA** : transparence, traçabilité, délais garantis
|
||||
- **Efficacité** : pré-filtrage IA pour priorisation automatique
|
||||
@@ -193,12 +193,12 @@ graph TB
|
||||
1. Migration Redis Streams si >1000 signalements/jour
|
||||
2. GPU pour Whisper si latence >15 min P95
|
||||
3. NLP avancé (distilbert + roberta)
|
||||
4. Modération communautaire (badges, [Règle 15](../regles-metier/15-moderation-communautaire.md))
|
||||
4. Modération communautaire (badges, [Règle 15](../domains/moderation/rules/moderation-communautaire.md))
|
||||
|
||||
## Références
|
||||
|
||||
- [Règle 14 : Modération - Flows opérationnels](../regles-metier/14-moderation-flows.md)
|
||||
- [Règle 15 : Modération Communautaire](../regles-metier/15-moderation-communautaire.md)
|
||||
- [Règle 14 : Modération - Flows opérationnels](../domains/moderation/rules/moderation-flows.md)
|
||||
- [Règle 15 : Modération Communautaire](../domains/moderation/rules/moderation-communautaire.md)
|
||||
- [ADR-001 : Langage Backend](001-langage-backend.md) (Go, Fiber)
|
||||
- [ADR-005 : Base de données](005-base-de-donnees.md) (PostgreSQL)
|
||||
- [ADR-010 : Architecture Backend](010-architecture-backend.md) (Modular monolith)
|
||||
|
||||
@@ -100,7 +100,7 @@ graph TB
|
||||
### Encryption PII (Field-level)
|
||||
|
||||
**Données chiffrées** (AES-256-GCM) :
|
||||
- **GPS précis** : lat/lon conservés 24h puis réduits à geohash-5 (~5km²) ([Règle 02](../regles-metier/02-conformite-rgpd.md))
|
||||
- **GPS précis** : lat/lon conservés 24h puis réduits à geohash-5 (~5km²) ([Règle 02](../domains/_shared/rules/rgpd.md))
|
||||
- **Email** : chiffré en base, déchiffré uniquement à l'envoi
|
||||
- **Numéro téléphone** : si ajouté (Phase 2)
|
||||
|
||||
@@ -270,7 +270,7 @@ graph TB
|
||||
- [ADR-011 : Accès données](011-orm-acces-donnees.md) (sqlc, prepared statements)
|
||||
- [ADR-015 : Hébergement](015-hebergement.md) (OVH France, souveraineté)
|
||||
- [ADR-024 : Monitoring](024-monitoring-observabilite.md) (Audit logs)
|
||||
- [Règle 02 : Conformité RGPD](../regles-metier/02-conformite-rgpd.md)
|
||||
- [Règle 02 : Conformité RGPD](../domains/_shared/rules/rgpd.md)
|
||||
- [HashiCorp Vault Documentation](https://www.vaultproject.io/docs)
|
||||
- [OWASP Top 10 2021](https://owasp.org/Top10/)
|
||||
- [NIST SP 800-175B (Cryptography)](https://csrc.nist.gov/publications/detail/sp/800-175b/final)
|
||||
|
||||
Reference in New Issue
Block a user