Files
roadwave/mkdocs.yml
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

179 lines
7.8 KiB
YAML

site_name: RoadWave Documentation
site_description: Documentation complète du projet RoadWave - Réseau social audio géolocalisé
site_author: RoadWave Team
theme:
name: material
language: fr
palette:
# Light mode
- media: "(prefers-color-scheme: light)"
scheme: default
primary: indigo
accent: indigo
toggle:
icon: material/brightness-7
name: Passer en mode sombre
# Dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: indigo
accent: indigo
toggle:
icon: material/brightness-4
name: Passer en mode clair
features:
- navigation.tabs
- navigation.sections
- navigation.expand
- navigation.top
- navigation.tracking
- search.suggest
- search.highlight
- content.code.copy
- toc.follow
plugins:
- search:
lang: fr
- glightbox: # Lightbox pour agrandir les images
markdown_extensions:
- admonition
- pymdownx.details
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- pymdownx.tabbed:
alternate_style: true
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
- tables
- toc:
permalink: true
- attr_list
- md_in_html # Permet d'utiliser du markdown dans du HTML
- def_list
nav:
- Accueil: index.md
- Architecture Technique: technical.md
- Architecture Decision Records (ADR):
- 'ADR-001: Langage Backend': adr/001-langage-backend.md
- 'ADR-002: Protocole Streaming': adr/002-protocole-streaming.md
- 'ADR-003: Codec Audio': adr/003-codec-audio.md
- 'ADR-004: CDN': adr/004-cdn.md
- 'ADR-005: Base de données': adr/005-base-de-donnees.md
- 'ADR-006: Chiffrement': adr/006-chiffrement.md
- 'ADR-007: Tests BDD': adr/007-tests-bdd.md
- 'ADR-008: Authentification': adr/008-authentification.md
- 'ADR-009: Solution Paiement': adr/009-solution-paiement.md
- 'ADR-010: Architecture Backend': adr/010-architecture-backend.md
- 'ADR-011: ORM et Accès Données': adr/011-orm-acces-donnees.md
- 'ADR-012: Frontend Mobile': adr/012-frontend-mobile.md
- 'ADR-013: Stratégie Tests': adr/013-strategie-tests.md
- 'ADR-014: Organisation en Monorepo': adr/014-organisation-monorepo.md
- 'ADR-015: Hébergement': adr/015-hebergement.md
- 'ADR-016: Service Emailing': adr/016-service-emailing.md
- 'ADR-017: Notifications Géolocalisées': adr/017-notifications-geolocalisees.md
- 'ADR-018: Librairies Go': adr/018-librairies-go.md
- 'ADR-019: Géolocalisation par IP': adr/019-geolocalisation-ip.md
- 'ADR-020: Librairies Flutter': adr/020-librairies-flutter.md
- 'ADR-021: Solution de Cache': adr/021-solution-cache.md
- 'ADR-022: CI/CD Monorepo': adr/022-strategie-cicd-monorepo.md
- 'ADR-023: Architecture Modération': adr/023-architecture-moderation.md
- 'ADR-024: Monitoring & Observabilité': adr/024-monitoring-observabilite.md
- 'ADR-025: Sécurité & Secrets': adr/025-securite-secrets.md
- Domaines DDD:
- 'Context Map': domains/README.md
- 'Core Domain':
- '🔐 Shared': domains/_shared/README.md
- Règles:
- Authentification: domains/_shared/rules/authentification.md
- RGPD: domains/_shared/rules/rgpd.md
- Gestion Erreurs: domains/_shared/rules/gestion-erreurs.md
- 'Annexe Post-MVP': domains/_shared/rules/ANNEXE-POST-MVP.md
- Entités:
- Modèle Global: domains/_shared/entities/modele-global.md
- 'Supporting Subdomains':
- '🎯 Recommendation':
- Vue d'ensemble: domains/recommendation/README.md
- Règles:
- Centres Intérêt: domains/recommendation/rules/centres-interet-jauges.md
- Algorithme: domains/recommendation/rules/algorithme-recommandation.md
- Interactions: domains/recommendation/rules/interactions-navigation.md
- Entités:
- Modèle Recommandation: domains/recommendation/entities/modele-recommandation.md
- '🎙️ Content':
- Vue d'ensemble: domains/content/README.md
- Règles:
- Création & Publication: domains/content/rules/creation-publication.md
- Audio-guides: domains/content/rules/audio-guides.md
- Radio Live: domains/content/rules/radio-live.md
- Contenus Géolocalisés: domains/content/rules/contenus-geolocalises.md
- Contenu Protégé: domains/content/rules/detection-contenu-protege.md
- Entités:
- Modèle Audio-guides: domains/content/entities/modele-audio-guides.md
- Modèle Radio Live: domains/content/entities/modele-radio-live.md
- '🛡️ Moderation':
- Vue d'ensemble: domains/moderation/README.md
- Règles:
- Modération: domains/moderation/rules/moderation-flows.md
- Modération Communautaire: domains/moderation/rules/moderation-communautaire.md
- Autres Comportements: domains/moderation/rules/autres-comportements.md
- Entités:
- Modèle Modération: domains/moderation/entities/modele-moderation.md
- Diagrammes:
- 'Flux: Signalement': domains/moderation/flows/moderation-signalement.md
- 'États: Lifecycle': domains/moderation/states/signalement-lifecycle.md
- 'Séquence: Appel': domains/moderation/sequences/processus-appel-moderation.md
- 'Generic Subdomains':
- '📢 Advertising':
- Vue d'ensemble: domains/advertising/README.md
- Règles:
- Publicités: domains/advertising/rules/publicites.md
- Entités:
- Modèle Publicités: domains/advertising/entities/modele-publicites.md
- '💎 Premium':
- Vue d'ensemble: domains/premium/README.md
- Règles:
- Premium: domains/premium/rules/premium.md
- Mode Offline: domains/premium/rules/mode-offline.md
- Abonnements: domains/premium/rules/abonnements-notifications.md
- Entités:
- Modèle Premium: domains/premium/entities/modele-premium.md
- '💰 Monetization':
- Vue d'ensemble: domains/monetization/README.md
- Règles:
- Monétisation Créateurs: domains/monetization/rules/monetisation-createurs.md
- Entités:
- Modèle Monétisation: domains/monetization/entities/modele-monetisation.md
- Documentation Légale:
- Introduction: legal/README.md
- "Conditions Générales d'Utilisation": legal/cgu.md
- 'CGV Premium': legal/cgv-premium.md
- 'CGV Publicités': legal/cgv-publicites.md
- 'Charte Créateur': legal/charte-createur.md
- 'Mentions Légales': legal/mentions-legales.md
- 'Politique de Confidentialité': legal/politique-confidentialite.md
- Interfaces:
- Vue d'ensemble: interfaces/README.md
- Mobile:
- Navigation & Architecture: interfaces/mobile/navigation.md
- Mobile:
- 'Stratégie Permissions': mobile/permissions-strategy.md
- 'Validation TestFlight': mobile/testflight-validation-plan.md
- Conformité & Compliance:
- 'Soumission aux Stores': compliance/stores-submission.md
- Architecture & Techniques:
- Séquences:
- 'Cache Géospatial': architecture/sequences/cache-geospatial.md
extra:
social:
- icon: fontawesome/brands/github
link: https://github.com