UML-Sequenzdiagramm zum Bestellugnsprozess

This commit is contained in:
2026-06-11 09:35:31 +02:00
parent 0a6ecda7a2
commit b85e19b94a
2 changed files with 65 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
@startuml
' Teilnehmer StandardIcons
actor Student as "Student"
participant Browser as "Browser"
participant WebsiteServer as "Website Server"
database OrderDB as "Order DB"
participant OrderService as "Order Service"
participant InventoryService as "Inventory Service"
participant KitchenDisplaySystem as "Kitchen Display"
participant NotificationService as "Notification Service"
' ---------- Login ----------
Student -> Browser : Öffnet die Webseite
Browser -> WebsiteServer : GET /login
WebsiteServer --> Browser : Liefert LoginSeite
Student -> Browser : Gibt Benutzerdaten ein und schickt Formular
Browser -> WebsiteServer : POST /login\n{username, password}
WebsiteServer --> OrderService : Authentifiziere User
OrderService --> WebsiteServer : OK (SessionToken)
WebsiteServer --> Browser : Setzt SessionCookie & leitet zur Menüseite
' ---------- Menü auswählen ----------
Student -> Browser : Wählt Speisen aus dem Menü
Browser -> WebsiteServer : GET /menu\n{session}
WebsiteServer --> OrderDB : Liefert aktuelle Menüpunkte
OrderDB --> WebsiteServer : Menüdaten
WebsiteServer --> Browser : Zeigt Menü
' ---------- Artikel zum Warenkorb hinzufügen ----------
loop Für jeden gewählten Artikel
Student -> Browser : Klickt „In den Warenkorb“
Browser -> OrderService : POST /cart/add\n{session, articleID}
OrderService -> OrderDB : Update Cart (Add Item)
OrderDB --> OrderService : OK
OrderService --> Browser : Rückmeldung "Artikel hinzugefügt"
end
' ---------- Bestellung prüfen ----------
Student -> Browser : Öffnet Warenkorb und prüft Bestellübersicht
Browser -> OrderService : GET /cart\n{session}
OrderService -> OrderDB : Liefert aktuelle CartDaten
OrderDB --> OrderService : CartDetails
OrderService --> Browser : Zeigt Cart‑Übersicht
' ---------- Checkout (ohne Bezahlung) ----------
Student -> Browser : Klicke „Zur Kasse“
Browser -> WebsiteServer : GET /checkout\n{session}
WebsiteServer --> NotificationService : Sende “Bestellung anstehend” (Optional)
NotificationService --> Browser : Bestätigungsnachricht
Student -> Browser : Gibt Zahlungsinformationen für Bezahlung vor Ort ein und schickt Formular
Browser -> OrderService : POST /checkout/confirm\n{session, paymentMethod="VorOrt"}
OrderService --> OrderDB : Speichere Order & set Status “Pending Payment”
OrderDB --> OrderService : OK
OrderService --> KitchenDisplaySystem : Sende OrderDetails (Zubereitung)
KitchenDisplaySystem --> Browser : Zeigt „Bestellung in Bearbeitung“
OrderService -> InventoryService : Update Bestand
InventoryService --> OrderService : OK
OrderService --> NotificationService : Sende “Bestellung bestätigt” (Email/SMS)
' ---------- Fertigstellung ----------
Student -> Browser : Empfängt Benachrichtigung “Ihr Essen ist fertig”
Browser -> KitchenDisplaySystem : Optional „Abholung bestätigen“
@enduml