CS2HUB – Komunitní CS2 Portál

CS2HUB – Komunitní CS2 Portál

2024 PHP, Nette, MySQL, JavaScript, CSS, Steam API, Source Query, SourcePawn

🎮 CS2HUB – Komunitní CS2 Portál

Stav projektu: Discontinued – po dokončení klíčových funkcí byl projekt ukončen. Slouží jako ukázka technických dovedností a komplexního přístupu k vývoji herního portálu.

📌 Popis projektu

CS2HUB byl komplexní komunitní portál pro Counter-Strike 2, který měl propojit herní servery s webovým rozhraním a poskytnout hráčům moderní nástroje pro správu skinů, sledování statistik, nákup VIP a další. Projekt vznikal jako osobní vývojová výzva s cílem vytvořit plnohodnotnou alternativu ke stávajícím komunitním řešením.

🛠️ Technologický stack

  • Backend: PHP 8.2, Nette Framework 3.x
  • Frontend: Latte (Nette templating), Vanilla JavaScript, CSS3
  • Databáze: MySQL 8.0 (Nette Database Explorer)
  • Autentizace: Steam OpenID 2.0
  • API integrace: Steam Web API, Source Query Protocol
  • Herní pluginy: SourcePawn (cs2-WeaponPaints, cs2-ranks, SourceBans)
  • Správa závislostí: Composer
  • Server: Apache 2.4, PHP 8.2

🎯 Hlavní funkcionality

🔐 Autentizace a správa uživatelů

  • Přihlášení přes Steam OpenID s konverzí mezi SteamID64 a starým formátem STEAM_X:Y:Z
  • Automatické načítání profilových dat (avatar, nickname) přes Steam Web API
  • Ověření členství ve Steam skupině pro přístup k pokročilým funkcím (skiny)

📊 Statistiky a žebříčky

  • Napojení na databázi pluginu cs2-ranks (tabulka lvl_base)
  • Přehled hráčských statistik: kills, deaths, headshots, assists, playtime, rank
  • Stránkovaný žebříček s možností řazení podle bodů nebo K/D poměru
  • Vyhledávání hráčů podle jména
  • Modální okno s detailními statistikami po kliknutí na jméno hráče
  • Automatické doplňování chybějících profilů (nickname, avatar) z Steam API

🎨 Správa skinů (WeaponPaints)

  • Kompletní webové rozhraní pro správu skinů napojené na plugin cs2-WeaponPaints
  • Moderní popup customizer s mřížkovým výběrem skinů
  • Úprava parametrů: wear, seed, nametag, StatTrak
  • Správa nálepek (stickers) s vyhledáváním a výběrem z katalogu
  • Správa klíčenek (keychains) s nastavením offsetu
  • Podpora pro nože – výběr modelu z drop-down nebo gridu
  • Podpora pro agenty – výběr z katalogu CT/T agentů
  • Podpora pro rukavice – výběr modelu, paint, wear, seed
  • Flash zprávy místo vyskakovacích alertů
  • Responzivní design, dark theme

🛒 Obchod (Store)

  • Předpřipravený obchod s podporou produktů (kredity, VIP)
  • Správa objednávek v databázi
  • Integrace s tabulkou vip_users pro správu VIP oprávnění
  • Testovací režim bez reálné platební brány
  • Připravená integrace s GoPay platební bránou (sandbox mode)

🖥️ Přehled serverů

  • Dynamické načítání informací o serverech přes Source Query Protocol
  • Zobrazení online hráčů, aktuální mapy, IP a portu
  • Whitelist systém – možnost přidat se do whitelistu serveru (ukládání SteamID)
  • Připravená struktura pro více serverů

🚫 Správa trestů

  • Přehled banů, unbanů, mutů, unmutů a varování z tabulek sa_*
  • Záložkové rozhraní pro přepínání mezi typy trestů
  • Stránkování a řazení od nejnovějších

🤖 Discord integrace

  • Endpoint pro Discord bota (/stats/get-stats-by-discord)
  • Propojení Discord ID s SteamID přes tabulku Discord_Utilities
  • Vrací kompletní herní statistiky ve formátu JSON

🏠 Landing page

  • Moderní hero sekce s tlačítkem pro připojení k serveru
  • Zobrazení online hráčů v reálném čase
  • Sekce výhod serveru
  • Výzva k připojení do Steam skupiny pro plnou funkcionalitu skinů
  • Sociální sítě (Instagram, TikTok, Threads, Discord) s ikonami

📚 Co jsem se naučil

  • Nette Framework: DI kontejner, autowiring, presentery, routování, Latte šablony, Nette Database Explorer
  • Integrace a API: Steam OpenID autentizace, Steam Web API, konverze SteamID formátů, Source Query Protocol
  • Frontend: Responzivní design s dark theme, modální okna, AJAX komunikace, Flash zprávy
  • Databáze: Komplexní návrh struktury, JOIN dotazy, ukládání dat z externích API
  • Komplexní myšlení: Propojení herních pluginů (SourcePawn) s webem, zabezpečení, optimalizace výkonu

🧩 Použité pluginy a knihovny

  • PHP knihovny: nette/application, nette/database, nette/security, xpaw/steam-openid, xpaw/steamid, xpaw/php-source-query-class, contributte/gopay-inline
  • CS2 herní pluginy: cs2-WeaponPaints (skiny), cs2-ranks (rank systém), SourceBans (tresty)