KBSE_Vendor_Client (KBSE_Shop_Server)
Akteur | Abkürzung |
---|---|
Virtueller Lebensmittelshop | EDH (Easy Delivery Hawk) |
Kunden des Lebensmittelshops | Kunde |
Regionale Einzelhändler, die Lebensmittelshop Ware anbieten | EZHÄ |
Warenzulieferer | WL |
Anforderung | Abkürzung |
---|---|
REST API des WL, der Aufträge des EDH entgegennimmt | REST-API-WL |
REST API von EDH, die Angebote von EZHÄ entgegennehmen | REST-API-EDH |
Web-App EDH, wo Kunde Ware bestellen können | EDH-Store |
-
Lebensmittelkauf -> zeitaufwendig, ökologisch fragwürdig, da unterschiedliche Lebensmittel bei vielen verschiedenen Verkäufern
-
EDH
- EZHÄ bieten Ware an
- Kunde bestellt Ware von Zuhause
- WL bringt Kunde die Ware
- Anforderungen an WL
- WL bietet REST API an (Diese REST API wird im Folgenden als REST-API-WL bezeichnet)
- EDH stellt Lieferauftrag an REST-API-WL (Request)
- Lieferauftrag ist
- Datum + Zeit der Auftragserteilung,
- Kundenname (Kunde)
- Lieferadresse
- Gewicht der Lieferung
- Lieferauftrag ist
- WL benachrichtigt Kunde (evtl. Mail)
- WL ermöglicht Sendungsverfolgung für K
- WL kann jährlich wechseln (Flexibilität seitens EDH gefordert)
- Anforderungen an WL
-
EZHÄ registrieren sich bei EDH per REST-API-EDH mit Angeboten
-
EZHÄ liefern bei jedem Request Benutzername
-
EZHÄ adressieren EDH per REST-API-EDH mit Angeboten (EZHÄ Request an EDH)
- Angebot ist
- Garantierte verfügbare Menge
- Ware
- Bezeichnung
- Kurzbeschreibung
- Preis
- (optional) Bild
- Angebot ist
-
EZHÄ fragen REST-API-EDH ab nach ihren Waren mit Bestellmenge pro Kunde ab
- DANN benachrichtigt EDH den WL, sodass WL tätig werden kann
-
Web-App EDH (EDH-Store)
-
EDH bietet Kunde einen Warenkatalog dar
- Warenkatalog ist
- Alle verfügbaren Angebote aller EZHÄ vereint
- Warenkatalog zeigt dem Nutzer nicht den jeweiligen EZHÄ hinter dem Angebot
- Warenkatalog ist
-
Kunde suchen, finden Waren
-
Kunde haben Warenkorb bei EDH
-
Kunde passen Bestellung im Warenkorb an
- Bestellmenge ändern
- Ware aus Bestellung löschen
-
Bestellung ist
- Ware
- Bestellmenge
- (Gesamtpreis)
- (Zeitpunkt der Bestellung)
-
Kunde kaufen Waren (Bestellung)
- Kunde muss angemeldet sein
- Bezahlung
- Erfolgt nicht
- (optional) PayPal
-
-
JEE7 oder JEE8
-
Glassfish 5.x
-
CDI Context & Dependeny Injection
-
JPA Java Persistence API
-
JTA (?) Java Transaction API
-
Bean-Validation
-
JSF Java Server Faces
- Mit Primefaces
-
JAX-RS (?)
-
JSON-B oder JSON-P
-
REST-API muss getestet werden
-
(optional) EZHÄ Authentifizierung, Autorisierung über JWT (Eclipse Microprofile JWT AUTH)
-
(optional) Anti Corruption Layer für häufig wechselnde WL