Ana içeriğe atla
Projelere dön

Spike Series

Bir ligin tamamını yürüten platform.

Avrupalı bir organizatör için bölgesel VALORANT ligleri: herkese açık site, yönetim portalı ve Discord botu; VentuLabs tarafından sıfırdan, kendi ürünlerimizdeki teknoloji yığını ve güvencelerle geliştirildi.

4.839
otomatik test
8
dil
197
mimari kararı
67
veritabanı tablosu
1.200
eşzamanlı izleyici, ölçülmüş

spikeserieseu.es adresinde canlıda (Yeni sekmede açılır)

Spike Series'in canlı maçlar, bölgeler ve yaklaşan turnuvalarla herkese açık ana sayfası

Bir ligin tamamını yürüten platform

Oyuncular ve izleyiciler için herkese açık site, organizatör için yönetim portalı ve her şeyi gerçek zamanlı birbirine bağlayan bir Discord botu.

  • Eksiksiz rekabet motoru

    Tek ve çift eleme, gruplar, İsviçre sistemi, lig usulü ve GSL. Fikstürleri ve puan durumlarını oluşturur, her sonuçtan sonra kendiliğinden yeniden hesaplar.

  • Canlı harita vetoları

    İki kaptan sırayla, geri sayımla, gerçek zamanlı ve sayfa yenilemeden harita veto edip seçer; serinin geçmişi gözlerinin önünde.

  • Check-in ve maç akışı

    Maçtan önce check-in, kaptanlar arasında önerilip kabul edilen zaman dilimleriyle yeniden planlama ve harita bazlı sonuç bildirimi.

  • Discord'a bağlı sohbet

    Site içinde takım ve maç sohbeti, otomatik saklama süresiyle, ligin Discord kanallarıyla eşzamanlı.

  • Entegre Discord botu

    Takım rollerini ve kanallarını otomatik oluşturur; maçları, sonuçları ve son tarihleri kullanıcının dilinde özel mesajla bildirir.

  • Takım ve oyuncu pazarı

    Kayıtlar kapanmadan önce oyuncuların ve takımların ilan verip yer bulduğu pano.

  • Discord ile giriş

    Oyuncunun Discord hesabıyla kayıt ve giriş; ayrıca şifrelenmiş oturumlu e-posta ve parola.

  • Sekiz dil

    ES, EN, FR, PT, IT, DE, NL ve TR dillerine çevrilmiş site, portal ve içerik; her dil yalnızca kendi paketini yükler.

  • Canlı skor

    Canlı maçları elle müdahale olmadan güncellemek için skoru yayından okur.

  • Kesintisiz bakım

    Portaldan etkinleştirilir ve sayfayı yenilemeden, o an gezinen herkese anında ulaşır.

  • Denetimli destek

    Destek ekibi bir kullanıcıya yardım etmek için onun hesabıyla giriş yapabilir; görünür uyarı ve oturumun eksiksiz kaydıyla.

  • Önce mobil tasarım

    Her ekran, fikstürden sohbete, masaüstüne uyarlanmadan önce 390 px genişlikte tasarlanıp test edilir.

Teknik mimari

Kendi ürünlerimizle aynı teknoloji yığını ve aynı güvenceler: testler, otomatik dağıtım ve ilk günden kurulum başına birden fazla organizatör.

Frontend

  • App Router ile Next.js 16
  • React 19
  • Strict modda TypeScript
  • Tailwind CSS 4
  • Her biri kendi paketiyle 8 dil
  • Önce mobil, 390 px'de test edildi

Backend

  • Sunucu bileşenleri ve API rotaları
  • Şifrelenmiş oturumlar ve bcrypt
  • Veri değiştiren her şeyde Zod ile doğrulama
  • Sunucu olaylarıyla canlı akış
  • CSRF koruması ve istek sınırlama
  • Discord ile giriş

Veri

  • Drizzle ORM ile PostgreSQL 16
  • 67 tablo ve 99 migrasyon
  • Organizatör ve lig bazında izolasyon
  • Kontrollü silmeli yabancı anahtarlar
  • Değişiklik tarihi tetikleyicileri
  • Sürümlü SQL migrasyonları

Rekabet motoru

  • Saf kütüphane; framework ya da veritabanı yok
  • Tek ve çift eleme, İsviçre sistemi, lig usulü ve GSL
  • Deterministik: aynı turnuva aynı fikstürü üretir
  • %100 satır kapsaması
  • Yapılandırılabilir puan durumu ve eşitlik bozma
  • Yalnızca arayüz ve portal kullanır

Altyapı

  • Node 22 ile Ubuntu 24.04 sunucusu
  • Birden fazla süreçle Nginx ve PM2
  • HSTS ile Let's Encrypt sertifikaları
  • Önceden yedek alınarak VentuHub'dan dağıtım
  • Sağlık kontrolü ve otomatik geri alma
  • Ölçülmüş 1.200 eşzamanlı izleyici

Kalite

  • 405 dosyada Vitest ile 4.141 test
  • Playwright ile 698 uçtan uca test
  • Üç proje: mobil Chrome, mobil Safari ve masaüstü
  • Testlerde gerçek Postgres
  • Kalite kuralları ve gerileme kilitli ESLint
  • Mobilde Lighthouse 91, 100, 100 ve 100

Ayrışmış roller

Bir kaptan başka bir takıma dokunamaz. Bir hakem yalnızca kendisine düşen maçları doğrular.

  • Admin

    Tam erişim: kullanıcılar, denetim kaydı, organizatör ayarları ve bakım.

  • Organizasyon

    Liglerin, turnuvaların, kayıtların ve takımların operasyonel yönetimi.

  • Hakem

    Kendisine atanan maçların sonuçlarını doğrular.

  • Kaptan

    Kendi takımı: kadro, kayıtlar, check-in, vetolar ve sonuç bildirimi.

  • Oyuncu

    Takımını ve maçlarını görür, kendi profilini düzenler.

Sadece bir sonuç sitesi değil

Normalde görünmeyen ama canlı bir rekabete istikrar kazandıran mühendislik kararları.

  • Saf kütüphane olarak rekabet motoru

    Framework'e, veritabanına ya da sistem saatine bağımlılık yok: saat dışarıdan verilir ve kura bir tohum kullanır; böylece aynı turnuva testlerde her zaman aynı fikstürü üretir.

  • Tarayıcıya yalnızca etkin dil gider

    Sekiz dilin her biri kendi paketidir: sunucu sayfayı çizmeden önce dili bilir ve istemci yalnızca onu indirir.

  • Sayfa yenilemeden canlı maçlar

    Sekme başına tek bir olay akışı; sonuçları, vetoları ve puan durumu değişikliklerini olduğu anda, otomatik yeniden bağlanmayla bildirir.

  • Kimseyi yarı yolda bırakmayan bakım

    Portaldan etkinleştirilir ve o an gezinen herkese anında ulaşır; öğrenmek için sayfayı yenilemeleri gerekmez.

  • Tam izlenebilir destek

    Destek ekibi bir sorunu çözmek için kullanıcı olarak giriş yapabilir; ekranda kalıcı bir uyarı ve ne yaptığının kaydıyla.

  • İlk günden birden fazla organizatör

    Her organizatör ve her lig veritabanında izole edilir: prototipi çoğaltılabilir bir ürüne dönüştüren şey budur.

  • Tahmin değil, ölçülmüş kapasite

    Canlı maçlarla yük testleri: 95. yüzdelikte 350 ms'nin altında yanıt süreleriyle 1.200 eşzamanlı izleyici.

  • Otomatik geri almalı dağıtım

    Derleme ayrı hazırlanır ve sunucuya tek seferde girer; başlangıç başarısız olursa sistem kendiliğinden önceki sürüme döner.

Binlerce otomatik test

Rekabet motorundan kaptan ve organizatörün eksiksiz akışlarına kadar kapsama. Bir şey başarısız olursa dağıtım durur.

4.141
Vitest testi
405
test dosyası
698
uçtan uca test
3
proje: iki mobil ve bir masaüstü
  • Rekabet motoru

    Tek ve çift eleme, İsviçre sistemi, lig usulü ve GSL fikstürleri: doğru bay geçişleri, kararlı puan durumları ve reddedilen imkânsız sonuçlar.

  • Kimlik doğrulama ve oturum

    E-posta ve Discord ile giriş, şifrelenmiş oturum, CSRF, deneme sınırları ve denetim kaydı.

  • Organizatör bazında izolasyon

    Sorgu ve veritabanı düzeyinde doğrulanmış organizatör ve lig ayrımı.

  • Maçlar ve canlı akış

    Check-in, yeniden planlama, harita vetoları, sonuç bildirimi ve doğrulaması ve canlı olay akışı.

  • Diller ve içerik

    Sekiz dil gerekeni yükler, fazlasını değil: hiçbir istemcinin kullanmadığı bir dili indirmediği test edilir.

  • Uçtan uca, önce mobil

    Gerçek Chrome üzerinde, iki mobil ve bir masaüstü projesinde, erişilebilirlik kontrolleriyle eksiksiz kaptan ve organizatör akışları.

Tüm teknoloji yığını

Kendi ürünlerimizdeki ölçütün aynısı: yalnızca modern, bakımı yapılan ve aktif topluluğu olan araçlar.

  • Next.js 16
  • React 19
  • TypeScript 5
  • Tailwind CSS 4
  • Node.js 22
  • PostgreSQL 16
  • Drizzle ORM
  • Testlerde PGlite
  • Şifrelenmiş oturumlar
  • Zod
  • discord.js
  • Vitest
  • Playwright
  • ESLint 9
  • SQL
  • Bash
  • Nginx
  • PM2
  • Ubuntu 24.04
  • VentuHub
  • Let's Encrypt

Böyle bir şeye mi ihtiyacınız var?

Spike Series, bir VALORANT ligi organizatörü için özel geliştirilmiş kendi kodumuzdur: şablon yok, üçüncü taraf hizmet yok ve ürünlerimize koyduğumuz teknik titizliğin aynısı.

Projelere dön