Files
2026-10-28 09:36:55 +08:00

86 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 快捷键训练比赛系统
这是一个独立的小程序。学生账号直接使用原分组系统的 `selfgroup.db`;训练相关数据表也创建在同一个数据库里,但都带 `trainer_` 前缀,不会改动原来的分组表。
## 启动
在本仓库根目录执行:
```bash
python3 shortcut_trainer/app.py
```
- 学生端:<http://127.0.0.1:8010/>
- 教师端:<http://127.0.0.1:8010/teacher>
程序默认用 IPv4/IPv6 双栈监听所有网卡。启动日志会尽量列出本机可访问地址;学生从局域网访问时,选择老师电脑的局域网 IPv4,例如 `http://192.168.1.20:8010/`。
训练页使用 6 种高区分度整屏背景色,并显示超大页码水印,老师从学生屏幕缩略图即可快速确认是否切到了指定页面。
## 共享数据库
程序默认直接使用项目根目录:
```text
selfgroup.db
```
它读取其中的 `students` 表,登录会话写入原来的 `sessions` 表;训练数据保存在这些新表:
```text
trainer_presence
trainer_rounds
trainer_scores
trainer_events
```
所以你在原分组系统教师后台修改学生密码后,学生立刻可以用新密码登录快捷键训练系统。
如果你把 `selfgroup.db` 拷贝到了 `shortcut_trainer/` 目录,这个拷贝文件不会再被使用。可以移走它,避免以后混淆。如需指定其它共享数据库,可这样启动:
```bash
SHARED_DB=/path/to/selfgroup.db python3 shortcut_trainer/app.py
```
## 学生账号
教师端「学生账号」面板可以搜索学生、重置密码、添加新账号,改动直接写入共享的 `selfgroup.db`。
程序启动时会自动补齐这些测试账号(若学号已存在则跳过):
| 学号 | 姓名 | 班级 | 密码 |
| --- | --- | --- | --- |
| test01 | 测试甲 | 测试 | test1234 |
| test02 | 测试乙 | 测试 | test1234 |
| test03 | 测试丙 | 测试 | test1234 |
| test04 | 测试丁 | 测试 | test1234 |
| test05 | 测试戊 | 测试 | test1234 |
程序启动时会自动读取学生名单库,优先使用:
1. `shortcut_trainer/selfgroup.db`(如果你把数据库拷贝到了这里)
2. 项目根目录的 `selfgroup.db`
教师端使用同一个 `settings` 表里的 `teacher_username` 和 `teacher_password`。如果原分组系统已修改过教师密码,快捷键教师端也使用修改后的密码。
## 课堂流程
1. 学生登录首页,允许 Chrome 弹出窗口。
2. 学生打开 4–6 个训练页;也可按 `Alt+P/Q/R/T/Y/U`。
3. 教师端用可视化表单发布指令:先选目标页面,再选“点击指定按钮”“多步快捷键”“右键菜单”“窗口操作”或“演示链接”,最后选具体目标;不需要手写 JSON。
4. 学生完成操作后,教师端实时显示前 10 名。
训练页按钮做成 Word 式功能面板:`Alt+K` 展开检测面板(`C` 燃料检查、`D` 系统诊断),`Alt+H` 展开推进面板(`R` 火箭准备、`T` 通讯开启),`Alt+B` 展开保障面板(`P` 备用电源、`L` 外部链接)。`L` 之后再按 `A` 打开百度,或按 `B` 打开 Bilibili。也可以继续用 `Alt+1` 到 `Alt+6` 或鼠标点击,判定相同。
## 可自动判定的操作
- 打开指定训练页;
- 点击指定页面按钮(支持按钮序号或名称:火箭准备、燃料检查、通讯开启、系统诊断、备用电源、外部链接);
- 页面自定义右键菜单 + `E/R/C`;
- 外部链接菜单:`Alt+B` 后按 `L`,再按 `A` 打开百度或 `B` 打开 Bilibili。
## 浏览器限制
Chrome/Windows 会优先处理 `Ctrl+T`、`Ctrl+W`、`Ctrl+N`、`Alt+F4`、`Win+D` 等系统级快捷键;普通网页通常无法可靠拦截这些按键,也无法检测学生手工输入网址或真实窗口菜单。这些内容适合演示和人工观察。训练系统用自定义组合键和模拟窗口完成可计分练习。