Systemdesign\Applikation zur Erzeugung dem Vorschlag Lieferanten‐Bestellungen inkl. ggf. Anbindung an Lieferanten‐Systeme oder Portale (Sean & Max S) - notrautmann/TINF23CS1 GitHub Wiki
Von Sean Ziegler & Maximilian Schildt
📄 Bestellportal
📚 Inhaltsverzeichnis
🔝 High-Level
💡 Anforderungen an die Umsetzung
- Bestellungen erzeugen/generieren
- Regeln zur Bestellungsgeneration selber erstellen
- Bestellungen in verschiedene Formate exportieren (PDF, E-Mail, PNG, ...)
- Anhand vom Lagerbestand Bestellvorschläge generieren
- Einbindung von Lagerbestandsdaten, Kassensystem, etc.
- ggf. Benachrichtigungen (Push-Benachrichtigungen bei wichtigen Produkten, ...)
- Bestellungen an Lieferanten schicken (falls automatisiert möglich)
- Bestellungsmanagement
- Bestellzustände: Versendet, Abgeschlossen, ...
- Rückmeldung von Lieferanten ermöglichen (optional)
- Management der Bestellungen (Stornierung, Aktualisierung, ...)
- Benutzer- und Rollensystem (Admin, Lieferant, Besteller, ...)
- Produktpflege
- Welche Produkte gibt es und welche können bestellt werden?
- Über welchen Lieferanten / Rahmenvertrag kann man bestellen?
- Welche Produkte haben keinen aktiven Lieferanten?
- Systemübergreifende Kompatibilität (App soll auf Windows, Mac, Mobile laufen) (optional)
🤡 Entwicklungsaufwand
Aus Anforderungsanalsyse:
- Einzelne Filiale, hohe Lieferanteneinbindung, kein extrem hohes Budget für IT-Lösungen --> eigene minimalistische Lösung programmieren
Fertige Lösungen (ohne Support) ab 2000€ verfügbar: SmiloBACK, BackShop --> Teure Lösung und ohne Support
Durch die mäßige Relevanz von IT bei einer Bäckerfiliale kann man einen (oder maximal zwei) Entwickler für so eine Applikation anstellen. Dadurch spart man sich hohe Lizenzkosten + Support und muss in dem Sinne nur die Entwickler bezahlen. Dadurch hat man die Entwicklung, den Support und die Administration in einer Rolle (Entwickler). Außerdem kann man durch das Programmieren auf interner Seite viele spezifische Schnittstellen erstellen.
🚸 Low-Level
🖥 Technische Funktionen der Anforderungen
Kursiver Text zeigt, dass die Umsetzung Schnittstellen von außen benötigt (z.B. API der Lieferanten).
Bestellungen erzeugen/generieren 📓
- Formular zur Bestellung von Produkten mit folgenden Daten:
- Zu bestellendes Produkt (ggf. über Produktnummer aus dem Lagerbestand)
- Menge des zu bestellenden Produkts (je nach Produkttyp in Liter, Packungen, Stück, ...)
- Stückzahl-Multiplikatoren (z. B. „immer in 6er-Einheiten“)
- Lieferanten auswählen (aus verfügbaren für dieses Produkt)
- ggf. Rahmenvertrag auswählen
- Bestelldatum (Bestellung in x Tagen abschicken)
- Erstellt von: Mitarbeiter XY, Generierter Vorschlag, ...
- Vorlagen für wiederkehrende Bestellungen
- Export-Funktionen: PDF, CSV, JSON, Excel, ...
- PDF: Zum Ausdrucken
- CSV, JSON: für nicht eingebundene Lieferanten API
- ...
- E-Mail Export Funktion: Vorgefertigte E-Mail für manuellen E-Mail-Verkehr
- UI-Mockup (mithilfe von ChatGPT):
Bestellvorschläge generieren 🤖
- Anhand von aktuellen Lagerbeständen Vorschläge generieren
- Anhand von Mindestlagerbestand
- Regelmäßige Bestellungen
- Als Nutzer der Applikation Regeln zur Vorschlagsgenerierung erstellen
- Beispiel UI: „Wenn X unterschritten, dann Y bestellen“ (Regel-Baukasten)
- Regeln in einer Datenbank speichern
- Bei wichtigen Produkten automatisierte Push-Benachrichtigungen per Mail oder App an Verantwortlichen senden
- UI-Mockup (mithilfe von ChatGPT):
Bestellungen an Lieferanten schicken 📦
- API-Schnittstellen von Lieferanten verwenden, falls verfügbar
- Automatisierte E-Mail verschicken, wenn z.B. keine API-Schnittstelle verfügbar ist
Bestellungsmanagement 👣
- Verschiedene Bestellzustände: Verschickt, Rückmeldung erhalten, Geliefert, Storniert, ...
- Rückmeldung von Lieferanten per API oder Mail ermöglichen
- Bestellstatus automatisiert anpassen
- Übersicht über Bestellungen über eine Datenbank
- Filter für aktive/laufende Bestellungen, abgeschlossene Bestellungen, etc.
- Rechnungen an abgeschlossene Bestellen hängen
- UI: Einfache Handhabung von abgeschickten Bestellungen
- z.B. Stornierung über einen Button, alle Daten anzeigen lassen, ...
Benutzer- und Rollensystem 👥
- Accounts mit Benutzername und Passwort
- Rollen und Rechtesystem:
- Admin: Entwickler für Support, administrative Zwecke
- Lieferant: Stammdaten selber verwalten
- Adresse, Telefonnummer, etc.
- Besteller: Kann Bestellungen tätigen, verwalten, etc.
- (Lagerpersonal): Verwaltung von Lagerbeständen (falls manuell) oder Hinzufügen neuer Produkte
- (Mitarbeiter): Lesen-Rechte, kann Bestellvorschläge erstellen
- ...
Produktpflege 💅
- Produkte über Stammdaten hinaus pflegen
- Stammdaten aus dem Lagerbestand:
- Produkt-Nr.
- Lagerbestandsmenge
- Produktbeschreibung (evtl. Bilder)
- ...
- Verfügbare Lieferanten und Rahmenverträge
- Jegliche andere für Bestellungen relevante Informationen, die man von einem Produkt ableiten kann (uns ist nichts mehr eingefallen)
- Stammdaten aus dem Lagerbestand:
- Produktübersicht über eine Datenbank
- UI Mockup (mithilfe von ChatGPT):
Systemübergreifende Kompatibilität 🗺
- Web-Oberfläche über ein lokales Netzwerk für Darstellung auf allen Geräten
🆘 Drittanbieterkomponenten
Interne Schnittstellen:
- Interner Lagerbestand
- Anhand von aktuellen Lagerbeständen Vorschläge generieren: Interne Schnittstelle zum Bestandsmanagement
- Daten aus dem Lagerbestand übernehmen
- API-Schnittstellen für Lieferanten (Wir stellen bereit)
- Rechnungen von abgeschlossenen Bestellungen
Externe Schnittstellen:
- Exportfunktionen für PDF, CSV, JSON, Excel durch Drittanbieter App
- API-Schnittstellen von Lieferanten (Sie stellen bereit)
👙 Bonus-Content
Video-Vorführung einer ersten Version der Bestellsoftware: Link