Zum Inhalt

Admin GUI Handbuch

Dieses Handbuch erklärt, wie Sie das Django Admin Interface zur Verwaltung von MyCyclingCity verwenden.

Zugriff auf das Admin Interface

  1. Navigieren Sie zu: http://ihre-domain/admin/
  2. Melden Sie sich mit Ihren Superuser-Anmeldedaten an
  3. Sie sehen das Admin-Dashboard mit allen verfügbaren Modellen

Hauptbereiche

Das Admin Interface ist in folgende Bereiche organisiert:

MCC Core API & Models

Kern-Funktionalität für Radler, Gruppen und Kilometer-Tracking.

Gruppentypen

  • Zweck: Definieren Sie Typen von Gruppen (z.B. Klassen, Teams)
  • Wichtige Felder:
  • name: Gruppentyp-Name
  • description: Beschreibung des Gruppentyps
  • is_active: Gruppentyp aktivieren/deaktivieren
  • Verwendung: Erstellen Sie Gruppentypen, bevor Sie Gruppen erstellen

Gruppen

  • Zweck: Radgruppen verwalten (Klassen, Teams, etc.)
  • Wichtige Felder:
  • name: Gruppenname
  • group_type: Typ der Gruppe
  • school_name: Zugeordnete Schule
  • distance_total: Gesamt zurückgelegte Kilometer
  • is_active: Aktiv-Status
  • Features:
  • Aggregierte Kilometer anzeigen
  • Gruppenfortschritt verfolgen
  • Gruppenhierarchie verwalten (Eltern-/Kind-Gruppen)

Radler

  • Zweck: Einzelne Radler verwalten
  • Wichtige Felder:
  • user: Zugeordneter Django-Benutzer
  • id_tag: RFID-Tag-Identifikator
  • coin_conversion_factor: Coins pro Kilometer
  • distance_total: Gesamtkilometer
  • coins_total: Gesamt verdiente Coins
  • Features:
  • Radler mit Benutzern verknüpfen
  • Coin-Umrechnung konfigurieren
  • Radstatistiken anzeigen

Reise-Tracks

  • Zweck: Reiserouten und Tracks verwalten
  • Wichtige Felder:
  • name: Track-Name
  • gpx_file: GPX-Routendatei
  • distance_km: Track-Distanz
  • milestones: Zugeordnete Meilensteine
  • Verwendung: GPX-Dateien hochladen, um Reise-Tracks zu erstellen

Meilensteine

  • Zweck: Meilensteine entlang von Reise-Tracks definieren
  • Wichtige Felder:
  • name: Meilenstein-Name
  • travel_track: Zugeordneter Track
  • position_km: Position auf dem Track
  • is_locked: Sperr-Status
  • Features:
  • Gruppenfortschritt zu Meilensteinen verfolgen
  • Erfolge vergeben

Events

  • Zweck: Rad-Events verwalten
  • Wichtige Felder:
  • name: Event-Name
  • start_date: Event-Start
  • end_date: Event-Ende
  • groups: Teilnehmende Gruppen
  • Verwendung: Rad-Events erstellen und verwalten

IoT Management

Geräte- und Firmware-Verwaltung für ESP32-Geräte.

Geräte

  • Zweck: ESP32 Tachometer-Geräte verwalten
  • Wichtige Felder:
  • name: Geräte-Identifikator
  • display_name: Menschenlesbarer Name
  • group: Zugeordnete Gruppe
  • distance_total: Gesamt-Gerätekilometer
  • last_active: Zeitstempel der letzten Aktivität
  • Features:
  • Gerätestatus überwachen
  • Gerätestatistiken anzeigen
  • Geräteeinstellungen konfigurieren

Geräte-Konfigurationen

  • Zweck: Server-seitige Geräte-Konfiguration
  • Wichtige Felder:
  • device: Zugeordnetes Gerät
  • device_specific_api_key: Geräte-API-Key
  • send_interval_seconds: Datenübertragungsintervall
  • wheel_size: Radumfang
  • Features:
  • Geräteparameter remote konfigurieren
  • API-Key-Verwaltung
  • Konfigurationssynchronisation

Firmware-Images

  • Zweck: Firmware-Versionen für OTA-Updates verwalten
  • Wichtige Felder:
  • version: Firmware-Version
  • file: Firmware-Binary
  • is_active: Aktive Version
  • release_notes: Versionshinweise
  • Verwendung: Firmware für automatische Geräte-Updates hochladen

Geräte-Gesundheit

  • Zweck: Geräte-Gesundheitsstatus überwachen
  • Wichtige Felder:
  • device: Zugeordnetes Gerät
  • status: Gesundheitsstatus (online/offline/warnung/fehler)
  • last_heartbeat: Zeitstempel des letzten Heartbeats
  • consecutive_failures: Fehleranzahl
  • Features:
  • Echtzeit-Geräteüberwachung
  • Gesundheitsstatus-Tracking
  • Fehlerberichterstattung

MCC Game Interface

Spiel-Raum- und Session-Verwaltung.

Spiel-Räume

  • Zweck: Multiplayer-Spiel-Räume verwalten
  • Wichtige Felder:
  • room_code: Eindeutiger Raum-Identifikator
  • is_active: Raum-Status
  • master_session_key: Master-Session
  • device_assignments: Radler-Geräte-Zuordnungen
  • Features:
  • Aktive Spiel-Räume anzeigen
  • Raumaktivität überwachen
  • Raumstatus verwalten

Spiel-Sessions

  • Zweck: Einzelne Spiel-Sessions verfolgen
  • Wichtige Felder:
  • session_key: Session-Identifikator
  • room_code: Zugeordneter Raum
  • expire_date: Session-Ablauf
  • Features:
  • Aktive Sessions überwachen
  • Abgelaufene Sessions bereinigen
  • Spielstatus debuggen

Kiosk Management

Kiosk-Geräte- und Playlist-Verwaltung.

Kiosk-Geräte

  • Zweck: Kiosk-Anzeigegeräte verwalten
  • Wichtige Felder:
  • uid: Eindeutiger Geräte-Identifikator
  • name: Gerätename
  • is_active: Aktiv-Status
  • Verwendung: Kiosk-Anzeigen konfigurieren

Historische Berichte & Analysen

Analysen und Berichte für historische Daten.

Analytics Dashboard

  • Zweck: Übersichtliche Darstellung von Analysen und Statistiken
  • Features:
  • Gruppenstatistiken
  • Kilometer-Trends
  • Zeitraum-Analysen
  • Export-Funktionen
  • Zugriff: /admin/analytics/

Hierarchy Breakdown

  • Zweck: Detaillierte Aufschlüsselung der Gruppenhierarchie
  • Features:
  • Hierarchische Darstellung von Gruppen
  • Aggregierte Statistiken pro Ebene
  • Drill-Down-Funktionalität
  • Zugriff: /admin/analytics/hierarchy/

Session Management

Spiel-Session-Verwaltung und Monitoring.

Session Dashboard

  • Zweck: Übersicht über aktive und vergangene Spiel-Sessions
  • Features:
  • Aktive Sessions anzeigen
  • Session-Status überwachen
  • Session-Details einsehen
  • Session-Verwaltung
  • Zugriff: /admin/game/session/dashboard/

Mgmt (Verwaltung)

Server-Verwaltung und System-Monitoring.

Server Control

  • Zweck: Server-Status und -Steuerung
  • Features:
  • Server-Status anzeigen (laufend/gestoppt)
  • Server starten, stoppen, neustarten
  • Server-Metriken anzeigen
  • Health-Check-Status
  • Gunicorn-Konfiguration anzeigen
  • Zugriff: /admin/server/ oder über "Mgmt" → "Server Control"
  • Berechtigung: Nur für Superuser
  • Dokumentation: Siehe Health Check API für Details zur externen Überwachung mit Monitoring-Systemen

View Application Logs (Log File Viewer)

  • Zweck: Log-Dateien im Browser anzeigen
  • Features:
  • Auswahl von Log-Dateien aus dem data/logs/ Verzeichnis (Entwicklung) / /data/var/mcc/logs/ (Produktion)
  • Echtzeit-Log-Anzeige
  • Rotierte Log-Dateien durchsuchen
  • Filterung und Suche
  • Auto-Refresh-Funktion
  • Zugriff: /admin/logs/ oder über "Mgmt" → "View Application Logs"
  • Berechtigung: Nur für Superuser
  • Dokumentation:
  • Log-Dateien im Admin GUI anzeigen - Übersicht über Log-Dateien und Verwendung des Log File Viewers
  • Production Logging Setup - Best Practices für Logging in der Produktion

Backup Management

  • Zweck: Datenbank-Backups erstellen und verwalten
  • Features:
  • Manuelle Backup-Erstellung
  • Backup-Liste anzeigen
  • Backup-Download
  • Backup-Informationen (Größe, Datum)
  • Zugriff: /admin/backup/ oder über "Mgmt" → "Backup Management"
  • Berechtigung: Nur für Superuser

Gunicorn Configuration

  • Zweck: Gunicorn-Log-Level und Worker-Konfiguration
  • Wichtige Felder:
  • log_level: Log-Level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  • worker_class: Worker-Klasse (sync oder gthread)
  • workers: Anzahl der Worker-Prozesse
  • threads: Anzahl der Threads pro Worker (nur bei gthread)
  • Features:
  • Log-Level direkt im Admin GUI ändern
  • Worker-Konfiguration anpassen
  • Keine Environment-Variablen nötig
  • Singleton-Model (nur eine Instanz)
  • Zugriff: /admin/mgmt/gunicornconfig/ oder über "Mgmt" → "Gunicorn Configuration"
  • Hinweis: Nach Änderung ist ein Server-Neustart erforderlich
  • Dokumentation:
  • Gunicorn-Konfiguration im Admin GUI - Übersicht über die Konfiguration im Admin Interface
  • Gunicorn Worker Konfiguration - Details zu Worker-Klassen, Signal-Handler-Problemen und Performance

Application Logs

Hinweis: Logs werden nicht mehr in der Datenbank gespeichert. Verwenden Sie stattdessen den Log File Viewer (siehe oben), um Log-Dateien anzuzeigen.

Dokumentation: Siehe Log-Dateien im Admin GUI anzeigen und Production Logging Setup für Details zum Logging-System.

Request Logs

  • Zweck: HTTP-Request-Logs für Performance-Analysen
  • Features:
  • Request-Dauer anzeigen
  • Status-Codes filtern
  • Endpunkt-Analysen
  • Performance-Metriken
  • Zugriff: /admin/mgmt/requestlog/ oder über "Mgmt" → "Request Logs"

Performance Metrics

  • Zweck: System-Performance-Metriken überwachen
  • Features:
  • CPU- und Memory-Statistiken
  • Request-Durchsatz
  • Response-Zeiten
  • Trend-Analysen
  • Zugriff: /admin/mgmt/performancemetric/ oder über "Mgmt" → "Performance Metrics"

Alert Rules

  • Zweck: Alert-Regeln für Performance-Überwachung konfigurieren
  • Features:
  • Schwellenwerte definieren
  • Alert-Bedingungen konfigurieren
  • Benachrichtigungen einrichten
  • Zugriff: /admin/mgmt/alertrule/ oder über "Mgmt" → "Alert Rules"

Maintenance Control

  • Zweck: Maintenance Mode aktivieren/deaktivieren und IP-Whitelist konfigurieren
  • Features:
  • Maintenance Mode aktivieren/deaktivieren
  • IP-Whitelist konfigurieren (einzelne IPs und CIDR-Blöcke)
  • Admin-Zugriff während Wartung erlauben/verbieten
  • Aktuellen Status anzeigen
  • IP-Status prüfen (ob aktuelle IP in Whitelist ist)
  • Zugriff: /admin/maintenance/ oder über "Mgmt" → "Maintenance Control"
  • Berechtigung: Nur für Superuser
  • Dokumentation: Siehe Maintenance Mode Setup für Details zur Konfiguration, IP-Whitelist und Apache-Integration.

Maintenance Configuration

  • Zweck: IP-Whitelist und Admin-Zugriff konfigurieren
  • Wichtige Felder:
  • ip_whitelist: IP-Adressen oder CIDR-Blöcke (eine pro Zeile)
  • allow_admin_during_maintenance: Admin-Zugriff für Superuser erlauben
  • Zugriff: /admin/mgmt/maintenanceconfig/ oder über "Mgmt" → "Maintenance Configurations"
  • Berechtigung: Nur für Superuser
  • Dokumentation: Siehe Maintenance Mode Setup für Details zur IP-Whitelist-Konfiguration.

Minecraft Control

  • Zweck: Minecraft-Worker-Status und -Steuerung
  • Features:
  • Worker-Status anzeigen (Minecraft-Bridge-Worker und Snapshot-Worker)
  • Worker starten, stoppen, neustarten
  • Coin-Synchronisation zwischen MyCyclingCity und Minecraft-Server verwalten
  • Outbox-Events anzeigen und verwalten
  • RCON-Verbindung testen
  • Manuelle Synchronisation auslösen
  • Zugriff: /admin/minecraft/ oder über "Minecraft Verwaltung" → "Minecraft Control"
  • Berechtigung: Nur für Superuser
  • Hinweis: Der Worker synchronisiert Coins zwischen der Django-Datenbank und dem Minecraft-Server über RCON. Er steuert nicht den Minecraft-Server selbst.
  • Dokumentation: Siehe Minecraft-Integration für Details zur Coin-Synchronisation, RCON-Kommunikation, Outbox-Pattern und Konfiguration.

Häufige Aufgaben

Neuen Radler erstellen

  1. Navigieren Sie zu MCC Core API & ModelsRadler
  2. Klicken Sie auf Radler hinzufügen
  3. Füllen Sie die erforderlichen Felder aus:
  4. user: Django-Benutzer auswählen oder erstellen
  5. id_tag: RFID-Tag-ID eingeben
  6. coin_conversion_factor: Coins pro Kilometer setzen
  7. Klicken Sie auf Speichern

Gerät einer Gruppe zuordnen

  1. Navigieren Sie zu IoT ManagementGeräte
  2. Wählen Sie das Gerät aus
  3. Wählen Sie im Feld Gruppe die Zielgruppe aus
  4. Klicken Sie auf Speichern

Firmware hochladen

  1. Navigieren Sie zu IoT ManagementFirmware Images
  2. Klicken Sie auf Firmware Image hinzufügen
  3. Füllen Sie aus:
  4. version: Versionsnummer (z.B. "1.2.3")
  5. file: Firmware-Binary (.bin) hochladen
  6. is_active: Aktivieren, wenn dies die aktive Version ist
  7. release_notes: Änderungen beschreiben
  8. Klicken Sie auf Speichern

Geräteeinstellungen konfigurieren

  1. Navigieren Sie zu IoT ManagementDevice Configurations
  2. Wählen Sie oder erstellen Sie eine Konfiguration für ein Gerät
  3. Konfigurieren Sie:
  4. send_interval_seconds: Wie oft das Gerät Daten sendet
  5. wheel_size: Radumfang in cm
  6. device_specific_api_key: Geräte-Authentifizierungsschlüssel
  7. Klicken Sie auf Speichern

Geräte-Gesundheit anzeigen

  1. Navigieren Sie zu IoT ManagementDevice Health
  2. Status für alle Geräte anzeigen:
  3. Grün: Online und gesund
  4. Gelb: Warnung (keine kürzliche Aktivität)
  5. Rot: Fehler oder offline
  6. Klicken Sie auf ein Gerät, um detaillierte Gesundheitsinformationen zu sehen

Spiel-Räume verwalten

  1. Navigieren Sie zu MCC Game InterfaceGame Rooms
  2. Alle aktiven und inaktiven Räume anzeigen
  3. Klicken Sie auf einen Raum, um:
  4. Raumstatus anzuzeigen
  5. Teilnehmer zu sehen
  6. Spielfortschritt zu überwachen
  7. Raum zu beenden, falls nötig

Erweiterte Features

Bulk-Aktionen

Viele Admin-Seiten unterstützen Bulk-Aktionen: 1. Mehrere Elemente mit Checkboxen auswählen 2. Eine Aktion aus dem Dropdown wählen 3. Auf Los klicken

Filterung und Suche

  • Listen-Filter: Verwenden Sie Seitenleisten-Filter, um Ergebnisse einzugrenzen
  • Suche: Verwenden Sie Suchfelder, um bestimmte Elemente zu finden
  • Datumshierarchie: Klicken Sie auf Datumslinks, um nach Zeitraum zu filtern

Inline-Bearbeitung

Einige Modelle unterstützen Inline-Bearbeitung: - Verwandte Objekte direkt vom übergeordneten Objekt aus bearbeiten - Neue verwandte Objekte hinzufügen, ohne die Seite zu verlassen

Benutzerdefinierte Aktionen

Einige Modelle haben benutzerdefinierte Admin-Aktionen: - Sessions löschen: Spiel-Sessions in Bulk löschen - Daten exportieren: Modelldaten nach CSV/JSON exportieren - Bereinigung: Abgelaufene oder verwaiste Datensätze entfernen

Häufige Verwaltungsaufgaben

Server neu starten

  1. Navigieren Sie zu MgmtServer Control
  2. Prüfen Sie den aktuellen Server-Status
  3. Klicken Sie auf Restart Server
  4. Warten Sie, bis der Neustart abgeschlossen ist

Log-Dateien anzeigen

  1. Navigieren Sie zu MgmtView Application Logs
  2. Wählen Sie eine Log-Datei aus dem Dropdown-Menü
  3. Die Log-Datei wird automatisch aktualisiert (Auto-Refresh)
  4. Verwenden Sie die Suchfunktion, um nach spezifischen Einträgen zu suchen

Backup erstellen

  1. Navigieren Sie zu MgmtBackup Management
  2. Klicken Sie auf Create Backup
  3. Warten Sie, bis das Backup erstellt wurde
  4. Laden Sie das Backup herunter, falls nötig

Gunicorn Log-Level ändern

  1. Navigieren Sie zu MgmtGunicorn Configuration
  2. Wählen Sie das gewünschte Log-Level aus
  3. Klicken Sie auf Speichern
  4. Wichtig: Starten Sie den Server neu (siehe "Server neu starten")

Analytics anzeigen

  1. Navigieren Sie zu Historische Berichte & AnalysenAnalytics Dashboard
  2. Wählen Sie den gewünschten Zeitraum
  3. Wählen Sie die zu analysierenden Gruppen
  4. Exportieren Sie die Daten bei Bedarf

Session-Status überwachen

  1. Navigieren Sie zu Session ManagementSession Dashboard
  2. Sehen Sie alle aktiven Sessions
  3. Klicken Sie auf eine Session, um Details anzuzeigen
  4. Beenden Sie Sessions bei Bedarf

Best Practices

  1. Regelmäßige Backups: Immer vor Bulk-Operationen sichern
  2. Änderungen testen: Konfigurationsänderungen zuerst auf einem Entwicklungssystem testen
  3. Gesundheit überwachen: Regelmäßig den Device Health Status prüfen
  4. Bereinigung: Periodisch abgelaufene Sessions und alte Daten bereinigen
  5. Dokumentation: Benutzerdefinierte Konfigurationen und Änderungen dokumentieren

Fehlerbehebung

Kein Zugriff auf Admin

  • Überprüfen Sie, dass Sie als Superuser angemeldet sind
  • Prüfen Sie ALLOWED_HOSTS in den Einstellungen
  • Stellen Sie sicher, dass DEBUG=True in der Entwicklung

Änderungen werden nicht gespeichert

  • Prüfen Sie auf Validierungsfehler (roter Text)
  • Überprüfen Sie, dass erforderliche Felder ausgefüllt sind
  • Prüfen Sie Datenbankberechtigungen

Gerät erscheint nicht

  • Überprüfen Sie, dass das Gerät in Geräte registriert ist
  • Prüfen Sie den Device Health Status
  • Stellen Sie sicher, dass das Gerät mindestens einen Heartbeat gesendet hat

Verwandte Dokumentation