Zum Hauptinhalt springen
Zurück zu den Referenzen

Spike Series

Eine Plattform, um einen ganzen Circuit zu betreiben.

Regionale VALORANT-Circuits für einen europäischen Veranstalter: öffentliche Website, Verwaltungsportal und Discord-Bot, von VentuLabs von Grund auf gebaut – mit demselben Stack und denselben Garantien wie unsere eigenen Produkte.

4.839
automatische Tests
8
Sprachen
197
Architekturentscheidungen
67
Datenbanktabellen
1.200
gleichzeitige Zuschauer, gemessen

In Produktion auf spikeserieseu.es (Öffnet in einem neuen Tab)

Öffentliche Startseite von Spike Series mit Live-Spielen, Regionen und kommenden Turnieren

Eine Plattform, um einen ganzen Circuit zu betreiben

Öffentliche Website für Spieler und Zuschauer, Verwaltungsportal für den Veranstalter und ein Discord-Bot, der alles in Echtzeit verbindet.

  • Vollständige Turnier-Engine

    Single und Double Elimination, Gruppen, Schweizer System, Liga und GSL. Erzeugt Brackets und Tabellen und berechnet sie nach jedem Ergebnis von selbst neu.

  • Map-Vetos in Echtzeit

    Beide Kapitäne bannen und wählen Maps abwechselnd mit Countdown – in Echtzeit, ohne Neuladen und mit sichtbarer Historie der Serie.

  • Check-in und Spielablauf

    Check-in vor dem Spiel, Verlegungen mit Zeitfenstern, die die Kapitäne untereinander vorschlagen und annehmen, und Ergebnismeldung pro Map.

  • Chat mit Discord-Anbindung

    Team- und Spielchat direkt auf der Website, mit automatischer Aufbewahrungsfrist, synchronisiert mit den Discord-Kanälen des Circuits.

  • Integrierter Discord-Bot

    Legt Teamrollen und -kanäle automatisch an und informiert per Direktnachricht über Spiele, Ergebnisse und Fristen, in der Sprache des Nutzers.

  • Markt für Teams und Spieler

    Schwarzes Brett, auf dem Spieler und Teams inserieren und einen Platz finden, bevor die Anmeldung schließt.

  • Login mit Discord

    Registrierung und Login mit dem Discord-Konto des Spielers, zusätzlich zu E-Mail und Passwort mit verschlüsselter Session.

  • Acht Sprachen

    Website, Portal und Inhalte übersetzt in ES, EN, FR, PT, IT, DE, NL und TR, wobei jede Sprache nur ihr eigenes Paket lädt.

  • Live-Spielstand

    Der Spielstand wird aus dem Stream ausgelesen, um die Live-Spiele ohne manuelles Eingreifen zu aktualisieren.

  • Wartung ohne Unterbrechung

    Wird im Portal aktiviert und erreicht sofort alle, die gerade auf der Seite sind – ohne Neuladen.

  • Auditierter Support

    Das Support-Team kann sich als ein Benutzer anmelden, um ihm zu helfen – mit sichtbarem Hinweis und vollständigem Protokoll der Session.

  • Mobile first entworfen

    Jeder Screen wird zuerst bei 390 px Breite gedacht und getestet, vom Bracket bis zum Chat, bevor er für den Desktop angepasst wird.

Technische Architektur

Derselbe Stack und dieselben Garantien wie bei unseren eigenen Produkten: Tests, automatisches Deployment und mehrere Veranstalter pro Instanz vom ersten Tag an.

Frontend

  • Next.js 16 mit App Router
  • React 19
  • TypeScript im Strict-Modus
  • Tailwind CSS 4
  • 8 Sprachen, jede mit eigenem Paket
  • Mobile first, getestet bei 390 px

Backend

  • Server Components und API-Routen
  • Verschlüsselte Sessions und bcrypt
  • Validierung mit Zod bei allem, was Daten verändert
  • Live-Updates über Server-Sent Events
  • CSRF-Schutz und Rate-Limiting
  • Login mit Discord

Daten

  • PostgreSQL 16 mit Drizzle ORM
  • 67 Tabellen und 99 Migrationen
  • Isolierung pro Veranstalter und pro Circuit
  • Fremdschlüssel mit kontrolliertem Löschen
  • Trigger für Änderungszeitstempel
  • Versionierte SQL-Migrationen

Turnier-Engine

  • Reine Bibliothek, ohne Framework und Datenbank
  • Single und Double Elimination, Schweizer System, Liga und GSL
  • Deterministisch: dasselbe Turnier erzeugt dasselbe Bracket
  • 100 % Zeilenabdeckung
  • Konfigurierbare Tabellen und Tiebreaker
  • Nur Oberfläche und Portal greifen darauf zu

Infrastruktur

  • Ubuntu-24.04-Server mit Node 22
  • Nginx und PM2 mit mehreren Instanzen
  • Let's-Encrypt-Zertifikate mit HSTS
  • Deployment aus VentuHub mit vorherigem Backup
  • Health-Check und automatisches Rollback
  • 1.200 gleichzeitige Zuschauer gemessen

Qualität

  • 4.141 Tests mit Vitest in 405 Dateien
  • 698 End-to-End-Tests mit Playwright
  • Drei Projekte: Chrome mobil, Safari mobil und Desktop
  • Echtes Postgres in den Tests
  • ESLint mit Qualitätsregeln und Ratchet
  • Lighthouse 91, 100, 100 und 100 auf Mobilgeräten

Klar getrennte Rollen

Ein Kapitän kann kein anderes Team anfassen. Ein Schiedsrichter prüft nur die Spiele, die ihm zugewiesen sind.

  • Admin

    Vollzugriff: Benutzer, Audit-Log, Einstellungen des Veranstalters und Wartung.

  • Organisation

    Operative Verwaltung von Circuits, Turnieren, Anmeldungen und Teams.

  • Schiedsrichter

    Prüft die Ergebnisse der ihm zugewiesenen Spiele.

  • Kapitän

    Sein Team: Kader, Anmeldungen, Check-in, Vetos und Ergebnismeldung.

  • Spieler

    Sieht sein Team und seine Spiele und bearbeitet sein eigenes Profil.

Nicht nur eine Ergebnis-Website

Engineering-Entscheidungen, die man normalerweise nicht sieht, die einem Live-Wettbewerb aber Stabilität geben.

  • Turnier-Engine als reine Bibliothek

    Keine Abhängigkeit von Framework, Datenbank oder Systemzeit: Die Zeit wird injiziert und die Auslosung nutzt einen Seed, sodass dasselbe Turnier in den Tests immer dasselbe Bracket erzeugt.

  • Nur die aktive Sprache geht an den Browser

    Jede der acht Sprachen ist ein eigenes Paket: Der Server kennt die Sprache, bevor er die Seite rendert, und der Client lädt nur dieses eine.

  • Live-Spiele ohne Neuladen

    Ein einziger Event-Stream pro Tab meldet Ergebnisse, Vetos und Tabellenänderungen, sobald sie passieren – mit automatischer Wiederverbindung.

  • Wartung, ohne jemanden hängen zu lassen

    Wird im Portal aktiviert und erreicht sofort alle, die gerade auf der Seite sind – ohne dass sie neu laden müssen, um es zu erfahren.

  • Support mit vollständiger Nachverfolgbarkeit

    Das Support-Team kann sich als ein Benutzer anmelden, um ein Problem zu lösen – mit dauerhaftem Hinweis am Bildschirm und Protokoll aller Aktionen.

  • Mehrere Veranstalter vom ersten Tag an

    Jeder Veranstalter und jeder Circuit sind in der Datenbank isoliert: Das macht aus dem Prototyp ein replizierbares Produkt.

  • Gemessene Kapazität, nicht geschätzt

    Lasttests mit Live-Spielen: 1.200 gleichzeitige Zuschauer mit Antwortzeiten unter 350 ms im 95. Perzentil.

  • Deployment mit automatischem Rollback

    Der Build wird separat vorbereitet und geht in einem Schritt auf den Server; schlägt der Start fehl, kehrt das System von selbst zur vorherigen Version zurück.

Tausende automatische Tests

Abdeckung von der Turnier-Engine bis zu den vollständigen Abläufen von Kapitän und Veranstalter. Jedes Deployment wird blockiert, wenn etwas fehlschlägt.

4.141
Tests mit Vitest
405
Testdateien
698
End-to-End-Tests
3
Projekte: zwei mobil und Desktop
  • Turnier-Engine

    Brackets für Single und Double Elimination, Schweizer System, Liga und GSL: korrekte Freilose, stabile Tabellen und abgelehnte unmögliche Ergebnisse.

  • Authentifizierung und Session

    Login mit E-Mail und mit Discord, verschlüsselte Session, CSRF, Begrenzung der Anmeldeversuche und Audit-Log.

  • Isolierung pro Veranstalter

    Trennung pro Veranstalter und pro Circuit, auf Abfrage- und Datenbankebene geprüft.

  • Spiele und Live

    Check-in, Verlegungen, Map-Vetos, Meldung und Prüfung von Ergebnissen sowie der Live-Event-Stream.

  • Sprachen und Inhalte

    Die acht Sprachen laden, was sie sollen, und nichts mehr: Es wird geprüft, dass kein Client eine Sprache herunterlädt, die er nicht nutzt.

  • End-to-End, mobile first

    Vollständige Abläufe von Kapitän und Veranstalter auf echtem Chrome, in zwei mobilen Projekten und einem Desktop-Projekt, mit Prüfungen der Barrierefreiheit.

Kompletter Stack

Dasselbe Kriterium wie bei unseren eigenen Produkten: nur moderne, gepflegte Werkzeuge mit aktiver Community.

  • Next.js 16
  • React 19
  • TypeScript 5
  • Tailwind CSS 4
  • Node.js 22
  • PostgreSQL 16
  • Drizzle ORM
  • PGlite in den Tests
  • Verschlüsselte Sessions
  • Zod
  • discord.js
  • Vitest
  • Playwright
  • ESLint 9
  • SQL
  • Bash
  • Nginx
  • PM2
  • Ubuntu 24.04
  • VentuHub
  • Let's Encrypt

Brauchen Sie so etwas?

Spike Series ist eigener Code, maßgeschneidert für einen Veranstalter von VALORANT-Circuits: ohne Templates, ohne Drittanbieterdienste und mit derselben technischen Sorgfalt, die wir in unsere eigenen Produkte stecken.

Zurück zu den Referenzen