UML-Sequenzdiagramm zum Bestellugnsprozess
This commit is contained in:
@@ -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