TuS Cremlingen · Platzorganisation

Sportplatz-Buchung

Buchungs- & Verwaltungssystem für Sportvereine

Vereinsunabhängig konfigurierbares Buchungssystem für Sportplätze. Wochenkalender, Serienbuchungen, DFBnet-Integration, automatischer Spielplan-Sync und Instagram-Posting — alles in einem System.

FastAPI · Python 3.13 HTMX · Jinja2 Notion API · Docker

Highlights

📅
Wochenkalender
Echtzeit-Verfügbarkeit mit Farbcodierung (frei / belegt / Sperre). Desktop 7-Tage-Ansicht, Mobile blätterbare Tagesansicht mit Wischgesten.
🔁
Serienbuchungen
Wöchentlich oder 14-tägig, Trainer-Zuweisung, Einzelausnahmen. DFBnet-Pflichtspiele verdrängen Serien automatisch.
DFBnet-Integration
CSV- und ICS-Massenimport mit Vorschau-Schritt. Automatischer Spielplan-Sync von fussball.de, manuell oder per Cron.
📸
Instagram-Posting
Wochenend-Spielvorschau automatisch als Karussell auf Instagram veröffentlichen — ohne manuellen Aufwand.
🔧
Zero-Code-Konfiguration
Vereinsname, Logo, Farben, Plätze, Rollen — alles über die Admin-UI. Kein Code anfassen, kein Neustart.
📧
E-Mail-Benachrichtigungen
Buchungsbestätigung, Storno, DFBnet-Verdrängung, Serienzusammenfassung — STARTTLS, Port 587.

Buchungssystem & Admin

🗓 Buchungssystem Port 1946
  • Einzelbuchungen für beliebige konfigurierbare Platztypen
  • Serienbuchungen wöchentlich / 14-tägig mit Trainer-Zuweisung
  • DFBnet-Verdrängung — Pflichtspiele verdrängen bestehende Buchungen + Mail
  • Massenimport — DFBnet-CSV und ICS mit Vorschau-Schritt
  • Sperrzeiten — ganztägig oder zeitlich begrenzt
  • Externe Termine — Auswärts, Turniere ohne Platzbuchung
  • Aufgaben / Schwarzes Brett — Typ, Priorität, Fälligkeit, Status
  • Audit-Log — Login, Buchungen, Stornierungen protokolliert
  • Lade-Overlay — HTMX-Statusmeldung nach 120 ms
⚙️ Admin-Bereich
  • Vereinskonfiguration — Name, Logo, Farben, Heimspiel-Keywords über UI
  • Platzkonfiguration — Rollen-Sichtbarkeit pro Platzgruppe
  • Nutzerverwaltung — Anlegen, Inline-Editor, Passwort zurücksetzen
  • Spielplan-Sync — Heimspiele von fussball.de, manuell oder Cron
  • Instagram-Karussell — automatisches Wochenend-Posting
  • Housekeeping — vergangene und stornierte Buchungen archivieren
  • Saisonübernahme — aktive Serien mit +1 Jahr duplizieren

Tech-Stack

Backend
Python 3.13 FastAPI Uvicorn APScheduler 3.10 pydantic-settings
Frontend
HTMX 2.0 Jinja2 Vanilla CSS
Datenbank
Notion API notion-client
Auth
JWT HS256 HTTP-only Cookie 8 h Session
Betrieb
Docker docker-compose systemd RotatingFileHandler
E-Mail
smtplib STARTTLS Port 587

Benutzerrollen

👟
Trainer
Buchen · eigene Buchungen stornieren · Termine & Aufgaben eintragen
🔑
Platzwart
Wie Trainer + Sperrzeiten verwalten
⚙️
Administrator
Alles · Nutzerverwaltung · Serien · DFBnet-Import · Vereinskonfiguration
📋
DFBnet
Wie Administrator · ohne Nutzerverwaltung
📅 Buchungssystem öffnen ⌥ GitHub ← Mission Control