46 lines
1.2 KiB
Markdown
46 lines
1.2 KiB
Markdown
# Buzzer
|
|
|
|
Real-time buzzer system for Jeopardy, Quiz Bowl, and anything else that needs a fair, fast buzzer. Self-hosted, zero frontend dependencies.
|
|
|
|
*Written entirely by [Claude](https://claude.ai) (Anthropic).*
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
- [Bun](https://bun.sh) v1.0+
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
bun install
|
|
bun --hot run src/server.ts
|
|
```
|
|
|
|
Open `http://localhost:3000`. Create a room to host, or enter a room code to join.
|
|
|
|
---
|
|
|
|
## How It Works
|
|
|
|
One moderator per room controls the buzzer, timer, and teams. Players join via a six-character code and buzz in by clicking or pressing **Space**. The moderator sees the full buzz order with millisecond deltas. Everything is configurable live, mid-game.
|
|
|
|
Teams are auto-named using the Greek alphabet and can scale from 2 to 64.
|
|
|
|
Moderator identity is verified server-side by a secret generated at room creation — players cannot escalate privileges.
|
|
|
|
---
|
|
|
|
## Structure
|
|
|
|
```
|
|
src/
|
|
├── server.ts # HTTP + WebSocket server
|
|
├── rooms.ts # State, types, broadcast helpers
|
|
├── ws-handler.ts # Message routing
|
|
└── public/
|
|
├── index.html
|
|
├── styles.css
|
|
└── script.js
|
|
```
|