| .claude | ||
| .zed | ||
| config | ||
| core | ||
| dashboard | ||
| docs | ||
| static | ||
| templates | ||
| training | ||
| .gitignore | ||
| .python-version | ||
| CLAUDE.md | ||
| main.py | ||
| manage.py | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
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
- Python 3.12+
- uv (https://docs.astral.sh/uv/)
Setup
- Repository klonen:
git clone <repository-url>
cd grannus
- Virtuelle Umgebung wird automatisch von uv verwaltet:
uv sync
- Datenbank initialisieren:
uv run python manage.py migrate
- Superuser erstellen (falls noch nicht vorhanden):
uv run python manage.py createsuperuser
- Beispieldaten laden (optional):
uv run python manage.py load_sample_data
- Entwicklungsserver starten:
uv run python manage.py runserver
- 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.