Skip to content

Latest commit

 

History

History
95 lines (65 loc) · 4.39 KB

File metadata and controls

95 lines (65 loc) · 4.39 KB

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.

Problemstellung

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.

Anforderungen

Modellierung

  • 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.

Funktionen

  • 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

Ständige Anzeige

  • Anzahl noch verfügbarer Fahrzeuge und Feuerwehrleute.
  • Welche Einsatzarten aktuell noch erfüllbar sind.

Einsatzarten (Mindestanforderungen)

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

Ziel

Eine robuste, klar strukturierte Java-Anwendung, die alle oben beschriebenen Verwaltungs-, Prüf- und Simulationsfunktionen bereitstellt und eine saubere objektorientierte Architektur demonstriert.

Bereitstellung & Nutzung

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/.

  1. mvn clean package ausführen.
  2. Start:
    • Windows: target\feuerwehrsoftware\feuerwehrsoftware.bat (Shortcut) oder weiterhin target\feuerwehrsoftware\bin\feuerwehrsoftware.bat.
    • macOS/Linux: ./target/feuerwehrsoftware/bin/feuerwehrsoftware (wie gehabt, ggf. ausführbar machen).

Zum Entwickeln kann die Anwendung lokal mit mvn javafx:run gestartet werden.

Code Style & Git Hooks

  • Vor jedem Commit oder Push mvn spotless:apply ausführen, damit alle Quellen sauber formatiert bleiben.
  • Den Spotless-Pre-Push-Hook einmal pro Klon mit mvn spotless:install-git-pre-push-hook installieren; er startet automatisch spotless:check und verhindert unformatierte Pushes.
  • Den Hook nicht deaktivieren – so landen keine unformatierten Änderungen im Remote-Repository.

Stationsdaten (JSON-Dateien)

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, falls APPDATA nicht 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.