Rock Paper Scissors Tournament

Real-time competitive RPS tournament platform with a retro arcade theme, run live on campus.

  • TypeScript
  • React
  • Node.js
  • Socket.IO
Rock Paper Scissors Tournament cover

Problem & user context

Campus events needed a game everyone already knows how to play, with zero setup, that works on whatever phone a student pulls out of their pocket. Rock-paper-scissors fits — but running a fair, fast tournament with live brackets by hand doesn’t scale past a handful of players.

Constraints & tradeoffs

  • Real-time on flaky campus Wi-Fi. Socket.IO with reconnection handling so a dropped connection doesn’t forfeit a match.
  • Zero-install. Pure web app — players join from a URL, no accounts, no app store.
  • Retro arcade theme. Deliberate CRT/arcade aesthetic to make a simple game feel like an event.

Architecture

Players (mobile browsers)
   │  Socket.IO

Node.js game server ── match state, bracket progression, anti-cheat timing


React frontend ── lobby, live bracket display (big screen), match UI

Screenshots

Watch the showcase video for the live tournament in action.

Results & lessons

  • Successfully hosted live tournaments on the Cy-Fair campus with a projected live bracket.
  • Lesson: real-time state sync is 20% happy path, 80% reconnection and edge cases — designing the state machine first saved the project.