Feuerwehr-Software – Projektübersicht
Dieses Projekt bildet die Verwaltung einer Feuerwache in Java ab. Ziel ist ein objektorientiertes System, das Fahrzeuge, Feuerwehrleute und Einsätze realitätsnah modelliert.
Eine Feuerwache verfügt über:
- 18 Fahrzeuge in 4 Kategorien (PKW/LKW) mit spezifischen Sonderattributen.
- 80 Feuerwehrleute, davon 10 LKW-Fahrer und 70 PKW-Fahrer.
Fahrzeuge können ausfallen (Wartung), Feuerwehrleute können temporär ausfallen (krank/Urlaub). Einsätze benötigen jeweils unterschiedliche Mindestmengen an Fahrzeugen und Personal. Die Software soll sicherstellen, dass nur verfügbare Ressourcen genutzt werden.
- Klassenhierarchie für Fahrzeugtypen:
- Einsatz-Leitfahrzeug (PKW) – Dienstgrad
- Tank-Löschfahrzeug (LKW) – Tankkapazität
- Mannschaftstransporter (LKW) – Baujahr
- Leiterwagen (LKW) – maximale Leiterhöhe
- Feuerwehrleute mit Berechtigungen (PKW/LKW) und Status (verfügbar, krank, Urlaub).
- Verwaltung der Gesamtbestände gemäß Vorgaben.
- Team für einen Einsatz zusammenstellen
- Nutzer wählt eine Einsatzart.
- Software prüft Mindestanforderungen und erlaubt Übererfüllung.
- Ausgabe aller Sonderattribute der beteiligten Fahrzeuge.
- Einsatz beenden
- Freigabe aller beteiligten Ressourcen.
- Fahrzeuge markieren als „in Wartung“ / wieder freigeben.
- Feuerwehrleute markieren als „krank“ oder „im Urlaub“ / wieder freigeben.
- Automatische Teamzusammenstellung
- System schlägt eine gültige Mindestkonfiguration vor.
- Programm beenden
- Anzahl noch verfügbarer Fahrzeuge und Feuerwehrleute.
- Welche Einsatzarten aktuell noch erfüllbar sind.
| Einsatzart | FWL | ELW | TLF | MTW | LW |
|---|---|---|---|---|---|
| Wohnungsbrand | 22 | 1 | 2 | 1 | 1 |
| Verkehrsunfall | 16 | 1 | 1 | 1 | 0 |
| Naturkatastrophe | 55 | 3 | 3 | 3 | 2 |
| Industrieunfall | 40 | 3 | 2 | 2 | 2 |
Eine robuste, klar strukturierte Java-Anwendung, die alle oben beschriebenen Verwaltungs-, Prüf- und Simulationsfunktionen bereitstellt und eine saubere objektorientierte Architektur demonstriert.
Beim Bauen über mvn clean package erzeugt das JavaFX Maven Plugin ein komplettes Runtime-Image unter target/feuerwehrsoftware sowie das verteilbare Archiv target/FeuerwehrSoftware.zip. Neben dem eigentlichen Launcher in bin/.
mvn clean packageausführen.- Start:
- Windows:
target\feuerwehrsoftware\feuerwehrsoftware.bat(Shortcut) oder weiterhintarget\feuerwehrsoftware\bin\feuerwehrsoftware.bat. - macOS/Linux:
./target/feuerwehrsoftware/bin/feuerwehrsoftware(wie gehabt, ggf. ausführbar machen).
- Windows:
Zum Entwickeln kann die Anwendung lokal mit mvn javafx:run gestartet werden.
- Vor jedem Commit oder Push
mvn spotless:applyausführen, damit alle Quellen sauber formatiert bleiben. - Den Spotless-Pre-Push-Hook einmal pro Klon mit
mvn spotless:install-git-pre-push-hookinstallieren; er startet automatischspotless:checkund verhindert unformatierte Pushes. - Den Hook nicht deaktivieren – so landen keine unformatierten Änderungen im Remote-Repository.
Alle Feuerwehr-Stationen werden als einzelne JSON-Dateien im von ProgramPaths verwalteten Datenverzeichnis gespeichert. StationStorage erstellt dieses Verzeichnis beim ersten Start automatisch und legt darin einen Unterordner stations/ an. Die Dateien heißen wie der Stationsname (z. B. Innenstadt.json).
Speicherorte nach Betriebssystem:
- Windows:
%APPDATA%\FeuerwehrSoftware\stations(Fallback:%USERPROFILE%\FeuerwehrSoftware\stations, fallsAPPDATAnicht gesetzt ist). - macOS:
~/Library/Application Support/FeuerwehrSoftware/stations - Linux:
~/.config/feuerwehrsoftware/stations
Zum Sichern oder Austauschen einer Station genügt es, die entsprechende JSON-Datei aus diesem Verzeichnis zu kopieren oder dort abzulegen. Beim nächsten Programmstart steht sie automatisch im Stationsauswahldialog zur Verfügung.

