Online Übungsmanagement
Find a file
2025-11-23 19:14:21 +01:00
.claude initial working forms 2025-11-23 14:54:29 +01:00
.zed configure django extension 2025-11-14 16:58:31 +01:00
config initial image upload 2025-11-23 19:14:21 +01:00
core show user profile details everywhere 2025-11-23 15:18:20 +01:00
dashboard initial image upload 2025-11-23 19:14:21 +01:00
docs potential import 2025-11-23 15:05:13 +01:00
static initial working forms 2025-11-23 14:54:29 +01:00
templates initial image upload 2025-11-23 19:14:21 +01:00
training initial image upload 2025-11-23 19:14:21 +01:00
.gitignore Implement core models and training app 2025-11-12 19:15:44 +01:00
.python-version init 2025-11-12 16:42:24 +01:00
CLAUDE.md add CLAUDE 2025-11-23 14:57:04 +01:00
main.py init 2025-11-12 16:42:24 +01:00
manage.py Implement core models and training app 2025-11-12 19:15:44 +01:00
pyproject.toml frontend phase 1 2025-11-12 20:46:37 +01:00
README.md Update README with installation and setup instructions 2025-11-12 19:16:06 +01:00
uv.lock frontend phase 1 2025-11-12 20:46:37 +01:00

Grannus - Feuerwehr Übungsplanungs App

Grannus ist eine Django Webapplikation, welche Unterstützung bei der Planung von Feuerwehrübungen bietet. Sie ist unter https://uebungen.feuerwehrurdorf.ch erreichbar.

Funktionen

  • Jahresplanung von Feuerwehrübungen
  • Wissens- und Reglementenbibliothek - PDFs, Bilder und Links, welche Feuerwehrwissen vermitteln, indexiert und von Übungen verwendet
  • Planung von Material und Fahrzeugaufteilung pro Übung

Jahresplanung

In der Jahresplanung (Kalenderjahr) werden die Ausbilungsschwerpunkte pro Spezialisierung festgelegt. Im Verlauf der Planung werden die Übungen im Detail geplant und der jeweiligen Spezialisierung und Ausbilungsschwerpunkten zugeordnet.

Übungsplanung

Jede Feuerwehrübung hat:

  • Schwerpunkte
  • Übungsleiter (AdF) und Stellvertreter (AdF)
  • Zug
  • Datum und Zeit (kann mehrere haben, falls dieselbe Übung mehrmals durchgeführt wird)
  • Ort (Karte mit Übungsposten)
  • Zieldefinitionen
  • Übungsablauf mit Zeitplan
  • Üblicherweise mehrere Übungsposten (kann aber auch keinen haben)
  • Zugewiesene Fahrzeuge
  • Zugewiesenes Material
  • Bemerkungen/Hinweise/Verantwortlichkeiten
  • Verantwortlich für das Retablieren

Jeder Übungsposten hat:

  • Einen oder mehrere Postenleiter (AdF)
  • Zieldefinitionen für Posten (Bilanzpunkte)
  • Ablaufbeschreibung / Zeitplan
  • Postendauer
  • Anzahl Teilnehmer
  • Ausbildungsstufe (anlernen, festigen oder anwenden)
  • Karte mit Ausbildungsraum und spezifischen Ausbilungseinträgen (Pins auf Karte mit Beschreibung)
  • Fotos und Skizzen
  • Link zu Feuerwehrwissen und Reglementen
  • Materialliste
  • Wichtige Punkte/Bemerkungen/Hinweise

Datenverwaltung

Zur Strukturierung werden folgende Daten relationell verwaltet:

  • Grad: Name
  • Zug: Name
  • Angehöriger der Feuerwehr (AdF): Vorname, Name, Grad, Zug
  • Schwerpunkte
  • Spezialisierung: Offiziere, Kader, Mannschaft, Atemschutz, MWD (Motorwagendienst), Supportzug FU (Führungsunterstützung), Supportzug San (Sanität), Supportzug VA (Verkehrsdienst)
  • Fahrzeug: Name, Anzahl Plätze
  • Material: Name, Beschreibung

Weitere Funktionen

  • Kalenderansicht
  • Druckansicht
  • "Meine Übungen"
  • Änderungen in Django Auditlog verfolgen

Zukünftige Funktionen

Funktionen, welche vorerst nicht implementiert werden.

  • Status von Jahresplanung, Übungen und Posten: Entwurf, Übermittelt, Freigegeben
  • Rollen: Ausbildungschef, Übungsleiter, Postenleiter mit unterschiedlichen rechten (z.B. Status auf "Freigegeben" setzen, Jahresplanung erstellen / editieren)

Technische Details

Folgende technischen Komponenten werden eingesetzt:

  • Astral uv
  • Python Django
  • SQLite
  • Leaflet (interaktive Karten)
  • Bootstrap 5 CSS (geplant)
  • HTMX (geplant)
  • Docker (geplant)
  • Django Auditlog (geplant)

Installation und Entwicklung

Voraussetzungen

Setup

  1. Repository klonen:
git clone <repository-url>
cd grannus
  1. Virtuelle Umgebung wird automatisch von uv verwaltet:
uv sync
  1. Datenbank initialisieren:
uv run python manage.py migrate
  1. Superuser erstellen (falls noch nicht vorhanden):
uv run python manage.py createsuperuser
  1. Beispieldaten laden (optional):
uv run python manage.py load_sample_data
  1. Entwicklungsserver starten:
uv run python manage.py runserver
  1. Admin-Interface öffnen:
http://localhost:8000/admin/
Login: admin / admin (bei Beispieldaten)

Projektstruktur

grannus/
├── config/           # Django Projektkonfiguration
├── core/            # Kern-App (Benutzer, Ränge, Einheiten, Fahrzeuge, Material)
├── training/        # Trainings-App (Jahresplanung, Übungen, Posten)
├── docs/plans/      # Design-Dokumentation
├── manage.py        # Django Management-Script
└── pyproject.toml   # Projekt-Dependencies (uv)

Implementierter Stand

Phase 1 - Core Models (abgeschlossen)

  • Alle Datenmodelle implementiert
  • Django Admin konfiguriert mit Leaflet-Integration
  • Beispieldaten verfügbar
  • Alle Beziehungen getestet

🔜 Nächste Schritte

  • Custom Frontend (Bootstrap 5 + HTMX)
  • Kalenderansicht
  • Druckansicht
  • "Meine Übungen" Ansicht
  • Django Auditlog Integration

Datenmodell

Siehe docs/plans/2025-11-12-core-models-design.md für detaillierte Design-Dokumentation.