diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d2d4373 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 KeshavAnandCode + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 5525733..7e4c480 100644 --- a/README.md +++ b/README.md @@ -1 +1,45 @@ -Buzzer app for sutff +# 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 +```