A server-side rendered web application to track scores and rankings for a Kniziathon gaming event.
From the project root directory:
clojure -M:runThe server will start on http://localhost:3000
Navigate to http://localhost:3000 to access the main interface:
- Games (
/games): Add games with their weights (hours of play time) - Players (
/players): Add players to the event - Plays (
/plays): Record game sessions
Open http://localhost:3000/leaderboard in a separate browser window or tab:
- Displays current rankings
- Auto-refreshes every 10 seconds
- Click "Toggle Fullscreen" to hide navigation
- Click player names to see detailed game breakdown
Navigate to /data to:
- Export: Download all data as an EDN file (for backup or sharing)
- Import: Upload a previously exported EDN file
- Clear: Delete all data (with confirmation)
Points awarded based on rank and number of players:
| Players | 1st | 2nd | 3rd | 4th | 5th | 6th |
|---|---|---|---|---|---|---|
| 6 | 8 | 6 | 4 | 3 | 2 | 1 |
| 5 | 7 | 5 | 3 | 2 | 1 | - |
| 4 | 6 | 4 | 2 | 1 | - | - |
| 3 | 5 | 3 | 1 | - | - | - |
| 2 | 4 | 1 | - | - | - | - |
- Position points × game weight = play score
- For each game, only the player's best score counts
- Total score = sum of best scores across all games played
If port 3000 is already in use, modify src/kniziathon/core.clj:
(run-jetty app {:port 3001 :join? true}) ; Change to 3001 or any available portEnsure the data/ directory is writable. The application will create it automatically if it doesn't exist.