Hier siehst du, welche wichtigen Funktionen und Verbesserungen in Courtside gelandet sind — gruppiert nach Version. Die Chronik folgt dem echten Production-Stand, keine erfundenen Releases.
v1.0.55
Eltern-API: Primärpfad `/v1/clubs/{clubId}/roster` mit `category: jugend`; Legacy `/api/eltern/*` bleibt.
Eltern · Public API v1
GET `/v1/clubs/{clubId}/roster` — Jugendteams (`category: jugend`) + Kinder
GET `/v1/clubs/{clubId}/teams`, `…/spiele`, `…/ergebnisse`, `…/tabelle`
Tabelle in Eltern-Form (`ligaName`, `entries[].teamName` / `points` / `diff`)
Auth unverändert: Bearer `ELTERN_API_TOKEN`; Club-ID im Pfad
Legacy `/api/eltern/*` bleibt kompatibel
v1.0.54
Eltern-App-API: geschützter Kader-/Spielplan-Export nur Jugend U8–U18 (Bearer-Token).
Eltern · Public API
GET `/api/eltern/roster` — Jugendteams + Kinder (Vor-/Nachname, Team-IDs)
GET `/api/eltern/teams`, `/spiele`, `/tabelle` — Spielplan, Ergebnisse, TeamSL-Tabelle
Spielbericht erneut an den Spielleiter senden – klarer Dialog und Link im Filecenter.
Spieltag · Spielbericht
Nach erfolgreichem Versand: Button und Dialog „Erneut senden“ mit Hinweis auf letzte Sendung (Empfänger, Uhrzeit)
Gleicher Versandpfad wie Erstversand (storageKey → Storage → SMTP); Google Drive bleibt optional Soft-Skip
Dateien → Spielberichte: bei fertigen Heimspiel-PDFs Direktlink „Erneut senden“ / „An Spielleiter senden“ zum Spiel
Versand-Status robuster (auch wenn Zeitstempel als Zahl-String in jsonb liegt)
Kein neues SQL
v1.0.51
Postfach: Filecenter-Anhänge serverseitig (ohne 413) und Picker mit Suche/Kategorie.
Postfach · Anhänge
Schreiben / Antworten / Weiterleiten: „Aus Dateien“ hängt Filecenter-Dateien per ID an – der Server lädt aus dem Bucket club-files (kein Base64 im Request, kein HTTP 413 bei großen Dateien)
Picker: Suche und Filter Vorlagen / Dokumente / Team; Dateien über 12 MB als „zu groß für E-Mail“ markiert
Gilt auch für Entwürfe und geplanten Versand (clubFileId in attachments_json)
Kein neues SQL / Env – Filecenter-Migration club_files wie bisher
v1.0.50
Einsatzzeiten wieder als klassische Spieler×Achtel-Tabelle – mobil mit horizontalem Scroll.
Spieltag · Einsatzzeiten
Aufstellungsplan und Live-Einsatzübersicht: klassische Tabelle Spieler:in × A1…/V1… wieder auf dem Handy (keine Kacheln mehr)
Desktop/Tablet unverändert als Tabelle; Live-Modus und Datenmodell unverändert
Kein neues SQL
v1.0.49
Taktikboard-Feinschliff und Einsatzübersicht mobil ohne Seitwärts-Scroll.
Taktik
Linienfarbe beim Zeichnen und für ausgewählte Linien: Angriff, Verteidigung, Blau/Rot/Gelb oder Standard
Abspielgeschwindigkeit ½× / 1× / 1½× / 2× (wirkt auf die bestehende Schrittdauer)
Playbook: Spielzug duplizieren (Kopie mit neuem Namen)
Vollbild-Modus fürs Board (Handy/Halle); Werkzeuge auf schmalen Screens icon-first
Klarerer Leerzustand im Playbook; Freihand und animierte Schritte unverändert
Kein neues SQL – Farbe liegt in plays.lines / frames[].lines (jsonb)
Spieltag · Einsatzzeiten
Aufstellungsplan und Live-Gesamtübersicht: auf dem Handy pro Spieler:in umbrechende Achtel-/Viertel-Tasten statt breiter Tabelle
Besetzungszähler (z. B. A1 5/5) bleiben oben sichtbar; Tippen wie bisher Feld ● / Bank
Ab Tablet/Desktop: Tabelle mit fester Namensspalte und horizontalem Scroll (Touch)
Kein neues SQL
v1.0.47
Taktikboard: Freihand-Zeichnen zusätzlich zu geraden Pfeilen.
Taktik
Werkzeug „Freihand“: Kurven und Skizzen mit Finger oder Maus auf dem Board
Freihand-Linien speichern mit Spielzug und Schritten; Rückgängig und alle Linien löschen wie bisher
Bestehende Laufweg-/Pass-/Dribbling-/Block-Pfeile unverändert; Abspielen wechselt Linien pro Schritt wie zuvor
Kein neues SQL – Speicherung in bestehendem plays.lines / frames[].lines (jsonb)
v1.0.46
Punkte-Statistik, zuverlässigere Live-Minuten und animierte Taktikboard-Playbooks.
Spieltag & Statistik
Spiel → „Punkte“: erzielte Punkte vom Papierbogen (oder Foto) pro Kader-Spieler:in eintragen und speichern
Nur bestehende Kader-IDs – keine neuen Namen aus OCR; optional Hinweis wenn ein Spielbericht gespeichert ist
Statistik → Tab „Punkte“: Saison-Summe und Anzahl Spiele mit erfassten Punkten (Team+Saison-Filter wie bisher)
Werte liegen in games.lineup.points (jsonb) – kein neues SQL nötig
Spieltag · Minuten / Einsätze
Live-Minuten: offene Spielzeit wird regelmäßig und beim Verlassen der Seite in Minuten übernommen (Sync/Statistik)
Stoppuhr nach höchstens 3 Stunden Wandzeit automatisch pausiert (vergessener Start)
Hinweis wenn die Uhr noch läuft und man einen anderen Tab öffnet; Bestätigung vor „Uhr neu“
Spieluhr und Start/Pause bleiben auf dem Handy oben sichtbar beim Scrollen der Kaderliste
Live-Erfassung (Achtel/Viertel): max. Spieler:innen auf dem Feld wie bei Minuten
Taktik
Ablauf aus mehreren Schritten (Keyframes): Marker und Pfeile pro Schritt, Hinweistext optional
Abspielen mit sanfter Bewegung zwischen den Schritten; Pause und Stopp
Playbook-Liste zeigt Schrittanzahl bei Animationen; bestehende statische Spielzüge unverändert
Supabase: Spalte plays.frames (einmal SQL) – Speichern wie bisher über Sync
v1.0.44
TeamSL-Tabelle: bei mehr als 12 Ligen klare Vorauswahl statt Fehler – aktive Mannschaft zuerst, Ligen wählbar.
Übersicht
Mehr als 12 verknüpfte Ligen: Vorauswahl (aktive Mannschaft und weitere Teams), kein harter Abbruch mehr
Dialog „Ligen wählen“: bis zu 12 Ligen laden; Hinweistext auf Deutsch wenn gekürzt
Admin und Multi-Team-Coaches: Ligen der eigenen / aktiven Teams stehen vorne
v1.0.43
Spielbericht an Spielleiter: Erfolgs-Hinweis in der UI und Google Drive optional; Passmappe: Sitzungs-Hinweis statt „nicht im Storage“ plus Legacy-Pfad-Fallback.
Spieltag
Nach erfolgreichem Spielleiter-Mail: Status „An Spielleiter gesendet“ mit Uhrzeit (und Empfänger) am Spiel
Button wechselt zu „Erneut senden“ mit Häkchen-Icon (Desktop und Mobile)
Google Drive bleibt optionales Backup: ohne Vercel-Env Soft-Skip, Mail gilt trotzdem als gesendet
Keine Admin-Setup-Meldung mehr als scheinbarer Versandfehler nach dem Senden
Passmappe/Kader: vor Signed-URL-Fetch Sitzung prüfen — abgelaufene Anmeldung meldet „Sitzung abgelaufen“, nicht fälschlich fehlende Datei
Zusätzlich Legacy-Pfad mit pass/-Präfix im Bucket versuchen (wie bei Spielberichten), Bucket bleibt privat
v1.0.42
Gespeicherte Spielberichte wieder korrekt ansehen; Fehlermeldungen für Spielberichte statt Spielerpass-SQL.
Spieltag
Spielbericht ansehen: Upload online direkt beim Speichern; Viewer löst denselben Storage-Pfad wie der Spielleiter-Versand
Fehlermeldungen für game-documents auf Deutsch und ohne Pass-/SQL-Hinweise (kein player_passes-Recovery-Text mehr)
Storage-Fehlertexte generell ohne SQL-Dateinamen in der UI
v1.0.41
Spielbericht an Spielleiter: Versand ohne Base64-Riesenpayload (kein HTTP 413 mehr bei typischen Fotos); PDFs stärker komprimiert.
Spieltag
An Spielleiter senden lädt PDFs serverseitig aus dem Storage (storageKey) statt Base64 im Request — umgeht das Vercel-~4,5-MB-Limit
Fotos werden beim PDF-Erzeugen immer verkleinert/re-encodiert (lesbare Scan-Qualität, deutlich kleinere Dateien)
Klare deutsche Meldung bei HTTP 413 / zu großem Request
v1.0.40
Admins können Profilfotos anderer Coaches hochladen, ersetzen oder entfernen.
Admin
Coach-Karte: Avatar antippen (Kamera-Badge) oder im Bearbeiten-Dialog → Profilfoto hochladen, ersetzen, entfernen oder Basketball-Avatar wählen
Gleiche Grenzen wie beim eigenen Foto (JPEG/PNG/WebP/GIF, max. 2 MB)
v1.0.39
Admin-Coach-Karten: Aktionsbuttons auf dem Handy in 2×2 statt überlappend in einer Zeile.
Admin
Coach-Karten: Bearbeiten, Passwort, Deaktivieren und Löschen als 2×2-Raster (kein Quetschen auf schmalen Displays)
v1.0.38
Coach-Startseite personalisierbar; TeamSL-Ligatabellen auf der Übersicht für die eigenen Mannschaften.
Übersicht
TeamSL-Tabelle je verknüpfter Liga (eigene Mannschaft hervorgehoben; Mehrfach-Teams per Umschalter)
Startseite anpassen: Reihenfolge und Sichtbarkeit der Bausteine (Training, Tabelle, Spiel, Block, Schnellzugriffe, Taktik)
Einstellungen pro Coach in Supabase (ohne SQL: lokal gemerkt)
Klare Fehlermeldung, wenn die E-Mail schon vergeben ist
Postfach
Grundlegende Servereinstellungen (IMAP/SMTP) standardmäßig zugeklappt, wenn das Postfach schon verbunden ist
Anhänge herunterladen (PC/Handy) oder in Courtside unter Dateien → Team-Dateien speichern
Dateien
Navigation „Dateien“ wie Postfach: Desktop-Top-Nav, mobile untere Leiste, Konto-/Mehr-Menü
Übersicht: Karte „Filecenter“ neben Postfach
Route `/dateien` für Vorlagen, Dokumente, Team-Dateien und Spielberichte
Spieltag · Spiel bearbeiten
Ligakürzel leer → Team-Vorgabe (Admin PDF-Kürzel)
Eigenes Kürzel sichtbar (nur lesbar, aus Admin → Teams)
Gegner kurz leer → Treffer aus BBV-Oberfranken-Liste zum Gegnernamen; Autocomplete bleibt
Manuell geänderte Werte bleiben; Gegner-Änderung überschreibt nur ungeänderte Autofills
TeamSL
Beim Abgleich werden leere Ligakürzel / Gegner-kurz an neuen und geänderten Spielen nachgezogen
v1.0.26
Postfach: wenn das gespeicherte Mail-Passwort nicht mehr entschlüsselt werden kann (Schlüssel gewechselt), klare Meldung und Button zum Neu-Eingeben statt kryptischem Crypto-Fehler.
Postfach
AES-GCM-Fehler („Unsupported state or unable to authenticate data“) wird verständlich erklärt
Button „Mail-Passwort neu eingeben“ öffnet die Postfach-Einstellungen
v1.0.25
Admin: klarere Fehler bei fehlendem Profil; eigener Zugang lässt sich wiederherstellen, wenn er deaktiviert oder ohne Profil-Zeile ist.
Admin
Fehlendes Coach-Profil wird nicht mehr als „Zugang deaktiviert“ angezeigt
Button „Zugang wiederherstellen“ im Admin, wenn der eigene Zugang gesperrt oder ohne Profil ist
v1.0.24
Spieltag-Kaderauswahl auf dem Handy: Spielernamen und Trikotnummern wieder klar lesbar.
Spieltag
Kaderauswahl (Vorschlagsliste): auf schmalen Displays mehr Platz für Namen, Stats darunter statt in drei Spalten
Trikot-Chips immer in Teamfarbe mit kontrastreicher Nummer (auch Gelb/Gold/Weiß)
Nominierten-Kader und Einsatz-/Minuten-Kacheln: größere, fett gesetzte Namen
v1.0.23
Spieler:innen in zwei Mannschaften mit eigener Rückennummer pro Team; Warnung bei gleicher TA-Endung entfernt.
Kader
Rückennummer pro Mannschaft (nicht mehr eine globale Nummer)
Spieler bearbeiten: Teams wählen und je Team eine Nummer pflegen
Warnung „TA-Endung schon vergeben“ entfernt – Überlappungen sind erwartet und blockieren nicht
Spieltag
Kader, Passmappe, Kaderliste und Einsatzzeiten zeigen die Nummer der aktiven Mannschaft
v1.0.22
iPhone: Header unter Dynamic Island lesbar (Safe Area); Spielernamen in Spieltag/Kader mit klarem Kontrast.
Mobil / PWA
Safe-Area-Tokens (env/constant) für Notch und Dynamic Island; Header-Padding zuverlässiger
overflow-x-clip vom Shell-Wrapper entfernt (konnte auf iOS safe-area-inset auf 0 setzen)
viewport-fit=cover und black-translucent Statusleiste bleiben – Inhalt rückt unter die Insel
Spieltag / Kader
Spielernamen mit explizitem text-foreground / font-semibold (besserer Kontrast auf hellen Flächen)
Kader-Karten: Trikotnummer nutzt Kontrastfarbe zur Teamfarbe (Gelb/Gold/Weiß nicht mehr weiß auf hell)
Fotos weiterhin als PDF im Storage; Drive-Upload wenn eingerichtet
v1.0.17
Admin: PDF-Kürzel (Team-Kurzname + Ligakürzel) in der Teams-Übersicht pflegen und per Excel/CSV aus Google Sheets importieren – gleiche Felder wie beim Spielbericht-Versand.
Admin · Teams
Abschnitt PDF-Kürzel: Kurzname und Ligakürzel je Team bearbeiten, mit Dateiname-Vorschau
Bulk-Import: Excel (.xlsx) oder CSV (Google Sheets → Herunterladen), Spaltenzuordnung + Vorschau vor dem Schreiben
Team-Karten zeigen gesetzte Kürzel; Team-Dialog unverändert mit denselben Feldern
Spielbericht / PDF
Versand nutzt weiter Kurzname und Ligakürzel am Team (bereits in v1.0.5+)
Gegner-Kürzel weiter am Spiel; Import betrifft Vereins-/Teamkürzel
v1.0.16
Passmappe: keine falsche Offline-Meldung mehr bei Speicher-/Zugriffsfehlern – klare deutsche Fehler zu Anmeldung, Datei und Rechten.
Digitale Passmappe
Bugfix: fehlgeschlagene Pass-Downloads wurden fälschlich als „ohne Internet“ erklärt, obwohl online
Beim Öffnen der Mappe werden ausstehende Pass-Uploads erneut hochgeladen
Spielerpass
Zuverlässigerer Zugriff auf Spielerpässe, auch wenn die Einrichtung früher unvollständig war
v1.0.15
Passmappe: hochgeladene Spielerpässe (Fotos) werden wieder angezeigt – kein leeres Bild mehr nach dem Blättern; HEIC-Hinweis.
Digitale Passmappe
Bugfix: widerrufene blob:-URLs wurden beim Zurückblättern wiederverwendet – Bilder wirkten hochgeladen, blieben aber leer
Foto-Anzeige füllt die Karte zuverlässig (wie PDF); kaputte/HEIC-Bilder mit klarer Fehlermeldung und Erneut laden
Einmal geladene Pässe bleiben beim Wischen sichtbar (Geräte-Cache)
„Kein Pass hinterlegt“ unverändert, wenn wirklich kein Pass im Kader liegt
Spielerpass
Upload lehnt HEIC/HEIF ab (Browser können das nicht anzeigen) – bitte JPEG, PNG oder PDF
v1.0.14
Adressbuch: fehlende Spielleiter-E-Mail am Team zeigt eine klare deutsche Anleitung statt [object Object].
Adressbuch
Speichern mit Spielleiter-Teams verknüpft die Spielleiter-E-Mail am Team
Fehlt die Einrichtung noch, erscheint ein verständlicher Hinweis statt [object Object]
Kontakt kann schon gespeichert sein; Team-Verknüpfung greift, sobald die Einrichtung vollständig ist
v1.0.13
Adressbuch: Speichern zeigt keinen falschen Toast „[object Object]“ mehr – Fehlertexte sind lesbar auf Deutsch; bei Erfolg schließt der Dialog und die Liste lädt neu.
Adressbuch
Technikfehler werden nicht mehr zu „[object Object]“
Toasts zeigen nur noch klare deutsche Meldungen
Erfolgreiches Speichern: Erfolgs-Toast, Dialog zu, Liste aktualisieren – kein Fehler-Toast
Doppelte E-Mail und ungültige Team-Verknüpfung mit kurzer deutscher Meldung