konfig update & module

This commit is contained in:
Julian Krauser 2025-02-08 12:54:32 +01:00
parent c0c68c565d
commit 9e7519ace0
13 changed files with 86 additions and 14 deletions

View file

@ -25,5 +25,12 @@ ff-admin-server:
- BACKUP_INTERVAL=<backup interval>
- BACKUP_COPIES=<backup parallel copies>
- BACKUP_AUTO_RESTORE=<boolean>
- USE_SECURITY_STRICT_LIMIT=<boolean>
- SECURITY_STRICT_LIMIT_WINDOW=<time window>
- SECURITY_STRICT_LIMIT_REQUEST_COUNT=<strict_request_count>
- USE_SECURITY_LIMIT=<boolean>
- SECURITY_LIMIT_WINDOW=<time window>
- SECURITY_LIMIT_REQUEST_COUNT=<request_count>
- TRUST_PROXY=<proxy config>
volumes:
- <volume|local path>:/app/files

View file

@ -61,9 +61,8 @@ Das Fehlen einer geforderten Variable oder die falsche Angabe eines Variablen-We
\
\
Innerhalb dem Ordner, der dem Volume zugeordnet ist, werden Backups und Ausdrucke der geschriebenen Protokolle und Newsletter abgelegt.
#pagebreak()
\
\
*Datenbank*
Als Datenbank können MySQL, Postgres und SQLite verwendet werden. Postgres wird für den Produktiven Einsatz empfohlen.
@ -173,7 +172,7 @@ npm run start
Folgende Werte können zu einem Container konfiguriert werden:
#table(
columns: (auto, 1fr, 15%, auto),
columns: (35%, 1fr, 10%, auto),
inset: 5pt,
table.header(
[*Variable*], [*Zweck*], [*Fallback*], [*optional*]
@ -210,6 +209,23 @@ Folgende Werte können zu einem Container konfiguriert werden:
"BACKUP_INTERVAL", "Wie viele Tage Abstand sollen zwischen Backups liegen? (min. 1)", "1", "✅",
"BACKUP_COPIES", "Wie viele parallele Kopien von Backups sollen parallel Verfügbar sein? (min. 1)", "7", "✅",
"BACKUP_AUTO_RESTORE", "Soll das neueste Backup bei Server-Start automatisch geladen werden, wenn die Datenbank als leer erkannt wird?", "true", "✅",
"USE_SECURITY_STRICT_LIMIT","Soll ein Anfrage-Limit für Login, Reset und Co gesetzt werden? \nIn diesem Fall ist der Nutzer nicht angemeldet, sondern versucht es.","true","✅",
"SECURITY_STRICT_LIMIT _WINDOW","Über welches Zeitfenster soll das Limit angewandt werden? \nFormat: [0-9]*(y|d|h|m|s)","15m","✅",
"SECURITY_STRICT_LIMIT _REQUEST_COUNT","Wie viele fehlerhafte Anfragen müssen gesendet werden, bis das Limit aktiviert ist?","15","✅",
"USE_SECURITY_LIMIT","Soll ein Anfrage-Limit für Anfragen innerhalb der App gesetzt werden? \nIn diesem Fall ist der Nutzer angemeldet.","true","✅",
"SECURITY_LIMIT_WINDOW","Über welches Zeitfenster soll das Limit angewandt werden? \nFormat: [0-9]*(y|d|h|m|s)","1m","✅",
"SECURITY_LIMIT_REQUEST _COUNT","Wie viele fehlerhafte Anfragen müssen gesendet werden, bis das Limit aktiviert ist?","500","✅",
"TRUST_PROXY",[
Wird der Server hinter einem Proxy betrieben und Rate-Limit verwendet?
Ist dieser Wert nicht gesetzt, wird davon ausgegangen, dass kein Proxy verwendet wird.
\
\
Folgende Werte können gesetzt werden:\
true / false\
Anzahl der Proxies: [0-9]\*\
IP-Adresse des Proxy: ip\
IP-Adressen der Proxy: ip1,ip2,...
],"","✅",
"", "", "", "",
table.cell(colspan: 4)[⬇️ Database-Variablen],
"MYSQL_DATABASE", "Name der Datenbank, die bei Erstellung direkt angelegt wird.", "", "💥",

View file

@ -2,13 +2,13 @@
FF Admin nutzt verschiedenste Module, um Daten zu organisieren, die Verwaltung zu vereinfachen und Berechtigungen sinnvoll setzen zu können.
== Mitgliederverwaltung & Stammdaten
#include "./4-modules/1-members.typ"
== Kalender
#include "./4-modules/2-calendar.typ"
== Protokolle
#include "./4-modules/3-protocol.typ"
== Newsletter
#include "./4-modules/4-newsletter.typ"
== Backups

View file

@ -0,0 +1,27 @@
#import "@preview/wrap-it:0.1.1": *
== Mitgliederverwaltung & Stammdaten
#wrap-content(
figure(
image("../../images/member-base-data.png", width: 7cm),
),
)[
Die Mitgliederverwaltung ermöglicht die strukturierte Erfassung und Verwaltung von Mitgliederdaten. Bevor einzelne Mitgliederdatensätze angelegt werden können, müssen zunächst die Mitgliederstammdaten definiert werden. Diese Stammdaten dienen als Grundlage für die spätere Datenerfassung und ermöglichen eine einheitliche, standardisierte Verwaltung. Sind die Stammdaten einmal hinterlegt, können sie bei der Erfassung neuer Mitglieder verwendet werden.
Dazu gehören grundlegende Kategorien wie Anrede, Auszeichnungen, Kommunikationskanäle, Mitgliedsstatus, Qualifikationen und Vereinsämter.
]
Alle Stammdaten können frei ausgefüllt werden und einem Mitglied je nach Typ mehrfach zugewiesen werden. Dabei können diese unterschiedliche Inhalte speichern. Ein Titel oder eine Bezeichnung können dabei nicht doppelt vorkommen.
- *Anrede:* Anreden können je nach Bedarf mit Werten wie Herr, Frau, Dr. oder Prof. erstellt werden.
- *Auszeichnungen:* Titel enthalten nur den Titel.
- *Kommunikationskanäle:* Kommunikationskanäle enthalten sowohl die Bezeichnung als auch die dem Kanal zugeordneten Kommunikationsarten. Folgende Felder können zugeordnet werden: Telefonnummer, E-Mail-Adresse, Postleitzahl, Stadt/Ort, Straße, Hausnummer und Hausnummernzusatz.
- *Mitgliedsstatus:* Mitgliedsstatus sind frei wählbar und können die Zugehörigkeit zu einem Verein oder einer Vereinsgruppe widerspiegeln. Beispiele wären "aktiv", "passiv", "fördernd" oder "Tischtennis" oder "Fußball".
- *Qualifikationen:* Qualifikationen können frei vergeben werden. Zusätzlich kann eine Beschreibung angegeben werden. Beispiele sind "Atemschutzgeräteträger", "Gruppenführer"...
- *Vereinsämter:* Vereinsämter können ebenfalls frei belegt werden. Dabei können alle Funktionen im Verein von "Vorstand" bis "EDV" angelegt werden.
#figure(
image("../../images/member-edit-data.png", width: 100%),
)
Innerhalb der Mitgliederansicht können dann individuelle Mitgliederprofile angelegt und gepflegt werden. Diese enthalten persönliche Daten wie Name, Geburtsdatum sowie spezifische Informationen zur Mitgliedschaft wie Eintrittsdatum, Qualifikationen oder verliehene Auszeichnungen. Darüber hinaus bietet das System eine automatische Berechnung der Mitgliedschaftsdauer je zugewiesenem Status, um die aktive Zeit eines Mitglieds jederzeit nachvollziehen zu können.

View file

@ -0,0 +1 @@
== Kalender

View file

@ -0,0 +1 @@
== Protokolle

View file

@ -0,0 +1 @@
== Newsletter

View file

@ -1,7 +1,24 @@
= Ökosystem FF Admin
// Versand der Termine an Webseite
// Verwendung der Mitglieder durch Queries und co.
// Verwendung als Login-Service
#figure(
image("../images/oekosystem.png", width: 100%),
caption: [
Übersicht zum Ökosystem
],
)
\
Das *FF Ökosystem* bietet eine zentrale Lösung für die Verwaltung von Mitgliedern, Einsätzen und Inhalten.
\
\
*FF Admin* ist das Herzstück und dient neben der Mitglieder- und Geräteverwaltung auch als zentraler Login-Service für alle Module. Es stellt Stammdaten bereit und ermöglicht mit allen seinen Modulen die effiziente Verwaltung einer Feuerwehr oder Vereins.
\
\
*FF-Webpage* erleichtert die Erstellung und Verwaltung von Webseiteninhalten. Sie kann Kalenderdaten aus FF Admin übernehmen und Einsatzinformationen aus FF Operation veröffentlichen, um Mitglieder und Öffentlichkeit auf dem Laufenden zu halten.
\
\
*FF Operation* unterstützt das Einsatzmanagement, die Anwesenheitserfassung und den Geräteeinsatz. Es nutzt die Mitgliederdaten, Gerätschaften und co aus FF Admin und kann erfasste Einsätze an die Webseite weiterleiten.
\
\
\
*Disclaimer:* \
FF Operation befindet sich derzeit in Entwicklung und wurde noch nicht veröffentlicht.

View file

@ -1,6 +1,6 @@
= Roadmap
Folgende Funktionalitäten sind in Planung (Auszug):
Folgende Funktionalitäten sind für FF Admin in Planung (Auszug):
- *Calendar Link Dictionary:* Speicherung von Kalender-Link-Configs mit Aliase wie eine Name.
- *Reihenfolge von Protokoll-Inhalten:* Änderung der Reihenfolge von Abstimmungen, Beschlüssen und TOPs.
- *Mitglieder Ausdruck:* Druck der Daten eines Mitglieds anhand eines Templates.
@ -10,4 +10,6 @@ Folgende Funktionalitäten sind in Planung (Auszug):
- *Kalendereinträge und Webpage:* Versand der Eingetragenen Termine des Kalenders an die Webseite mit der Möglichkeit von Änderungen eines Termins.
- *Geräteverwaltung & Prüfpläne:* Erfassung von Gerätschaften mittels Barcode und Erstellung von Prüfplänen.
- *Erinnerungen:* Versand von Erinnerungen zu anstehenden Prüfungen oder Wartungen.
- *Finanzen I:* Speicherung und Erstellung von Rechnungen als pdf mit XML-Einbettungen für E-Rechnungen.
- *Finanzen II:* Darstellung der Einnahmen und Ausgaben in einem Graphen.

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
admin/images/oekosystem.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.