Kein neues Modul. Zwoelf Phasen sind fertig, und die Wehr kann ab jetzt echte Daten hineingeben, ohne befuerchten zu muessen, sie beim naechsten Update zu verlieren. Neu dazu, weil beides zum Betrieb gehoert: update.sh aktualisiert auf einem Linux-Server in einem Befehl. Der Ablauf darf an jeder Stelle abbrechen, ohne eine halb aktualisierte Anlage zu hinterlassen: erst nachsehen ob es etwas Neues gibt, dann sichern, dann holen und bauen (schlaegt das fehl, laeuft die alte Fassung unveraendert weiter), dann umschalten, dann pruefen ob die Anwendung antwortet. Tut sie es nicht, stehen die Protokollzeilen da und die Befehle fuer den Rueckweg. docs/KURZANLEITUNG.md ist der Einstieg fuer die Wehr - nach Rollen sortiert, aufgabenorientiert statt nach Modulen, und bei jedem heiklen Punkt steht das Warum dabei. Die vollstaendige Anleitung hat 63 Kapitel; die liest niemand, bevor er das erste Geraet pruefen will. Die Roadmap haelt den Stand JEDER Freigabevoraussetzung fest, auch der offenen: Datenuebernahme entfaellt (die Wehr pflegt von Hand ein), Sicherungskonzept erledigt, Loeschkonzept technisch vollstaendig aber nicht abgenommen, Schulung steht aus, Atemschutzhinweis bewusst stehen gelassen. Eine Freigabe, die abhakt was nicht geprueft wurde, ist keine. Nebenbei die Ursache der Testflackerei gefunden, die sich durch mehrere Phasen zog: zwei Datenbanktests schalteten beim Aufraeumen ihre Trigger mit ALTER TABLE ... DISABLE TRIGGER ab - eine Schemaaenderung, die fuer die ganze Datenbank gilt. Vitest faehrt die Dateien parallel, also pruefte eine Datei gerade dass ein Trigger greift, waehrend eine andere ihn abgeraeumt hatte. Jetzt sitzungslokal ueber session_replication_role. Erstmals in diesem Projekt: fuenf Unit-Testlaeufe hintereinander 601 gruen und ein E2E-Lauf mit 268 gruen ohne Fehlschlag und ohne Flackern. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
284 lines
9.2 KiB
Markdown
284 lines
9.2 KiB
Markdown
# FLORIAN — Kurzanleitung
|
||
|
||
Alles, was man am Anfang braucht, auf ein paar Seiten. Nach Rollen sortiert:
|
||
such dir den Abschnitt, der zu dir gehört, und lies den Rest später.
|
||
|
||
Ausführlich steht alles in der [Anleitung](ANLEITUNG.md) — 63 Kapitel, zum
|
||
Nachschlagen, nicht zum Durchlesen.
|
||
|
||
---
|
||
|
||
## Für alle
|
||
|
||
### Anmelden
|
||
|
||
FLORIAN läuft im Browser. Die Adresse bekommst du vom Kommandanten.
|
||
|
||

|
||
|
||
Nach der Anmeldung landest du auf der Übersicht: was ansteht, was fällig ist,
|
||
was gemeldet wurde.
|
||
|
||
**Das Passwort gehört nach der ersten Anmeldung geändert.** Oben rechts auf
|
||
deinen Namen.
|
||
|
||
### Was du überall findest
|
||
|
||
| Links in der Leiste | Wofür |
|
||
|---|---|
|
||
| **Übersicht** | Die Startseite: Fristen, Mängel, nächste Termine |
|
||
| **Termine** | Übungsabende, Lehrgänge, Versammlungen — mit Rückmeldung |
|
||
| **Dienstausweis** | Dein Ausweis mit QR-Code, auch fürs Handy |
|
||
| **Wissen** | Merkblätter und Dienstanweisungen der Wehr |
|
||
|
||
Du siehst nur, was zu deiner Rolle gehört. Fehlt dir etwas, sag dem
|
||
Kommandanten Bescheid — Rollen werden dort vergeben.
|
||
|
||
### Zu einem Termin zurückmelden
|
||
|
||
**Termine** öffnen, den Termin anklicken, **Zusagen** oder **Absagen**. Fertig.
|
||
Wer absagt, kann einen Grund angeben; das hilft dem Ausbilder bei der Planung.
|
||
|
||
### Am Terminal im Gerätehaus
|
||
|
||
Am Wandtablet meldest du dich mit **PIN oder Ausweiskarte** an — nicht mit
|
||
E-Mail und Passwort. Deine PIN bekommst du vom Kommandanten.
|
||
|
||

|
||
|
||
Dort geht: anmelden zum Dienst, einen Mangel melden, eine Fahrt eintragen,
|
||
Schutzkleidung zur Reinigung geben.
|
||
|
||
---
|
||
|
||
## Für den Gerätewart
|
||
|
||
Das ist der Bereich, in dem FLORIAN am meisten abnimmt.
|
||
|
||
### Der wichtigste Bildschirm: Prüfungen
|
||
|
||

|
||
|
||
Unter **Prüfungen** steht, was wann fällig wird. Rot heißt überfällig, gelb
|
||
heißt demnächst. Die Fristen rechnet FLORIAN selbst aus den Prüfintervallen
|
||
der Gerätetypen aus — du musst nichts nachhalten.
|
||
|
||
### Ein Gerät prüfen
|
||
|
||
1. **Prüfungen** → das fällige Gerät anklicken → **Prüfung durchführen**.
|
||
2. Die Checkliste durchgehen. Sie kommt aus der Wartungsvorlage des Gerätetyps.
|
||
3. Ergebnis eintragen, unterschreiben, abschließen.
|
||
|
||

|
||
|
||
Danach entsteht ein **Prüfprotokoll als PDF** — das ist der Nachweis gegenüber
|
||
der Unfallkasse.
|
||
|
||
> **Achtung:** Ein abgeschlossenes Protokoll lässt sich nicht mehr ändern. Das
|
||
> ist Absicht — ein nachträglich änderbarer Nachweis wäre keiner. Ist etwas
|
||
> falsch, wird eine neue Prüfung erfasst.
|
||
|
||
### Ein Gerät anlegen
|
||
|
||
**Geräte** → **Gerät anlegen**. Pflicht sind nur Inventarnummer und
|
||
Bezeichnung; der Rest kann nachkommen.
|
||
|
||
Wähle möglichst einen **Gerätetyp** — daran hängen Prüfintervall und
|
||
Lebensdauer, und ohne Typ rechnet FLORIAN keine Frist.
|
||
|
||
### Einen Mangel bearbeiten
|
||
|
||
Mängel kommen meist vom Terminal — jemand meldet sie beim Einrücken.
|
||
|
||
**Mängel** → anklicken → jemandem zuweisen → nach der Behebung **erledigen**.
|
||
Ein Gerät mit einem schweren Mangel wird automatisch gesperrt.
|
||
|
||
### Was noch dazugehört
|
||
|
||
| Wo | Wofür |
|
||
|---|---|
|
||
| **Rückrufe** | Herstellerrückrufe: welche eurer Geräte betroffen sind |
|
||
| **Lebensdauer** | Helme, Schläuche, Schutzkleidung mit Höchstalter |
|
||
| **Fahrzeuge** | Beladung nach Geräteräumen |
|
||
|
||
---
|
||
|
||
## Für den Atemschutzgerätewart
|
||
|
||
> **Der wichtigste Satz zuerst:** Die Überwachungstafel am Fahrzeug bleibt
|
||
> führend. FLORIAN ergänzt sie, ersetzt sie nicht. Das steht auch dauerhaft
|
||
> über jeder Ansicht, und es soll dort stehen.
|
||
|
||
### Wer darf unter Pressluftatmer?
|
||
|
||

|
||
|
||
**Atemschutz** zeigt jeden Träger mit seinem Stand: G26, Belastungsübung,
|
||
Einsatzübung. Wer eine der Voraussetzungen nicht erfüllt, steht rot da — mit
|
||
Klartext, woran es liegt, nicht nur mit einer Farbe.
|
||
|
||
### Eine G26 eintragen
|
||
|
||
**Atemschutz** → **Nachweise** → Person wählen → G26 erfassen. Untersuchungsdatum,
|
||
Ergebnis und Gültigkeit reichen; den Befund speichert FLORIAN bewusst nicht.
|
||
|
||
Dasselbe für Belastungsübungen.
|
||
|
||
### Eine Überwachung führen
|
||
|
||
**Atemschutz** → **Überwachung eröffnen**. Trupp zusammenstellen, Druckwerte
|
||
in Intervallen eintragen, Rückzugsdruck im Blick behalten. FLORIAN rechnet den
|
||
Rückzugsdruck und warnt, bevor es knapp wird.
|
||
|
||

|
||
|
||
Nach dem Ende entsteht ein vollständiges Protokoll als PDF.
|
||
|
||
> Solange ein Trupp im Einsatz ist, lässt sich die Überwachung nicht beenden.
|
||
|
||
---
|
||
|
||
## Für den Kommandanten
|
||
|
||
### Mitglieder und Rollen
|
||
|
||
**Mitglieder** → Person anklicken → Rollen vergeben.
|
||
|
||
Neun Rollen, jede mit festem Rechteumfang. Die wichtigsten: Gerätewart,
|
||
Atemschutzgerätewart, Kassier, Schriftführer, Ausbilder.
|
||
|
||
**Jemand kommt nicht hinein?** Dann hat die Person eine Akte, aber kein Konto.
|
||
Konten verwaltet, wer den Server betreibt — unter *Wehren und Konten*.
|
||
|
||
### Einen Einsatz erfassen
|
||
|
||
**Einsätze** → **Einsatz anlegen**. Die sechs Zeitstempel (Alarmierung,
|
||
Ausrücken, Eintreffen, Einsatzende, Einrücken, Einsatzbereitschaft), die
|
||
beteiligten Fahrzeuge und die Mannschaft.
|
||
|
||

|
||
|
||
Daraus entsteht der **Einsatzbericht als PDF** und die Statistik fürs Jahr.
|
||
|
||
### Kostenersatz abrechnen
|
||
|
||
Fehlalarm einer Brandmeldeanlage, Öleinsatz mit Verursacher, vermieteter
|
||
Schulungsraum: **Kasse** → **Rechnungen** → *Rechnung schreiben*. Die Nummer
|
||
vergibt FLORIAN fortlaufend.
|
||
|
||
### Wenn jemand Auskunft über seine Daten verlangt
|
||
|
||
Kommt selten vor, hat aber eine Frist von einem Monat.
|
||
|
||
**Mitglieder** → Person → **Datenauskunft** → *Auskunft erstellen*. Daraus
|
||
entsteht ein PDF mit allem, was über die Person gespeichert ist. Ausdrucken
|
||
und aushändigen, fertig.
|
||
|
||
---
|
||
|
||
## Für den Kassier
|
||
|
||

|
||
|
||
### Buchen
|
||
|
||
**Kasse** → **Buchungen** → *Buchung erfassen*. Der Betrag ist immer positiv;
|
||
ob Einnahme oder Ausgabe, sagen die beiden Knöpfe daneben.
|
||
|
||
FLORIAN schlägt eine Kategorie vor — meist die richtige, weil er nachsieht,
|
||
wie ihr dieselbe Sache zuletzt gebucht habt.
|
||
|
||
### Kontoauszug einlesen
|
||
|
||
Statt fünfzig Umsätze abzutippen: im Online-Banking den **Umsatzexport**
|
||
herunterladen (CAMT.053 oder MT940), dann **Kasse** → **Buchungen** →
|
||
*Kontoauszug*.
|
||
|
||
Es entstehen **Entwürfe**, keine fertigen Buchungen — durchsehen musst du sie.
|
||
Umsätze, die schon in der Kasse stehen, erkennt FLORIAN und hakt sie nicht
|
||
noch einmal ab.
|
||
|
||
### Beiträge
|
||
|
||
Einmal im Jahr: **Kasse** → **Beiträge** → *Beitragslauf*. Vorher steht da, wie
|
||
viele Beiträge entstehen — und wer keinen passenden Satz hat.
|
||
|
||
Zahlungen hakst du in der Liste ab; dabei entsteht gleich die Buchung.
|
||
|
||
### Festschreiben — und was das bedeutet
|
||
|
||
Eine neue Buchung ist erst einmal ein **Entwurf** und änderbar. Mit
|
||
*Festschreiben* wird sie unveränderbar.
|
||
|
||
Ist danach etwas falsch, wird **gegengebucht**: eine zweite Buchung in die
|
||
andere Richtung, mit Begründung. Beide bleiben stehen. Das sieht nach mehr
|
||
Aufwand aus und ist genau der Punkt — eine verschwundene Buchung kann ein
|
||
Kassenprüfer nicht prüfen, eine berichtigte schon.
|
||
|
||
### Kassenprüfung
|
||
|
||
**Kasse** → **Abschluss** → *Kassenprüfung anlegen*. Links steht der Bestand
|
||
laut Buch, rechts trägst du ein, was gezählt wurde.
|
||
|
||
Bleibt eine Differenz, muss sie erklärt werden — sonst lässt sich der Abschluss
|
||
nicht festschreiben. In fünf Jahren weiß sonst niemand mehr, woher sie kam.
|
||
|
||
Danach entsteht der **Kassenprüfbericht als PDF** mit Unterschriftsfeldern.
|
||
|
||
---
|
||
|
||
## Für den, der den Server betreibt
|
||
|
||
### Sichern
|
||
|
||
```bash
|
||
npm run sicherung
|
||
```
|
||
|
||
Sichert Datenbank **und** Dateien. Das Ergebnis gehört auf ein anderes Gerät —
|
||
eine Sicherung auf derselben Festplatte hilft gegen einen Festplattenfehler
|
||
nicht.
|
||
|
||
### Einmal im Jahr proben
|
||
|
||
```bash
|
||
npm run wiederherstellen -- --quelle sicherungen/<Ordner>
|
||
```
|
||
|
||
So passiert nichts, es wird nur angezeigt, was geschähe. Erst mit `--wirklich`
|
||
wird zurückgespielt.
|
||
|
||
> Eine Sicherung, die nie zurückgespielt wurde, ist eine Vermutung. Der Ordner
|
||
> kann leer sein, der Auszug abgeschnitten — man erfährt es sonst an dem Tag,
|
||
> an dem man es nicht erfahren will.
|
||
|
||
### Aktualisieren
|
||
|
||
```bash
|
||
./update.sh --pruefen # nachsehen, ob es etwas Neues gibt
|
||
./update.sh # einspielen
|
||
```
|
||
|
||
Das Skript sichert von sich aus, bevor es etwas anfasst, und sagt bei einem
|
||
Fehler, wie der vorherige Stand zurückkommt.
|
||
|
||
---
|
||
|
||
## Wenn etwas nicht geht
|
||
|
||
| Was | Woran es meist liegt |
|
||
|---|---|
|
||
| **Anmeldung geht nicht** | Nach fünf Fehlversuchen ist das Konto fünf Minuten gesperrt. Kurz warten. |
|
||
| **Ein Menüpunkt fehlt** | Die Rolle fehlt. Der Kommandant vergibt sie unter *Mitglieder*. |
|
||
| **Ein PDF entsteht nicht** | Es wird im Hintergrund erzeugt; nach ein paar Sekunden die Seite neu laden. |
|
||
| **Das Terminal meldet niemanden an** | PIN falsch, oder das Tablet ist nicht mehr eingerichtet. |
|
||
| **Eine Buchung lässt sich nicht ändern** | Sie ist festgeschrieben. Gegenbuchen. |
|
||
|
||
Steht die Antwort nicht dabei: [Anleitung, letztes Kapitel](ANLEITUNG.md).
|
||
|
||
---
|
||
|
||
*FLORIAN läuft auf einem Server, den die Feuerwehr selbst betreibt. Es gibt
|
||
keine Telemetrie, keine Cloud und keine Weitergabe an Dritte — die Daten
|
||
bleiben im Gerätehaus.*
|