@startuml !theme vibrant ' Deployment diagram for PeerGrade
skinparam componentStyle rectangle
node "Client Browser" { artifact "Web UI" <<HTML/JS>> }
node "Web Server\n(Vite + Vue)" { artifact "Frontend App" }
node "API Server\n(Rust Backend)" { artifact "Rust REST API" node "Docker Container 1 (Compose)" { node "Postgres Database Server " { artifact "User DB" } }
node "Docker Container 2 (Compose)" { node "Redis/Cache" { artifact "Cache DB" } }
node "LDAP Server\n(School LDAP)" { artifact "LDAP Directory" }
' Connections "Client Browser" --> "Frontend App" : HTTP (User Access) "Frontend App" --> "Rust REST API" : REST API Calls "Rust REST API" --> "User DB" : SQL Queries "Rust REST API" --> "LDAP Directory" : LDAP Authentication
' Role-based flow @enduml
Andere Lösung:
www.plantuml.com/plantuml/png/VL5VJy8m47_lfxZiHOWXH1y98OnD0mQJmGQ--5BA2GrTkxITXXY-krqbJETa3qjplp_tkxkniLJRCXV47BWigAOvC9KNIgAqgJqA18tCKhaJI8XKMuGW4jo1CD7gmw0Eu9E0-vmDVwFCGl226rZD0XWEfzdplF-KZaRaT1PxC4NzZlfLTjRS8jp2kiJkNvj7hQH5kOMmA8BQ84ncjS6oD2u8PGV7Qx7myF8XpS2f0kBHRvTOEOs6oBMWNBhN7NIYQcvJHwdPYJ9sfz50J2tTK8Fd13-Plpkl36g89y45FX7_lvhX_bg69MwvwKUKxV7_jXvkwrllRnw7IRt0bEsL4b0LM_RdkJ7NoApIHt-4coglT0Mkf26NM_TweyR5O03JB4kWurSHCeR6T4c3usJDAy7WyeQ82c58a-14zO8TFLtCOL6YvjZEROxX9BuIbdQFqd96gs78sAKgS_45
@startuml
skinparam componentStyle rectangle
node "Client Browser" {
artifact "Web UI" <<HTML/JS>>
}
node "Web Server\n(Vite + Vue)" {
artifact "Frontend App"
}
node "API Server\n(Rust Backend)" {
artifact "Rust REST API"
node "Docker Container 1 (Compose)" {
node "Postgres Database Server" {
artifact "User DB"
}
}
node "Docker Container 2 (Compose)" {
node "Redis/Cache" {
artifact "Cache DB"
}
}
}
node "LDAP Server\n(School LDAP)" {
artifact "LDAP Directory"
}
' Connections
"Web UI" --> "Frontend App" : HTTP (User Access)
"Frontend App" --> "Rust REST API" : REST API Calls
"Rust REST API" --> "User DB" : SQL Queries
"Rust REST API" --> "LDAP Directory" : LDAP Authentication
@enduml