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üş

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