QuickPicks Project Story

Inspiration

We wanted to create a group-based sports prediction platform that blends real-time engagement with friendly competition. The idea came from the excitement of watching games in groups — whether at a bar, stadium, or at home — and the thrill of making live predictions together. QuickPicks is designed to capture that experience and make it accessible to anyone in real time.


What it does

QuickPicks allows organizers to create “rooms” for specific sports games, and users can join those rooms to participate in “Quick Pick” prediction events. These events appear during the most high-stakes moments of the game and allow users to make predictions. Correct predictions earn points according to how many other players in the room chose the same option — the fewer who guessed correctly, the more points you score. Scores are updated in real time, and a live leaderboard keeps track of everyone’s progress.

Key Features:

  • Room creation tied to a specific sports game
  • Real-time broadcasting of prediction events via WebSockets
  • Scoring based on how many players chose the same answer — rarer correct picks earn more points
  • Live leaderboard that updates instantly after each event

How we built it

🔧 Backend

  • FastAPI + Uvicorn – Async Python API framework on ASGI
  • WebSockets – Low-latency, bidirectional connections for real-time gameplay
  • Pydantic – Type-safe request/response validation and serialization

Core Systems:

  • Room Management – Create, join, and manage active game sessions
  • Event Engine – Timed questions, scoring rules, and automated game progression
  • Player Tracking – Submissions, score updates, and live leaderboards
  • WebSocket Manager – Maintains active connections and efficiently broadcasts updates across multiple rooms
  • Timer System – Ensures synchronized question phases for fairness
  • API Structure – REST endpoints for setup and orchestration, WebSockets for state synchronization

Frontend

  • React 18 + TypeScript – Hooks + type safety
  • React Native Web – Cross-platform components for web and mobile
  • React Native Paper – Material Design 3 UI library

Highlights:

  • Screens for joining, hosting, and playing
  • Real-time state updates via WebSockets
  • Mobile-first design with custom dark theme

Challenges we ran into

  • Designing a real-time game architecture and keeping the game state synchronized
  • Handling WebSocket connections efficiently for multiple rooms
  • Designing a clean UI that works well in both host and client views
  • Creating a scoring system that felt fair and engaging
  • Architecting a metric to quantify which plays are electric

Accomplishments that we're proud of

  • Built a fully functional real-time multiplayer game without authentication
  • Designed a fast and responsive WebSocket architecture to manage game state
  • Developed a clean and intuitive UI using React Native Paper
  • Successfully implemented probability-based scoring and leaderboards that update in real time

What we learned

  • WebSocket-based architectures require careful planning for scalability and reliability
  • UI/UX design is just as important as backend functionality when building engaging apps
  • Real-time scoring systems require precise timing to ensure fairness

What's next for QuickPicks

  • Introduce new game modes such as Stadium Mode (large-scale events) and Winner Takes All for high-stakes play
  • Expand beyond football to support multiple sports like basketball, baseball, and soccer
  • Integrate live sports data from Sports APIs to make events automatic instead of replaying from demo cassette data

Built With

Share this project:

Updates