League of Rankeds
Un hub competitivo de League of Legends donde se juegan ligas, torneos, equipos y duelos, con sync automático de partidas.A competitive League of Legends hub for leagues, tournaments, teams and duels, with automatic match sync.
SOBRE EL PROYECTOABOUT THE PROJECT
Side project full-stack convertido en un hub competitivo de League of Legends con más de 80 usuarios, donde se juegan ligas, torneos, equipos y duelos. Los jugadores conectan su Riot ID y la app sincroniza automáticamente sus partidas ranked desde la API de Riot, calculando puntos con un motor de reglas configurable por competencia. La construí con Next.js (React 19), TypeScript, Prisma y PostgreSQL sobre Supabase, con un panel de administración aparte y workers en Node/TypeScript que corren con PM2 en un VPS propio, deployados automáticamente con GitHub Actions.A full-stack side project that grew into a competitive League of Legends hub with 80+ users, where leagues, tournaments, teams and duels are played. Players connect their Riot ID and the app automatically syncs their ranked matches from Riot’s API, scoring them with a per-competition configurable rules engine. I built it with Next.js (React 19), TypeScript, Prisma and PostgreSQL on Supabase, with a separate admin panel and Node/TypeScript workers running under PM2 on a self-hosted VPS, auto-deployed with GitHub Actions.
STACK
LO QUE CONSTRUÍWHAT I BUILT
06 ENTREGABLES CLAVEKEY DELIVERABLESSync con la API de RiotRiot API sync
Importación automática de partidas ranked, rangos y KDA desde el Riot ID de cada jugador.Automatic import of ranked matches, tiers and KDA from each player’s Riot ID.
Motor de puntos configurableConfigurable scoring engine
Reglas por liga: base de victorias/derrotas más bonus por KDA, partidas perfectas y penalizaciones.Per-league rules: base wins/losses plus bonuses for KDA, perfect games and penalties.
Ligas, equipos y duelosLeagues, teams and duels
Ligas soloq, duoq y por equipos, gestión de teams, salas de duelos 1v1 y leaderboards en vivo.Soloq, duoq and team leagues, team management, 1v1 duel rooms and live leaderboards.
Workers en VPS propioWorkers on a self-hosted VPS
Procesos en Node/TypeScript con PM2 (sync, live, emails), deployados con GitHub Actions por SSH.Node/TypeScript processes with PM2 (sync, live, emails), deployed via GitHub Actions over SSH.
Integración de streamingStreaming integration
Polling de Twitch y Kick para mostrar en tiempo real qué jugadores están en vivo.Twitch and Kick polling to show in real time which players are live.
PWA con push y panel adminPWA with push and admin panel
Notificaciones Web Push y un panel de administración aparte para ligas, usuarios, disputas y novedades.Web Push notifications and a separate admin panel for leagues, users, disputes and news.