第 2 阶段:账号与班级,作品保存在服务器

- SQLite(bun:sqlite,编号迁移):班级、用户、会话(只存令牌哈希)、作品
- 登录取代统一访问口令:老师账号由配置设定;接口和 WebSocket 都要登录;按 IP 限制输错次数
- 班级管理页:建班、改名、删除(有学生时不能删);上传 CSV 名单导入(兼容 GBK / UTF-8,
  识别表头,标出被 Excel 变成科学计数法的学号),密码留空生成 6 位数字;查看、重置密码,
  导出带密码的名单
- 学生作品自动保存到服务器(按账号和实验),显示保存状态;离开页面前立即保存
- 前端加路由:登录页、实验页、班级管理页
- 部署:TEACHER_PASSWORD 必填,数据库放在数据卷

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-22 17:36:11 +08:00
1 parent a00622be15
commit 7cec273d58
31 files changed
+1776 -382

No files matched your search

+2 -2
View File
@@ -1,5 +1,5 @@
# 复制为 .env 后修改。.env 不进 git。
# 学生进入平台要输入的口令,换口令后所有人要重新输入
ACCESS_PASSWORD=请改成不容易猜到的口令
# 老师账号的密码(账号默认 admin,可用 TEACHER_USERNAME 修改)
TEACHER_PASSWORD=请改成不容易猜到的密码
# 平台最多使用的内存,默认 4g
# APP_MEM_LIMIT=4g