better diagrams

This commit is contained in:
2026-01-07 15:57:25 +01:00
parent 8e58ab4249
commit 8da054bbef
3 changed files with 93 additions and 31 deletions

View File

@@ -1,20 +1,23 @@
@startuml "System Komponenten"
scale 0.7
skinparam dpi 600
skinparam backgroundColor #FFAB40
skinparam componentStyle uml2
skinparam packageStyle rectangle
skinparam defaultFontSize 10
top to bottom direction
title Monorepo - System Komponenten
' ===== FRONTEND =====
package "apps/client (Expo React Native)" #87CEEB {
' ===== ROW 1: FRONTEND =====
package "apps/client (Expo React Native)" as ClientPkg #87CEEB {
package "Screens (app/)" {
[Login/Register] as AuthScreens
[Calendar View] as CalendarScreen
[Chat View] as ChatScreen
[Event Detail] as EventDetail
[Note Editor] as NoteScreen
}
package "Services" {
@@ -25,9 +28,8 @@ package "apps/client (Expo React Native)" #87CEEB {
}
package "Components" {
[EventCard] as EventCard
[ProposedEventCard] as ProposedEventCard
[ConfirmDialog] as ConfirmDialog
[UI Components] as UIComponents
[Event Cards] as EventCards
}
package "Stores" {
@@ -37,14 +39,15 @@ package "apps/client (Expo React Native)" #87CEEB {
}
}
' ===== SHARED =====
package "packages/shared" #DDA0DD {
' ===== ROW 2: SHARED (centered) =====
package "packages/shared" as SharedPkg #DDA0DD {
[Models] as SharedModels
[DTOs] as SharedDTOs
[Utils] as SharedUtils
}
' ===== BACKEND =====
package "apps/server (Express.js)" #98FB98 {
' ===== ROW 3: BACKEND =====
package "apps/server (Express.js)" as ServerPkg #98FB98 {
package "Controller Layer" {
[Routes] as Routes
[Controllers] as Controllers
@@ -58,11 +61,11 @@ package "apps/server (Express.js)" #98FB98 {
[EventService] as EventSvc
}
package "AI Layer" {
package "AI Implementations" {
[ClaudeAdapter] as Claude
}
package "Data Access Layer" {
package "Data Access Implementations" {
[Repositories] as Repos
[Mongoose Schemas] as Schemas
}
@@ -70,20 +73,23 @@ package "apps/server (Express.js)" #98FB98 {
package "Utils" {
[JWT] as JWTUtil
[Password] as PwdUtil
[RecurrenceExpander] as RecExpander
[EventFormatters] as EvtFormatters
}
}
' ===== EXTERNAL =====
' ===== ROW 4: EXTERNAL =====
database "MongoDB" as MongoDB
cloud "Claude API" as ClaudeAPI
' ===== CONNECTIONS =====
' Frontend internal
' Frontend: Screens -> Services
AuthScreens --> ClientAuth
CalendarScreen --> ClientEvent
ChatScreen --> ClientChat
EventDetail --> ClientEvent
NoteScreen --> ClientEvent
ClientAuth --> ApiClient
ClientEvent --> ApiClient
@@ -93,12 +99,19 @@ ApiClient --> AuthStore
ClientEvent --> EventsStore
ClientChat --> ChatStore
' Frontend -> Shared
ApiClient ..> SharedDTOs
ApiClient ..> SharedModels
' Frontend: Screens -> Components
CalendarScreen --> EventCards
ChatScreen --> EventCards
ChatScreen --> UIComponents
' Frontend -> Backend
ApiClient --> Routes : HTTP/REST
' Frontend -> Shared -> Backend (HTTP flow)
ApiClient --> SharedDTOs : sends
SharedDTOs --> Routes : HTTP/REST
' Shared types used by both sides
SharedModels ..> ApiClient : used by
SharedDTOs ..> Controllers : used by
SharedModels ..> Repos : used by
' Backend: Controller Layer
Routes --> Middleware
@@ -122,14 +135,12 @@ Repos ..|> Interfaces
AuthSvc --> JWTUtil
AuthSvc --> PwdUtil
Middleware --> JWTUtil
EventSvc --> RecExpander
ChatSvc --> EvtFormatters
' Backend: Data Access
Repos --> Schemas
' Backend -> Shared
Repos ..> SharedModels
Controllers ..> SharedDTOs
' Backend -> External
Schemas --> MongoDB
Claude --> ClaudeAPI