AskaEth 2c9ff65fc4 feat: 补齐第一批已知缺口(关闭握手 / 定时备份 / Origin 白名单 / DTO 收敛)
- httpapi:新增 POST /api/shutdown(admin 会话或 X-Shutdown-Token 常量时间比对)
  与 GET /api/rules/switches(recorder 可读,只回布尔开关);settings/standings 的
  重复 DTO 收敛到 internal/dto;standings.showIndividualMedals 贯通到设置读写与前端
- export:抽出 export.Service,新增自动备份定时任务(backup.intervalMinutes/keep),
  自动、手动、发布前三类备份共用同一把互斥锁与滚动清理
- realtime:/ws 去掉 InsecureSkipVerify,改用 OriginPatterns(同源与无 Origin 放行,
  跨站需命中 server.allowedOrigins)
- console:停止服务改走 POST /api/shutdown 优雅关闭(5 秒宽限后回退强杀),
  服务管理器新增「已连接的大屏实例」卡片
- deploy:build.bat 改用 for /f 读内部署名——set /p 在 chcp 65001 下返回空,
  导致最近这次构建的 exe 里根本没注入署名
- docs:备份策略、关闭超时、Origin 配置的说明与实现对齐
2026-09-09 21:41:08 +08:00
2026-09-09 16:01:35 +08:00

Scoreboard · 赛事积分榜系统

一套局域网内部署的赛事成绩与积分系统:一个服务端 + 两个界面,后台一改数据,前台大屏实时跟着变。

界面 地址 用途
实时积分大屏 /display 只读、无人值守;成绩发布后 1 秒内更新
管理面板 /admin 录入、发布成绩,控制大屏;未登录可只读查看全部赛事数据

功能概览

  • 四个榜:总积分榜、团体奖牌榜、个人积分奖牌榜、分项成绩表
  • 录入即上屏:成绩录入 → 发布 → 大屏即时更新
  • 可追溯、可撤销:草稿不上屏;发布后纠错走「撤销发布 → 改 → 重新发布」,全程留痕
  • 变更历史:仿 Git 图谱,一眼看清成绩是怎么变成现在这样的
  • 现场公开:积分明细可下钻,争议时一键推送到大屏
  • 规则可配置:积分规则以规则包(YAML)描述,可导入导出、跨赛事复用
  • 赛事独立存档:每个赛事一个独立项目目录,可整包导出/导入
  • 结果导出:Excel 总表与分项可单独导出

快速开始

  1. 解压部署包
  2. 双击 scoreboard.exe(Linux 下执行 ./scoreboard)
  3. 浏览器打开终端提示的地址
大屏      http://<主机IP>:19540/display
管理面板   http://<主机IP>:19540/admin

完全离线运行,不依赖外网,不需要安装任何运行时。

文档

  • 部署指南:运行环境、安装与首次启动、端口与配置、大屏接线、备份恢复、故障排查
  • 使用手册:角色权限、各功能页面的操作步骤、大屏端使用、常见操作问题
  • 常见问题(FAQ):账号、成绩与积分、大屏、数据备份、导出导入
  • 规则包格式:见 rules/README.md

许可证

MIT

S
Description
一个简易实用的赛事积分榜系统
Readme MIT
30 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 53.5%
TypeScript 25.9%
Vue 14.5%
JavaScript 3.7%
NSIS 1.2%
Other 1.2%