Diagrames d’arquitectura
Aquest document explica on i com gestionem els diagrames de l’arquitectura de LDP (Line Dance Platform).
L’objectiu és:
- tenir tots els diagrames versionats al repo,
- poder-los editar fàcilment (Draw.io, Mermaid, PlantUML…),
- enllaçar-los des de la documentació de Docusaurus.
1. Ubicació dels diagrames
Hi ha dos llocs principals:
-
Fitxers font (editable)
- Carpeta suggerida:
docs-web/static/diagrams/src/ - Formats típics:
.drawio(diagrames editables amb Draw.io),.puml(PlantUML),.mmd(Mermaid),- altres formats editables que es decideixin.
- Carpeta suggerida:
-
Exports per a la web
- Carpeta suggerida:
docs-web/static/diagrams/export/ - Formats:
.png/.svggenerats a partir dels fitxers font.
- Carpeta suggerida:
Els documents de Docusaurus no haurien de contenir imatges “manuals” fora d’aquest esquema, per poder regenerar fàcilment els diagrames.
2. Tipus de diagrames
2.1. C4 – Vista alta
Diagrames de tipus C4 Model per explicar:
- Context: qui interactua amb LDP (usuari final, professor, organitzador, APIs externes…).
- Containers: backend, frontend, app mòbil, BD, sistemes externs.
- Components (opcional, quan calgui): parts internes del backend o del frontend.
Fitxers suggerits:
architecture_c4_context.drawioarchitecture_c4_containers.drawio
Es referencien des d’architecture/architecture-overview.md.
2.2. ERD – Model de dades
Diagrames de model relacional de la BD:
- entitats principals (dances, songs, choreographers, events, venues, locations…),
- relacions i cardinalitats,
- camps clau i FKs importants.
Fitxers suggerits:
db_erd_core.drawio– model de dades principal,db_erd_import_staging.drawio– model per al sistema d’import.
Es referencien des d’architecture/db-redesign-plan.md.
2.3. Fluxos i seqüències
Per funcionalitats concretes:
- Sistema d’importació: des del CSV/API fins a
import_stagingi publicació. - Ownership requests: flux CLAIM / TRANSFER amb Admin i usuaris.
- Events wizard: passos de l’assistent d’alta/modificació d’esdeveniments.
Fitxers suggerits:
flow_import_system.mmd(Mermaid),sequence_ownership_request.puml(PlantUML).
Es referencien des dels docs d’arquitectura corresponents.
3. Estàndards de nomenclatura
Per facilitar la cerca dins del repo:
- Prefixar pel domini:
architecture_*,db_*,flow_*,sequence_*,ui_*, etc.
- Utilitzar snake_case i noms descriptius:
db_events_classes_locations.drawio,flow_import_csv_to_staging.mmd.
Evitar noms genèrics com diagram1.png, untitled.puml, etc.
4. Ús de Mermaid a Docusaurus
Per diagrames senzills, es pot utilitzar Mermaid directament al .md.
Exemple:
flowchart LR
A[CSV] --> B[Import service]
B --> C[import_staging]
C --> D[Admin review]
D --> E[Publish to domain tables]
Recomanacions:
- Utilitzar Mermaid per diagrames simples i textuals.
- Reservar Draw.io / PlantUML per diagrames complexos o més visuals.
5. Flux de treball recomanat
- Crear o editar el diagrama al format font (
.drawio,.puml,.mmd, etc.). - Exportar-lo a
.pngo.svgastatic/diagrams/export/. - Referenciar la imatge des del
.md, per exemple:

- Fer commit tant del fitxer font com de l’export.
- Si hi ha un canvi rellevant de model o arquitectura:
- Actualitzar també els docs relacionats (
architecture-overview,db-redesign-plan, etc.).
- Actualitzar també els docs relacionats (
6. Responsabilitats
Arquitectura / Data Steward
- mantenir els diagrames de model de dades i C4,
- garantir que no es queden desactualitzats.
Desenvolupament
- proposar nous diagrames quan apareguin funcionalitats complexes,
- actualitzar diagrames de flux quan es canviïn processos.
Aquest document pot anar evolucionant a mesura que es vagin afegint nous tipus de diagrames o eines.
L’important és centralitzar i documentar sempre on es troben i com s’han d’actualitzar.