Web-based scoreboard system for live display of match scores at tournaments. Consists of a control panel (laptop) and a display (monitor/projector) that communicate via the browser.
- Game clock with start/stop/reset and manual adjustment
- Goal tracking with player assignment and minute display
- Goal overlay animation with player photo and team name
- Squad management with jersey number, name, and photo
- Tournament and team configuration (name, logo)
- Design customization (colors, background image)
- Sponsor slideshow (images & videos) in various sizes
- Halftime overlay
- JSON import/export of the entire configuration
- Swap teams left/right
Tip: Run
npm install && node take-screenshots.mjsto regenerate the screenshots automatically.
- Open
control.htmlon the control laptop in a browser - Open
display.htmlon the display monitor/projector in the same browser - Both tabs must run in the same browser (communication via BroadcastChannel API)
# Simply open the files directly in the browser:
open control.html # macOS
xdg-open control.html # Linux
start control.html # Windows
Or via a local web server:
python3 -m http.server 8080
# Then open in browser: http://localhost:8080/control.htmlscoreboard/
├── control.html # Control panel
├── display.html # Display for monitor/projector
├── translations.js # i18n strings (DE/EN)
├── take-screenshots.mjs # Puppeteer screenshot generator
├── package.json # Node dependencies (Puppeteer)
├── assets/ # Logos, player photos, sponsor media
└── docs/
└── screenshots/ # Screenshots for documentation
In the Configuration section of the control panel, the current state can be exported as JSON and imported again later. The JSON file contains:
- Tournament and team names
- Logos (embedded as data URLs)
- Player squads with photos
- Design settings
- Sponsor list
- Timer and overlay settings
- Vanilla HTML, CSS, JavaScript
- No external dependencies
- Communication between control panel and display via the BroadcastChannel API
Webbasiertes Scoreboard-System zur Live-Anzeige von Spielständen bei Turnieren. Bestehend aus einer Steuerungsoberfläche (Laptop) und einer Anzeige (Monitor/Beamer), die über den Browser miteinander kommunizieren.
- Spieluhr mit Start/Stop/Reset und manueller Anpassung
- Tor-Tracking mit Spieler-Zuordnung und Minuten-Anzeige
- Tor-Overlay-Animation mit Spielerfoto und Teamnamen
- Kader-Verwaltung mit Trikotnummer, Name und Foto
- Turnier- und Team-Konfiguration (Name, Logo)
- Design-Anpassung (Farben, Hintergrundbild)
- Sponsoren-Slideshow (Bilder & Videos) in verschiedenen Größen
- Halbzeit-Overlay
- JSON-Import/Export der gesamten Konfiguration
- Teams links/rechts tauschen
Tipp: Mit
npm install && node take-screenshots.mjskönnen die Screenshots automatisch neu generiert werden.
control.htmlauf dem Steuerungs-Laptop im Browser öffnendisplay.htmlauf dem Anzeige-Monitor/Beamer im gleichen Browser öffnen- Beide Tabs müssen im selben Browser laufen (Kommunikation über BroadcastChannel API)
# Einfach die Dateien direkt im Browser öffnen:
open control.html # macOS
xdg-open control.html # Linux
start control.html # Windows
Oder über einen lokalen Webserver:
python3 -m http.server 8080
# Dann im Browser: http://localhost:8080/control.htmlscoreboard/
├── control.html # Steuerungsoberfläche
├── display.html # Anzeige für Monitor/Beamer
├── translations.js # i18n-Strings (DE/EN)
├── take-screenshots.mjs # Puppeteer Screenshot-Generator
├── package.json # Node-Abhängigkeiten (Puppeteer)
├── assets/ # Logos, Spielerfotos, Sponsoren-Medien
└── docs/
└── screenshots/ # Screenshots für die Dokumentation
Über den Konfiguration-Bereich in der Steuerung kann der aktuelle Zustand als JSON exportiert und später wieder importiert werden. Die JSON-Datei enthält:
- Turnier- und Teamnamen
- Logos (als Data-URL eingebettet)
- Spieler-Kader mit Fotos
- Design-Einstellungen
- Sponsoren-Liste
- Timer- und Overlay-Einstellungen
- Vanilla HTML, CSS, JavaScript
- Keine externen Abhängigkeiten
- Kommunikation zwischen Steuerung und Anzeige über die BroadcastChannel API



