Was ist neu v3.12.0

v3.12.0 — 2026-06-15

Geändert

  • Vereinfachte Adressen: Jede Seite hat jetzt eine einzige Adresse — die Sprache wird direkt im Browser umgeschaltet (oben rechts), statt über getrennte /de/- und /en/-Links. Bestehende Links und Lesezeichen funktionieren weiterhin (automatische Weiterleitung)

Behoben

  • Neueste Resultate – Basketballspiele: Basketballspiele zeigten fälschlich das Volleyball-Icon und keinen Teamnamen. Jetzt erscheinen das richtige Basketball-Icon und der Teamname
v3.11.2 — 2026-05-30

Behoben

  • Admin-Tabs auf dem Handy nicht erreichbar: die Bereichs-Tabs (News, Events, Anmeldungen, Sponsoren, Schreiberkurse, Mixed-Turnier, …) ragten auf dem Smartphone über den Bildschirmrand hinaus und liessen sich nicht erreichen. Die Tab-Leiste ist jetzt eine horizontal scrollbare, oben angeheftete Navigationsleiste — seitlich wischen, um jeden Bereich zu erreichen, und sie bleibt beim Scrollen oben fixiert
v3.11.1 — 2026-05-23

Behoben

  • Startzeit Schreiberkurs: der englische Kurs am 08.07.2026 beginnt jetzt um 19:00 (statt 19:30); Ende bleibt 21:30 — der Kalendereintrag deckt damit 2,5 Stunden ab
  • Deutscher Schreiberkurs: Uhrzeit wieder geleert — Datum und Zeit werden bis zur Bestätigung als noch offen (TBD) angezeigt
v3.11.0 — 2026-05-21

Neu

  • Admin-Schnellzugriff: neben der Sprachumschaltung (oben rechts auf Desktop, im Mobile-Menü ganz oben) sitzt jetzt ein dezentes Schloss-Icon, das direkt zum Admin-Login führt — kein verstecktes Klicken im Footer mehr
  • Sport-Buttons im Hero überarbeitet: die Volleyball- und Basketball-Buttons auf der Startseite haben jetzt klare Sport-Icons (Volleyball, Basketball), sauberere Verläufe (Volleyball: KSCW-Blau mit Mikasa-Gold-Akzent, Basketball: warmer Orange-Verlauf mit Highlight) und beim Überfahren rotiert das Icon leicht nach links
  • Beide Effekte respektieren prefers-reduced-motion
v3.10.0 — 2026-05-20

Neu

  • Sparkles-Hero auf den Sport-Seiten: über Volleyball- und Basketball-Übersicht zieht jetzt ein dezenter Schwarm Lichtpunkte langsam durch das Hero — gold für Volleyball, orange für Basketball. Pausiert automatisch beim Wegscrollen
  • Tracing-Beam auf "Über uns": ab 1280 px Bildschirmbreite verläuft links neben dem Inhalt ein vertikaler blau-goldener Balken, der mit dem Scroll-Fortschritt mitwächst — ein pulsierender goldener Punkt markiert den Anfang
  • Beide Effekte respektieren prefers-reduced-motion
v3.9.0 — 2026-05-20

Neu

  • Cursor-Spotlight auf Karten: News- und Event-Karten auf der Startseite zeigen jetzt einen sanften goldenen Lichtkegel, der dem Mauszeiger folgt — gibt der Übersicht spürbar Tiefe
  • 3D-Tilt auf Team-Karten: alle Team-Karten (Volleyball & Basketball) kippen beim Überfahren leicht in Richtung des Mauszeigers (max. 6° auf beiden Achsen). Subtil, aber lebendig. Auf Touch-Geräten unverändert
  • Beide Effekte respektieren prefers-reduced-motion
v3.8.0 — 2026-05-20

Neu

  • Hero-Animationen auf der Startseite: sanft driftende Hintergrundverläufe in Vereinsblau und Gold, ein dezenter Goldglanz im Schriftzug "KSC Wiedikon", pulsierende Sportbuttons beim Überfahren — alles rein in CSS, ohne zusätzliches JavaScript
  • Scroll-Fortschrittsbalken: ein dünner blau-goldener Balken oben am Bildschirmrand zeigt jetzt, wie weit man auf der aktuellen Seite gescrollt hat
  • Sanftere Sektions-Einblendungen: neue Variante, die Inhalte beim Reinscrollen mit einem leichten Weichzeichner einblendet (statt nur Opazität)
  • Belebte Zahlen-Counter: hochzählende Statistiken (z.B. auf "Über uns") bekommen während der Animation einen kurzen goldenen Glow
  • Alle neuen Animationen respektieren prefers-reduced-motion — wer im Betriebssystem reduzierte Bewegung eingestellt hat, sieht die Seite unverändert ruhig
v3.7.0 — 2026-05-20

Neu

  • Admin – Bereichsberechtigungen pro Person: Manager sehen jetzt im Admin-Bereich einen neuen Tab "Admin". Dort lässt sich pro Website-Admin auswählen, welche Bereiche (News, Events, Anmeldungen, Sponsoren, Schreiberkurse, Mixed-Turnier) für diese Person sichtbar und bearbeitbar sind — mit echter Berechtigungsprüfung auf dem Server (kein reines UI-Verstecken)

Behoben

  • Schreiberkurse "Zum Kalender hinzufügen": der Link funktioniert jetzt auch auf dem Handy. Statt einer `.ics`-Datei öffnet sich jetzt direkt das Google-Kalender-Erstellungsformular mit Titel, Datum/Zeit und Ort vorausgefüllt — der "Termin nicht gefunden"-Fehler nach dem Google-Login ist damit weg
  • Admin – Geburtsdatum-Anzeige: Geburtsdaten werden jetzt im Schweizer Format `tt.mm.jjjj` angezeigt (ohne Uhrzeit), statt des rohen ISO-Strings mit Zeitzone
  • Admin – Export "Anmeldungen": der Export erzeugt jetzt tab-getrennte Dateien (`.tsv`) statt komma-getrennt. Adressen mit Kommas brechen den Import damit nicht mehr
v3.6.0 — 2026-05-19

Neu

  • Schreiberkurs "Zum Kalender hinzufügen": jeder Kurs hat jetzt einen Button (mit Kalender-Icon), der einen Kalender-Termin (.ics) mit Datum, Uhrzeit, Dauer und Veranstaltungsort herunterlädt
  • Veranstaltungsort auf der Kurskarte: Präsenz-Kurse zeigen die Adresse (KSC Wiedikon, Goldbrunnenstrasse 80, 8055 Zürich) jetzt direkt auf der Karte
v3.5.0 — 2026-05-19

Geändert

  • Schreiberkurs-Anmeldung: das Anmeldeformular wird nicht mehr eingebettet (gequetscht) in der Seite angezeigt. Ein klarer Button öffnet das Formular jetzt im Vollbild in einem neuen Tab — deutlich besser auf dem Handy

Behoben

  • Admin – Aktiv-Schalter: Label und Schalter klebten aneinander; sie stehen jetzt korrekt links bzw. rechts mit Abstand dazwischen
v3.4.1 — 2026-05-14

Geändert

  • Kontaktformular Team-Dropdown: zeigt nur noch Mannschaften, die aktuell für neue Spielende offen sind. Geschlossene Teams sind nicht mehr auswählbar. Über den Team-Button gelangt man weiterhin direkt mit vorgewählter Mannschaft ins Formular, das Dropdown bleibt änderbar
v3.4.0 — 2026-05-13

Geändert

  • Kontakt-Button auf Team-Seiten: Der Button "Kontakt aufnehmen" öffnet jetzt das zentrale Kontaktformular mit vorausgefüllter Sportart und Mannschaft, statt eine E-Mail mit sichtbaren Coach- und TR-Adressen zu öffnen. Der Versand läuft serverseitig — die Empfängeradressen sind nirgends mehr im Browser sichtbar. Betreff der E-Mail: "Kontakt [Team]" (DE) bzw. "Contact [Team]" (EN), je nach Sprache der aufrufenden Seite
v3.3.2 — 2026-05-13

Behoben

  • Vorstandsseite mobil: Organigramm jetzt als Fischgrätenstruktur — Präsidentin → Vize → zentrale Linie mit den beiden TKs links und Kassier/Aktuar rechts, Beisitz mittig unten. Alle Karten gleich gross (Höhe und Breite)
  • Letzte Resultate / nächste Spiele: lange Team-Chips wie "Herren 3 (Unicorns) H4" sprengten die Tabelle auf dem Handy nicht mehr (Chip bricht an Wortgrenzen um). Auf dem Desktop sitzt der Chip jetzt auf einer zweiten Zeile unter jedem Spiel, damit die Begegnungsspalte mehr Platz hat
  • Spieletabelle mobil: Jede Zeile ist jetzt gestapelt — Datum + Uhrzeit / Heim vs Auswärts / Ergebnis — wobei jedes Resultat genau unter der jeweiligen Mannschaft steht. Lange Teamnamen brechen um statt abgeschnitten zu werden
  • Scoreboard mobil: Metrik-Bezeichnung hat eine eigene Zeile über Schnitt + Team, damit die Team-Spalte nicht mehr buchstabenweise umgebrochen wird
v3.3.1 — 2026-05-13

Geändert

  • Vorstandsseite: neu als Organigramm dargestellt (Präsidentin → Vize → 5 Ressorts) mit Verbindungslinien. Jedes Mitglied zeigt Funktion und Name. Auf dem Handy stapeln sich die Karten. Daten aktualisiert auf den Vorstand 2026/27
v3.3.0 — 2026-05-13

Neu

  • Event-Anmeldungen: Events können neu ein Anmeldeformular hinterlegen. Im Kalender erscheint ein "Anmelden"-Button mit Live-Zähler der Anmeldungen. Admins verwalten den Link direkt in /admin und können die Antworten als Tabelle einsehen oder als CSV exportieren
  • OpnForm selbst gehostet auf forms.kscw.ch: ersetzt die ClubDesk-Anmeldeseiten, die nach dem Umzug von kscw.ch nicht mehr funktionieren. KSCW-Branding (Blau, Logo) und wöchentliches automatisches Update gegen die Originalquelle
  • Probetrainings auf Team-Seiten: Teams, die für neue Spielende offen sind, zeigen jetzt die nächsten Probetrainings (Datum · Zeit · Halle) direkt beim "Kontakt aufnehmen"-Button
  • Sprachpräferenz wird gespeichert: Wer einmal auf EN klickt, landet beim nächsten Besuch automatisch auf der englischen Version. kscw.ch bleibt standardmässig deutsch
v3.2.4 — 2026-05-06

Sicherheit

  • Abhängigkeiten aktualisiert — 4 Sicherheitswarnungen behoben (Astro XSS, Vite Path-Traversal, defu Prototype-Pollution, PostCSS XSS)
v3.2.3 — 2026-04-18

News

  • Externe Links werden in der News-Ansicht nicht mehr angezeigt — Ticket- und Aktionslinks sind ausschliesslich auf Wiedisync verfügbar. Bei Artikeln mit Links erscheint ein Hinweis mit Link zum Wiedisync-Loginbereich
  • Blocksatz mit automatischer Silbentrennung als Standard. Admin-Ausrichtungen pro Absatz werden respektiert
  • Leere News-Ansicht behoben — redundanter Filter führte zu 403-Fehler vom Directus (Homepage, News-Übersicht, RSS-Feed)
v3.2.1 — 2026-04-04

Rechtliches

  • Datenschutz & Impressum: Hetzner-Hosting-Abschnitt hinzugefügt (Rechenzentrum Nürnberg)
  • Benachrichtigungen werden nach 3 Tagen automatisch gelöscht
v3.2.0 — 2026-04-02

Anmeldeformular

  • Nationalität: Suchbares Dropdown mit Favoriten (CH, DE, FR, AT, IT) + alle Länder
  • Handynummer: Landesvorwahl-Auswahl mit allen Ländern (Standard +41 CH)
  • Basketball-Beiträge: Aktiv Erwachsene, Junioren U18, Passiv, Familie
  • Basketball-Lizenz: OTR 1, OTR 2, OTN Dropdown
  • Swiss Basketball PDF-Dokumente mit automatischer Vorbefüllung
  • Anrede wird automatisch vom Geschlecht abgeleitet

Sicherheit

  • pdf-lib selbst gehostet (vorher unpkg CDN ohne SRI)
  • Dateityp- und Grössenvalidierung vor Upload (JPG/PNG/WebP/PDF, max 10 MB)
  • Turnstile CAPTCHA-Token wird bei fehlgeschlagenem Absenden zurückgesetzt
v3.1.0 — 2026-04-01

Anmeldeformular

  • Neues einheitliches Anmeldeformular für Volleyball, Basketball und Passivmitglieder — ersetzt ClubDesk-Formular + Google Forms
  • Admin-Tab «Anmeldungen» mit Statusfilter, Detail-Modal, Genehmigen/Ablehnen
  • ClubDesk CSV-Export aus dem Admin-Bereich
  • Basketball PDF-Vorbefüllung (Lizenzantrag, Player's Self Declaration, National Team Declaration)
  • Datei-Upload für Ausweiskopien mit Download + Auto-Löschung im Admin
  • Bestätigungs-E-Mails bei Anmeldung (sportartspezifisch)
  • Admin-Benachrichtigung bei jeder neuen Anmeldung
  • Datenschutzhinweis mit Einwilligungs-Checkbox (90-Tage Auto-Löschung)
  • Automatischer Lösch-Flow in Directus — täglicher Cron löscht Anmeldungen + Dateien nach 90 Tagen
v3.0.0 — 2026-03-30

Backend-Migration

  • Komplette Migration von PocketBase zu Directus API-Backend
  • Neue modulare Datenabfrage — jede Seite lädt nur was sie braucht
  • Admin-Bereich nutzt jetzt Directus REST statt PocketBase SDK
  • 60 Dateien (Teamfotos, News-Bilder, Sponsor-Logos) zu Directus migriert
v1.2.0 — 2026-03-20

Testing

  • Umfassende Test-Suite: Vitest (Unit) + Playwright (E2E), 170 Tests
  • GitHub Actions CI-Pipeline bei Push auf dev/prod

Fehlerbehebungen

  • Feedback-Formular Turnstile-Validierung behoben
  • Fehlende EN-Übersetzungsschlüssel ergänzt
  • Kalender und Leaflet-Karte: Overflow-Probleme behoben
  • Theme-Toggle und Sponsor-Karussell: Funktion auf allen Seiten
v1.0.0 — 2026-03-19

Website

  • Astro 6 statische Seite mit eigenem CSS Design System, zweisprachig (DE/EN)
  • Directus API Backend, Hetzner Hosting (Rechenzentrum Nürnberg)

Teams, Spiele & Kalender

  • Dynamische Team-Seiten mit Live-Daten (Spiele, Rangliste, Kader, Training, Fotos)
  • Aufstiegs-/Abstiegsfarben in der Volleyball-Rangliste, Akkordeon-Navigation (Damen/Herren/Nachwuchs)
  • Spiel-Modal mit Sätzen, Schiedsrichtern, Spielort. Scoreboard mit Absolut/Pro-Spiel Umschaltung
  • Kalender-Raster mit Event-Tooltips

Feedback & Admin

  • Feedback-Formular (Bug/Feature/Feedback) mit Turnstile CAPTCHA, Screenshot-Upload und automatischer GitHub-Issue-Erstellung
  • Admin-Bereich mit Glassmorphism-Login, Passwort-Sichtbarkeit, Dark/Light Mode

Inhalt

  • Geschichte mit Leaflet-Karte, Scorer-Kurs Ressourcen, Reglemente mit SVRZ-Einbettungen
  • Impressum, Datenschutz, Sponsoren-Seite

Was ist neu v3.12.0

v3.12.0 — 2026-06-15

Changed

  • Single-URL addresses: every page now has one address — the language is switched right in the browser (top right) instead of via separate /de/ and /en/ links. Existing links and bookmarks keep working (automatic redirect)

Fixed

  • Recent results – basketball games: basketball games incorrectly showed the volleyball icon and no team name. They now show the correct basketball icon and the team name
v3.11.2 — 2026-05-30

Fixed

  • Admin tabs unreachable on mobile: the section tabs (news, events, registrations, sponsors, scorer courses, mixed turnier, …) overflowed off-screen with no way to reach them on phones. The tab bar is now a horizontally-scrollable sticky navbar — swipe sideways to reach every section, and it stays pinned to the top while you scroll
v3.11.1 — 2026-05-23

Fixed

  • Scorer course start time: the English course on 08.07.2026 now starts at 19:00 (was 19:30); end stays 21:30, so the calendar event covers a 2.5-hour block
  • German scorer course: time cleared back to blank — date and time now show as to-be-announced (TBD) until confirmed
v3.11.0 — 2026-05-21

Added

  • Admin quick-access lock: a discreet padlock icon now sits next to the language toggle (top-right on desktop, at the top of the mobile menu) and links straight to the admin login — no more hunting for the hidden footer link
  • Hero sport buttons refreshed: the Volleyball and Basketball buttons on the homepage now feature crisp sport icons (volleyball, basketball), cleaner gradients (volleyball: KSCW blue with a Mikasa-gold accent, basketball: warm orange gradient with a top highlight), and the icon tilts slightly on hover
  • Both effects respect prefers-reduced-motion
v3.10.0 — 2026-05-20

Added

  • Sparkles hero on the sport pages: a subtle swarm of upward-drifting twinkles now floats across the volleyball and basketball landing heroes — gold for volleyball, orange for basketball. Pauses automatically when scrolled out of view
  • Tracing beam on "About us": from 1280 px viewport width upward, a vertical blue-to-gold bar runs along the left side of the page content and fills in as you scroll — a pulsing gold dot marks the top
  • Both effects respect prefers-reduced-motion
v3.9.0 — 2026-05-20

Added

  • Cursor spotlight on cards: news and event cards on the homepage now show a soft gold spotlight that follows the mouse cursor — gives the overview real depth
  • 3D tilt on team cards: all team cards (volleyball & basketball) gently tilt toward the cursor on hover (max. 6° on each axis). Subtle but lively. Unchanged on touch devices
  • Both effects respect prefers-reduced-motion
v3.8.0 — 2026-05-20

Added

  • Hero animations on the homepage: drifting blue/gold radial glows behind the hero, a subtle gold shimmer sweeping through the "KSC Wiedikon" title, and the sport buttons now pulse in their respective sport colors on hover — all pure CSS, no extra JavaScript
  • Scroll progress bar: a thin blue-to-gold bar at the very top of the viewport now shows how far down the current page you've scrolled
  • Softer section reveals: new variant that fades sections in with a gentle blur (not just opacity) as they enter the viewport
  • Livelier number counters: the counting statistics (e.g. on "About us") now get a brief gold glow while they animate up
  • All new animations respect prefers-reduced-motion — users who have reduced motion enabled in their OS see the page completely still
v3.7.0 — 2026-05-20

Added

  • Admin – per-user section permissions: managers now see a new "Admin" tab in the admin area. There you can choose, per Website Admin, which sections (News, Events, Registrations, Sponsors, Scorer Courses, Mixed Tournament) that person can see and edit — with real backend permission checks (not just UI hiding)

Fixed

  • Scorer course "Add to calendar": the link now works on mobile too. Instead of an `.ics` file, it opens Google Calendar's event-creation form pre-filled with title, date/time and venue — the "Termin nicht gefunden" error after Google login is gone
  • Admin – birthdate display: birthdates now render in Swiss `dd.mm.yyyy` format (no time component), instead of the raw ISO string with timezone
  • Admin – "Registrations" export: the export now produces tab-separated files (`.tsv`) instead of comma-separated. Addresses containing commas no longer break the import
v3.6.0 — 2026-05-19

Added

  • Scorer course "Add to calendar": every course now has a button (with a calendar icon) that downloads an `.ics` event with the title, date/time, duration and venue. The sign-up button got an icon too
  • Venue on the course card: in-person courses now show the address (KSC Wiedikon, Goldbrunnenstrasse 80, 8055 Zürich) directly on the card
v3.5.0 — 2026-05-19

Changed

  • Scorer course sign-up: the sign-up form is no longer shown as a cramped embedded frame inside the page. A clear button now opens the form full-screen in a new tab — much better on mobile

Fixed

  • Admin – Active toggle: the label and switch were stuck together; they now sit correctly on the left and right with spacing between them
v3.4.1 — 2026-05-14

Changed

  • Contact form team dropdown: only lists teams that are currently open to new players. Closed teams are no longer selectable. Pre-selecting a team via the team-page button still works and the dropdown remains changeable
v3.4.0 — 2026-05-13

Changed

  • Team contact button: the "Get in touch" button on team pages now opens the central contact form with sport and team pre-filled, instead of opening an email with visible coach and TR addresses. Delivery happens server-side — recipient addresses are no longer exposed in the browser. Email subject: "Contact [Team]" (EN) or "Kontakt [Team]" (DE), based on the language of the originating page
v3.3.2 — 2026-05-13

Fixed

  • Board page on mobile: org chart now renders as a fishbone — President → Vice → central spine with TKs on the left and Kassier/Aktuar on the right, Beisitz centered at the bottom. All cards share the same width and height
  • Recent results / upcoming games: long team chips no longer push the table off-screen on mobile (chips wrap at word boundaries). On desktop the chip moved to its own row beneath each game, giving the matchup column more breathing room
  • Games table on mobile: each row now stacks as date+time / home vs away / score, with each score centered under its respective team. Long team names wrap instead of being truncated
  • Scoreboard on mobile: metric label sits on its own line above the average + leading team so the team chip column stops being squeezed character-by-character
v3.3.1 — 2026-05-13

Changed

  • Board page: redesigned as a hierarchical org chart (President → Vice → 5 Ressorts) with CSS-drawn connector lines. Each card shows role and name. Stacks on mobile. Data updated to the 2026/27 board
v3.3.0 — 2026-05-13

New

  • Event signups: events can now host a signup form. Calendar shows an "Sign up" button with a live count. Admins paste the form URL in /admin and can view all responses as a table or one-click CSV export
  • Self-hosted OpnForm at forms.kscw.ch: replaces the ClubDesk-hosted signup pages that will break after the kscw.ch migration. KSCW-branded (color, logo) with weekly auto-update against upstream
  • Trial trainings on team pages: teams open for new players now show their next Probetrainings (date · time · hall) right next to the "Get in touch" CTA
  • Language preference remembered: clicking EN once routes future visits to the English site automatically. kscw.ch still defaults to German
v3.2.4 — 2026-05-06

Security

  • Dependencies upgraded — cleared 4 security advisories (Astro XSS, Vite path traversal, defu prototype pollution, PostCSS XSS)
v3.2.3 — 2026-04-18

News

  • External links are no longer shown in the public news view — ticket and action links are reserved for Wiedisync (members area). Articles with links now display a CTA pointing members to the Wiedisync login
  • Justified alignment with automatic hyphenation is now the default. Admin per-paragraph overrides are honored
  • Fixed empty news view — a redundant filter caused 403 errors from Directus (homepage, news list, RSS feed)
v3.2.1 — 2026-04-04

Legal

  • Privacy Policy & Imprint: Added Hetzner hosting section (Nuremberg datacenter)
  • Notifications auto-deleted after 3 days
v3.2.0 — 2026-04-02

Registration Form

  • Nationality: Searchable dropdown with favorites (CH, DE, FR, AT, IT) + all countries
  • Phone: Country code selector with all countries (default +41 CH)
  • Basketball fees: Active Adults, Juniors U18, Passive, Family
  • Basketball licence: OTR 1, OTR 2, OTN dropdown
  • Swiss Basketball PDF documents with auto pre-fill from form data
  • Salutation auto-derived from gender selection

Security

  • Self-hosted pdf-lib (was unpkg CDN without SRI)
  • Client-side file type + size validation before upload (JPG/PNG/WebP/PDF, max 10 MB)
  • Turnstile CAPTCHA token reset on failed submission
v3.1.0 — 2026-04-01

Registration System

  • Unified registration form for Volleyball, Basketball and Passive memberships — replaces ClubDesk form + Google Forms
  • Admin "Registrations" tab with status filters, detail modal, approve/reject workflow
  • ClubDesk CSV export from admin panel
  • Basketball PDF pre-fill (licence application, Player's Self Declaration, National Team Declaration)
  • File uploads for ID copies with download + auto-delete from admin
  • Sport-specific confirmation emails on registration
  • Admin notification email on each new registration
  • Privacy notice with consent checkbox (90-day auto-deletion)
  • Auto-deletion Flow in Directus — daily cron deletes registrations + files after 90 days
v3.0.0 — 2026-03-30

Backend Migration

  • Complete migration from PocketBase to Directus API backend
  • New modular data fetching — each page loads only what it needs
  • Admin panel now uses Directus REST instead of PocketBase SDK
  • 60 files (team photos, news images, sponsor logos) migrated to Directus
v1.2.0 — 2026-03-20

Testing

  • Comprehensive test suite: Vitest (unit) + Playwright (E2E), 170 tests
  • GitHub Actions CI pipeline on push to dev/prod

Bug Fixes

  • Feedback form Turnstile validation fixed
  • Missing EN translation keys added
  • Calendar grid and Leaflet map: overflow issues fixed
  • Theme toggle and sponsor carousel: working across all pages
v1.0.0 — 2026-03-19

Website

  • Astro 6 static site with custom CSS design system, bilingual (DE/EN)
  • Directus API backend, Hetzner hosting (Nuremberg datacenter)

Teams, Games & Calendar

  • Dynamic team pages with live data (games, rankings, roster, training, photos)
  • Promotion/relegation color bands on volleyball rankings, accordion navigation (Women/Men/Youth)
  • Game modal with sets, referees, venue. Scoreboard with Absolute/Per-Game toggle
  • Calendar grid with event tooltips

Feedback & Admin

  • Feedback form (Bug/Feature/Feedback) with Turnstile CAPTCHA, screenshot upload, automatic GitHub issue creation
  • Admin area with glassmorphism login, password visibility toggle, dark/light mode

Content

  • History page with Leaflet map, scorer course resources, regulations with SVRZ embeds
  • Imprint, Privacy Policy, Sponsors page