Systemdesign\Applikation zur Pflege von Kundenbestellungen (Sevin&Chris) - notrautmann/TINF23CS1 GitHub Wiki
Grundlegende Anforderungen
-
Bestellungen einpflegen können
-
Bestellungen modifizieren können
-
Bestellungen einsehen können
-
(Bestellungen an andere Komponenten übergeben können / ein Interface anbieten)
Einpflegen von Bestellungen
Anwendung muss
- unterscheiden können zwischen B2B und Privatkunde
- Datum kennen wann Bestellung fertig sein soll
- Namen des Bestellers kennen
- Bei B2B (evtl.) wiederkehrende Bestellungen (jeden Arbeitstag/jeden Dienstag/ etc.)
- Wo soll abgeholt werden? (Filiale)
- Produkte mit Anzahl auswählen können
- Neue Bestellung an Datenbank übergeben können
Modifizieren von Bestellungen
Anwendung muss
- Bestellung aus Datenbank laden können
- Jedes Bestelldetail ändern können (selbe Ansicht wie beim Einpflegen)
- Änderungen an Datenbank übermitteln können
Einsehen von Bestellungen
Anwendung muss
- Relevante Bestellungen aus der Datenbank laden können (nur Bestellungen laden, die noch ausgeliefert werden müssen)
- Bestellungen filtern können (nur Bestellungen von Kunde x anzeigen)
- Bestellungen sortieren können (Name des Kunden, Lieferdatum, weitere Eigenschaften einer Bestellung)
- Bestellungen vereinfacht anzeigen können (zusammenfassende Übersicht der Bestellung siehe Mock-UI)
Übergeben von Bestellungen an andere Komponenten
Anwendung muss
-
in Echtzeit Änderungen an Bestellungen mitteilen können
- bietet Komponenten eine Subscription-API an
- Komponenten melden Zeitraum an, für welchen sie Änderungen benötigen (Bestellungen die zwischen x und y abgeholt werden sollen)
- Gibt es Änderungen an Bestellungen innerhalb des Zeitraums, übergibt Anwendung die ID der geänderten Bestellung an interessierte Komponenten
- diese können geänderte Bestellung anhand der ID von der DB abrufen
- relevant für Produktionsplan
-
Schnittstellen zur Datenbank anbieten
- Anhand von Bestellungs-ID einen Eintrag aus der DB
- Anhand eines Zeitfensters eine Liste an Einträgen aus der DB
Benötigte Daten
Aus dem System
- Aktuelle Produktliste
- Filialen
- Komponenten, die an Änderungen interessiert sind (melden sich dynamisch -> Observer-pattern)
Von dem Benutzer
- Name des Kunden
- Art des Kunden
- Filiale der Abholung
- Abholdatum und -zeit der Bestellung
- Serienmuster (-> Wiederkehrende Bestellungen, bei B2B Kunden)
- Bestellte Produkte und Anzahlen
- Anmerkungen zu Bestellungen
Benötigte Externe Komponenten
Keine. Selbstständige Implementierung.