- ReactJS – UI framework
- TanStack Router – Modern file-based routing
- Zustand – Global state management (lightweight)
- TanStack Query – Data fetching/caching
- Shadcn/UI – Clean and customizable UI components
- Socket.IO Client – Real-time communication with backend
- Simple username input
- On submit, Authenticated via JWT
- Stores token in store and persist it using localstorage
- Displays countdown timer for session start/end
- Button to join current session (if active)
- Uses WebSocket
sessionEventsto keep in sync
- User selects a number (1–10)
- Socket emits selection to backend
- When session ends, shows result (win/loss)
- Displays participant list in real time
- Socket emits
sessionInitto get the current session
- Frontend gets
sessionStarted - User can now hit "Join Game"
- User picks number
- One-time selection per session
- Receives result, determines winner
- A buuton to join go back to the dashboard. A session is nit automatically joined for user so user can decide if they'd like to join a session or not.
- Clone git repo
- Run
pnpm install
pnpm run dev