The beverages module is a template project to bootstrap the Java project in the Software Engineering lab. Each group’s repository is initialized with this template. It contains the following features:
-
a skeleton Java 17 web application based on Spring Boot and Salespoint framework (see
src/main/javaandsrc/test/java) -
Asciidoc documentation templates in
src/main/asciidoc
The repository follows the standard Maven project layout. Nearly all artifacts are stored in a subdirectory of src/:
src/
├── main/
│ ├── asciidoc/ -- Documentation of the development process and application (Asciidoc format)
│ ├── java/ -- Main source code of the application, separated into packages
│ └── resources/ -- Static assets (images, stylesheets), Thymeleaf templates, etc.
└── test/
└── java/ -- Source code of JUnit tests is stored separately
Pro tip: In GitHub, press t and a "fuzzy file finder" will appear, making it easy to navigate to a file.
-
In the IDE: find
Application.java, right-click project, select "Run As > Java Application" -
From the command line: run
./mvnw spring-boot:run
-
Run
./mvnw clean package. The packaged application (a JAR intarget/) can be run withjava -jar $jarName.
In einem Unternehmen wird die Versorgung der Büros mit Getränken aktuell mittels Hand- zetteln und Strichlisten organisiert. Da es immer wieder zu Problemen mit der Organisation der Getränkelisten und der Bezahlung kam, soll nun eine Verwaltungssoftware angeschafft werden, welche diese Aufgaben übernimmt, erleichtert und überwacht.
Die Software hat zwei Hauptaufgaben. Erstens sollen Mitarbeiter mittels eines Kontos vorhandene Getränke ihres Büros „einkaufen“ können. In der Realität nimmt sich der Mitarbeiter ein Getränk und bestätigt die Entnahme in der Software. Alle diese Entnahmen sollen auf eine Liste gesetzt werden,welche vor einer neuen Getränke-Bestellung des Büros beglichen werden muss. Die zweite Hauptaufgabe ist die Nachbestellung von Getränken der einzelnen Büros. Dabei sollen Mitarbeiter Getränke vorschlagen können. Später kann ein Verantwortlicher aus diesen Vorschlägen eine Bestellung erstellen und diese manuell bei einem Lieferanten bestellen. Alte Vorschläge und Bestellungen sollen dabei gespeichert werden, um Sie später einfach wiederholen zu können. Vorschläge sollen dabei das Getränk, Link zur Lieferanten-Webseite, Preis und Pfand enthalten. Vor einer Bestellung sollten diese Informationen vom Verantwortlichen leicht überprüft und aktualisiert werden können.
Diese zwei Hauptaufgaben sollen so umgesetzt werden, dass die Eingaben möglichst wenig Zeit brauchen, da Sie während des Büroalltags geschehen sollen. Andernfalls muss mit Akzeptanzproblemen gerechnet werden. Gleiches gilt für die Anmeldung.
Neben diesen zwei Hauptaufgaben muss die Software weiterhin einige organisatorische Aufgaben erfüllen. Zum einen muss es eine Nutzerverwaltung geben, welche drei Rollen kennt: Administrator, Verantwortlicher und Nutzer. Administratoren sollten uneingeschränkten Zugriff auf das System besitzen, währenddessen Verantwortliche nur Zugriff auf die Funktionen ihres Büros haben. Nutzer können nur Vorschläge einreichen und in ihrem Büro „einkaufen“. Jeder Nutzer soll dabei jederzeit Einblick in seinen Verbrauch und seine Schulden haben. Verantwortliche treiben diese ein und können die Schulden tilgen. Verantwortliche sollten dabei jederzeit den Lagerbestand des Büros sehen und ihre, durch Bestellungen entstandenen, Vorleistungen berechnen können.
Letztendlich sollte die Software Statistiken über Verbrauch, Kosten etc. erstellen können, welche für die Verantwortlichen und Nutzer interessant sein könnten.
Jede Seite enthält eine Navigationsleiste, welche genutzt wird um zwischen verschiedenen Seiten zu navigieren. Der Inhalt der Navigationsleiste hängt von der Rolle des Nutzers ab.
-
kann Getränke von seinem Büro ansehen und kaufen (Navigationsleiste → Angebote)
-
erhöht die eigenen Schulden, zu sehen in (Navigationsleiste → Benutzerkonto)
-
kann den letzten Kauf rückgängig machen
-
-
kann Vorschläge von seinem Büro ansehen und erstellen (Navigationsleiste → Vorschläge)
-
kann seine Daten editieren und seine Schulden ansehen (Navigationsleiste → Benutzerkonto)
-
kann Statistiken über den eigenen Konsum ansehen (Navigationsleiste → Statistiken)
-
kann sich Abmelden (Navigationsleiste → Abmelden)
-
kann Vorschläge seines Büros ansehen, in den Warenkorb legen, editieren und löschen (Navigationsleiste → Vorschläge)
-
beim Hinzufügen eines Vorschlages zum Warenkorb wird man zu (Navigationsleiste → Warenkorb) weitergeleitet
-
-
kann Bestellungen seines Büros ansehen, fertigstellen und abbrechen (Navigationsleiste → Bestellungen)
-
beim Fertigstellen einer Bestellung werden die Kosten zu den Vorleistungen/Schulden hinzugefügt, zu sehen in (Navigationsleiste → Benutzerkonto) und (Navigationsleiste → Büro)
-
-
kann Daten über sein Büro und seine aktuelle Vorleistung ansehen (Navigationsleiste → Büro)
-
kann den aktuellen Warenkorb ansehen, Mengen editieren und als Bestellung aufgeben (Navigationsleiste → Warenkorb)
-
sollte nichts im Warenkorb sein, wird man zu (Navigationsleiste → Büro) umgeleitet
-
-
kann die Benutzer seines Büros ansehen, editieren, löschen und neue Mitarbeiter hinzufügen. Zudem kann er die Schulden der Benutzer tilgen (Navigationsleiste → Benutzer)
-
kann seine Daten editieren und Vorleistung/Schulden ansehen (Navigationsleiste → Benutzerkonto)
-
kann Statistiken über den Konsum seines Büros ansehen (Navigationsleiste → Statistiken)
-
kann sich Abmelden (Navigationsleiste → Abmelden)
-
kann Vorschläge jedes Büros ansehen (Navigationsleiste → Vorschläge)
-
kann Bestellungen jedes Büros anschauen (Navigationsleiste → Bestellungen)
-
kann jedes Büro ansehen, bearbeiten und löschen (Navigationsleiste → Büro)
-
nur das Büro "IT" kann nicht gelöscht werden
-
-
kann die Benutzer jedes Büros editieren und löschen. Zudem kann er neue Benutzer zu jedem Büro hinzufügen (Navigationsleiste → Benutzer)
-
kann seine Daten editieren (Navigationsleiste → Benutzerkonto)
-
kann Statistiken über den Konsum jedes Büros ansehen (Navigationsleiste → Statistiken)
-
kann sich Abmelden (Navigationsleiste → Abmelden)
Nutzername: Employee
Passwort: 123
Rolle: Mitarbeiter/Employee
Büro: office1
Nutzername: Manager
Passwort: 123
Rolle: Verantwortlicher/Manager
Büro: office1
Nutzername: Manager2
Passwort: 123
Rolle: Verantwortlicher/Manager
Büro: office2
Nutzername: Admin
Passwort: 123
Rolle: Administrator/Admin
Büro: IT