How allexandere/jeopardy works
Jeopardy is a local, in-memory multiplayer trivia game: an organizer selects a board and runs clues, players join and buzz from phones, and a spectator screen displays the synchronized board and video. The server applies game actions and broadcasts state over SSE; clients render that state and send actions back. The graph includes documented themes, customization, and effects. Some server and client wiring is inferred only where the README explicitly documents it; unsampled details are omitted.
Main entry points: server.js HTTP server · sync.js Client sync · render.js Board rendering · menu.js Theme menu
Components 19
Game workflow
- Theme menu
public/js/menu.js - Player join
public/js/client/controls.js - Game rules
lib/game.js - In-memory state
lib/game.js
Game server
- HTTP server
server.js - Static file serving
lib/staticServer.js - LAN discovery
lib/network.js
Browser clients
- Client sync
public/js/sync.js - Client bootstrap
public/js/client/main.js - Game controls
public/js/client/controls.js - Board rendering
public/js/client/render.js - Video playback
public/js/client/video.js
Game content and presentation
- Theme and clue bank
public/clues.js - Avatar picker
public/js/avatar-picker.js - Sounds and effects
public/js/sounds.js
Other components
- Organizer
- Players
- Big screen
- YouTube
Connections 26
- Organizer → Theme menu: selects theme
- Theme menu → HTTP server: posts actions
- Theme menu → Client sync: sends settings
- Players → Player join: joins game
- Player join → Client sync: sends join
- Organizer → Game controls: controls game
- Players → Game controls: buzzes in
- Game controls → Client sync: sends actions
- Client sync → HTTP server: posts actions
- HTTP server → Game rules: applies actions
- Game rules → In-memory state: updates state
- HTTP server → In-memory state: reads and broadcasts
- HTTP server → Static file serving: serves files
- HTTP server → LAN discovery: gets LAN details
- HTTP server → Client sync: streams state
- Client sync → Client bootstrap: delivers state
- Client bootstrap → Board rendering: renders state
- Client bootstrap → Game controls: wires controls
- Board rendering → Theme and clue bank: reads themes
- Theme menu → Theme and clue bank: lists themes
- Board rendering → Video playback: renders playback
- Video playback → Client sync: sends media actions
- Video playback → YouTube: loads video API
- Player join → Avatar picker: selects avatar
- Board rendering → Sounds and effects: plays effects
- Big screen → Board rendering: views board