# SE1 Team 3 — Fakturierungsanwendung Dieses Projekt entstand im Rahmen des Moduls Software Engineering 1 an der Hochschule Mannheim (SoSe 2026). Ziel war die arbeitsteilige Entwicklung einer lokalen Desktop-Anwendung zur Rechnungsstellung für Kleinstunternehmen und Freiberufler. Die Anwendung läuft vollständig offline, speichert alle Daten lokal und unterstützt den kaufmännischen Prozess von der Kundenverwaltung über die Produktpflege bis zur GoBD-konformen Rechnungserstellung. ## Starten ```bash # Kompilieren (macOS/Linux) javac -cp "lib/flatlaf.jar" -sourcepath src/main/java -d out $(find src/main/java -name "*.java") # Kompilieren (Windows PowerShell) javac -cp "lib/flatlaf.jar" -sourcepath "src\main\java" -d out (Get-ChildItem "src\main\java\kundenverwaltung\*.java").FullName (Get-ChildItem "src\main\java\bestandsmanagement\*.java").FullName (Get-ChildItem "src\main\java\belegworkflow\*.java").FullName (Get-ChildItem "src\main\java\ui\*.java").FullName # Anwendung starten (macOS/Linux) java -cp "out:lib/flatlaf.jar" ui.MainWindow # Anwendung starten (Windows) java -cp "out;lib/flatlaf.jar" ui.MainWindow ``` ## Tests ausfuehren ```bash # Tests kompilieren (macOS/Linux) javac -cp "out:lib/junit.jar" -d out $(find src/test/java -name "*.java") # Tests kompilieren (Windows) javac -cp "out;lib\junit.jar" -d out src\test\java\kundenverwaltung\KundenVerwaltungTest.java src\test\java\bestandsmanagement\BestandsmanagementTest.java src\test\java\belegworkflow\BelegworkflowTest.java # Tests ausfuehren java -jar lib/junit.jar execute --select-class=kundenverwaltung.KundenVerwaltungTest --class-path=out java -jar lib/junit.jar execute --select-class=bestandsmanagement.BestandsmanagementTest --class-path=out java -jar lib/junit.jar execute --select-class=belegworkflow.BelegworkflowTest --class-path=out ``` Daten werden lokal als CSV unter `data/` abgelegt (nicht versioniert). ## Projektstruktur | Paket | Gruppe | Inhalt | |---|---|---| | kundenverwaltung | J | Anlegen, Bearbeiten, Suchen und Loeschen von Kundendaten | | bestandsmanagement | L | Verwaltung von Artikeln, Preisen und Lagerbestaenden | | belegworkflow | K | Erstellung von Angeboten und Rechnungen, Schreibschutz | | ui | I | Grafische Benutzeroberfläche mit Swing und FlatLaf | Quellcode: `src/main/java/` — Tests: `src/test/java/` ## Testergebnisse | Gruppe | Testklasse | Anzahl | Status | |---|---|---|---| | J | KundenVerwaltungTest | 13 | Alle bestanden | | L | BestandsmanagementTest | 10 | Alle bestanden | | K | BelegworkflowTest | 10 | Alle bestanden | 29 Testfaelle — alle bestanden. ## Technologie - Java 25 (Temurin) - Java Swing + FlatLaf 3.4.1 - JUnit 5 - Lokale CSV-Datenhaltung ## Dokumentation Alle Projektunterlagen befinden sich unter `Dokumente/`: - `Lastenheft/` - `Pflichtenhefte/` - `Project_Charter/`