Files
MyClub/diagrams/backend-packages.mmd
T
Tomas Dvorak c941313fd5 dev day #92
2025-11-14 15:53:12 +01:00

79 lines
1.8 KiB
Plaintext

%%{init: {
'theme': 'forest',
'flowchart': { 'curve': 'linear' },
'themeCSS': '.edgePath path { stroke-dasharray: 6 4; animation: dash 16s linear infinite; } @keyframes dash { to { stroke-dashoffset: -1000; } }'
}}%%
flowchart LR
classDef bin fill:#ffe4e6,stroke:#be123c,color:#7f1d1d;
classDef internal fill:#e0f2fe,stroke:#0369a1,color:#0c4a6e;
classDef pkg fill:#dcfce7,stroke:#16a34a,color:#065f46;
classDef third fill:#ede9fe,stroke:#7c3aed,color:#4c1d95;
main["main.go"]:::bin
subgraph internal_pkgs["internal/* packages"]
direction TB
p_config["internal/config"]:::internal
p_routes["internal/routes"]:::internal
p_controllers["internal/controllers"]:::internal
p_services["internal/services"]:::internal
p_models["internal/models"]:::internal
p_middleware["internal/middleware"]:::internal
end
subgraph shared_pkgs["pkg/*"]
direction TB
p_db["pkg/database"]:::pkg
p_email["pkg/email"]:::pkg
p_logger["pkg/logger"]:::pkg
end
subgraph third_party["third-party"]
direction TB
t_gin["github.com/gin-gonic/gin"]:::third
t_gzip["github.com/gin-contrib/gzip"]:::third
t_prom["github.com/prometheus/client_golang/promhttp"]:::third
t_gorm["gorm.io/gorm"]:::third
end
%% main dependencies
main --> p_config
main --> p_logger
main --> p_db
main --> p_models
main --> p_middleware
main --> p_services
main --> p_routes
main --> p_email
main --> t_gin
main --> t_gzip
main --> t_prom
%% routes wiring
p_routes --> p_controllers
p_routes --> p_middleware
p_routes --> p_services
p_routes --> p_email
p_routes --> t_gin
p_routes --> t_gorm
%% controllers wiring
p_controllers --> p_models
p_controllers --> p_services
%% middleware wiring
p_middleware --> p_config
p_middleware --> t_gorm
%% services wiring
p_services --> p_models
p_services --> p_email
%% database wiring
p_db --> p_config
p_db --> t_gorm
%% logger
p_logger --> main