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
- fastapi
- ngrok
- pandas
- pydantic
- python
- react-native
- typescript
- websockets

Log in or sign up for Devpost to join the conversation.