FeuerwehrApp ist ein webbasiertes Tool für Feuerwehren, um verschiedene administrative Aufgaben zu erledigen.
Mit FeuerwehrApp kann die Mannschaft eines Fahrzeuges nach einem Einsatz protokolliert werden.
Mit der App können Kleiderwarte offenen Bestellungen von Kameradinnen und Kameraden nachverfolgen. So verlieren sie nicht den Überblick über die Bestellungen.
Die App wurde vor allem für Fahrzeug-Tablets erstellt. Daher ist eine Grundfunktion, die Login-Daten für das jeweilige Fahrzeug fest einzuspeichern, damit sich dieses immer selbst anmeldet.
Eine Live-Demo ist auf https://app.feuerwehr-parkstetten.de sichtbar. Da für die App ein Login benötigt wird, sind die unterstützten Funktionen dort allerdings nicht sichtbar.
Zur Einrichtung wird zum einen ein Web-Server benötigt, auf dem die App gehostet werden kann, und es muss ein Firebase-Projekt erstellt werden, das als Datenbank dient.
Nachdem ein Firebase-Projekt erstellt wurde, muss es über die sogenannte Console konfiguriert werden:
- Benutzer werden im Menüpunkt "Authentication" angelegt
- Als Datenbank wird die "Realtime Database" verwendet
- Zunächst müssen die "Regeln" konfiguriert werden. Diese können aus der Datei database.rules.json kopiert werden
- In der Datenbank werden die Rollen der Benutzer konfiguriert:
- Die Liste der möglichen Rollen befindet sich hier, deren Berechtigungen sind hier zu sehen
- Die Zuweisung der Rollen erfolgt in folgendem Pfad in der Datenbank:
/users/[UID]/roles/[RoleId]
[UID]
: ID des Benutzers; kann im Menüpunkt "Authentication" ausgelesen werden[RoleId]
: Rollen-ID, wie in der oben genannten Datei hinterlegt- Der Wert dieses Felds muss
true
sein, damit die Zuweisung als solche erkannt wird
- Jeder Benutzer kann mehrere Rollen besitzen
- Die Fahrzeuge müssen ebenfalls manuell in die Datenbank unter dem Pfad
/vehicles/[VehicleId]/
eingetragen werden:[VehicleId]
: Beliebige ID des Fahrzeugs, wird normalerweise nicht zur Anzeige verwendet- Unter diesem Pfad können folgende Unterpunkte für jedes Fahrzeug gesetzt werden:
inServiceSince: [Jahr]
(optional): Wird zur Sortierung verwendetmaxCrewNumber: [max. Mannschaftsstärke]
name: [Name des Fahrzeugs]
: Wird zur Anzeige verwendetpictureUrl: [URL zu Bild]
(optional): Bild des Fahrzeugs, das zur Anzeige verwendet werden soll
Die App ist in TypeScript geschrieben, welches in reguläres JavaScript kompiliert wird. Es baut auf dem Framework Vue.js auf, und verwendet Vuetify für die UI-Komponenten.
Als Backend bzw. Datenbank wird Firebase eingesetzt, wodurch eine eigene Entwicklung und Wartung des Backends entfällt.
- WSL 2 und Docker Desktop installieren (Anleitung)
- Repository in einem WSL-Ordner clonen
- Ordner mit VS Code in WSL öffnen
- Dev-Container öffnen (siehe dazu oben verlinkte Anleitung)
- Terminal in VS Code öffnen
npm install
(nur erstmalig und bei Änderungen in NPM Dependencies)npm start