UML-Sequenzdiagramm zum Bestellugnsprozess
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,65 @@
|
|||||||
|
@startuml
|
||||||
|
|
||||||
|
' Teilnehmer – Standard‑Icons
|
||||||
|
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 Login‑Seite
|
||||||
|
Student -> Browser : Gibt Benutzerdaten ein und schickt Formular
|
||||||
|
Browser -> WebsiteServer : POST /login\n{username, password}
|
||||||
|
WebsiteServer --> OrderService : Authentifiziere User
|
||||||
|
OrderService --> WebsiteServer : OK (Session‑Token)
|
||||||
|
WebsiteServer --> Browser : Setzt Session‑Cookie & 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 Cart‑Daten
|
||||||
|
OrderDB --> OrderService : Cart‑Details
|
||||||
|
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 Order‑Details (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
|
||||||
Reference in New Issue
Block a user