better diagrams
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
@startuml "Backend Klassendiagramm"
|
||||
|
||||
scale 0.9
|
||||
skinparam dpi 600
|
||||
skinparam backgroundColor #FFAB40
|
||||
|
||||
skinparam packageStyle rectangle
|
||||
skinparam classAttributeIconSize 0
|
||||
skinparam classFontSize 11
|
||||
@@ -22,10 +26,12 @@ package "Controller Layer" #ADD8E6 {
|
||||
' +confirmEvent()
|
||||
' +rejectEvent()
|
||||
' +getConversations()
|
||||
' +getConversation()
|
||||
}
|
||||
|
||||
class EventController {
|
||||
' +create()
|
||||
' +getById()
|
||||
' +getAll()
|
||||
' +getByDateRange()
|
||||
' +update()
|
||||
@@ -38,7 +44,7 @@ package "Controller Layer" #ADD8E6 {
|
||||
}
|
||||
|
||||
package "Service Layer" #90EE90 {
|
||||
package "Data Access Interfaces" {
|
||||
package "Interfaces" {
|
||||
interface AIProvider {
|
||||
' +processMessage()
|
||||
}
|
||||
@@ -59,8 +65,10 @@ package "Service Layer" #90EE90 {
|
||||
}
|
||||
|
||||
interface ChatRepository {
|
||||
' +getHistory()
|
||||
' +create()
|
||||
' +getConversationsByUser()
|
||||
' +createConversation()
|
||||
' +getMessages()
|
||||
' +createMessage()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,18 +84,23 @@ package "Service Layer" #90EE90 {
|
||||
' -aiProvider: AIProvider
|
||||
' +processMessage()
|
||||
' +confirmEvent()
|
||||
' +rejectEvent()
|
||||
' +getConversations()
|
||||
' +getConversation()
|
||||
}
|
||||
|
||||
class EventService {
|
||||
' -eventRepo: EventRepository
|
||||
' +create()
|
||||
' +getById()
|
||||
' +getAll()
|
||||
' +getByDateRange()
|
||||
' +update()
|
||||
' +delete()
|
||||
}
|
||||
}
|
||||
|
||||
package "AI Layer" #FFA07A {
|
||||
package "AI Implementations" #FFA07A {
|
||||
class ClaudeAdapter implements AIProvider {
|
||||
' -apiKey: string
|
||||
' +processMessage()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
@startuml "Frontend Klassendiagramm"
|
||||
|
||||
scale 0.9
|
||||
skinparam dpi 600
|
||||
skinparam backgroundColor #FFAB40
|
||||
|
||||
skinparam packageStyle rectangle
|
||||
skinparam classAttributeIconSize 0
|
||||
skinparam classFontSize 10
|
||||
@@ -24,6 +28,9 @@ package "Screens" #87CEEB {
|
||||
|
||||
' ===== COMPONENTS =====
|
||||
package "Components" #FFA07A {
|
||||
class BaseBackground
|
||||
class Header
|
||||
class EventCardBase
|
||||
class EventCard
|
||||
class ProposedEventCard
|
||||
class EventConfirmDialog
|
||||
@@ -37,9 +44,27 @@ package "Services" #90EE90 {
|
||||
+put()
|
||||
+delete()
|
||||
}
|
||||
class AuthService
|
||||
class EventService
|
||||
class ChatService
|
||||
class AuthService {
|
||||
+login()
|
||||
+register()
|
||||
+logout()
|
||||
+refresh()
|
||||
}
|
||||
class EventService {
|
||||
+getAll()
|
||||
+getById()
|
||||
+getByDateRange()
|
||||
+create()
|
||||
+update()
|
||||
+delete()
|
||||
}
|
||||
class ChatService {
|
||||
+sendMessage()
|
||||
+confirmEvent()
|
||||
+rejectEvent()
|
||||
+getConversations()
|
||||
+getConversation()
|
||||
}
|
||||
}
|
||||
|
||||
' ===== STORES =====
|
||||
@@ -47,12 +72,23 @@ package "Stores" #FFD700 {
|
||||
class AuthStore {
|
||||
' +user
|
||||
' +token
|
||||
' +isAuthenticated
|
||||
' +login()
|
||||
' +logout()
|
||||
' +setToken()
|
||||
}
|
||||
class EventsStore {
|
||||
' +events
|
||||
' +setEvents()
|
||||
' +addEvent()
|
||||
' +updateEvent()
|
||||
' +deleteEvent()
|
||||
}
|
||||
class ChatStore {
|
||||
' +messages
|
||||
' +addMessage()
|
||||
' +updateMessage()
|
||||
' +clearMessages()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,6 +111,8 @@ NoteScreen --> EventService
|
||||
CalendarScreen --> EventCard
|
||||
ChatScreen --> ProposedEventCard
|
||||
ChatScreen --> EventConfirmDialog
|
||||
EventCard --> EventCardBase
|
||||
ProposedEventCard --> EventCardBase
|
||||
|
||||
' Services -> ApiClient
|
||||
AuthService --> ApiClient
|
||||
|
||||
Reference in New Issue
Block a user