feat(roster): implement class roster management and submission validation
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
使用 Next.js (App Router) 重写的 AutoTeacher 教学辅助应用
|
||||
|
||||
- 学生端:课程 / 班级 / 作业级联选择,动态表单填写,PDF 文件上传(存储于 S3 兼容对象存储),支持填写学号与姓名并限制同一学号仅提交一次,提交信息写入 PostgreSQL。
|
||||
- 教师端:创建课程、班级、作业,自定义表单 JSON 配置,支持设置评分标准并选择学生提交后自动评分或手动触发评分。
|
||||
- 教师端:创建课程、班级、作业,自定义表单 JSON 配置,支持设置评分标准并选择学生提交后自动评分或手动触发评分,支持为班级导入 Excel 名册并强制学生提交校验。
|
||||
- 后端:Next.js API Route + Prisma + PostgreSQL,文件持久化到 S3。
|
||||
|
||||
## 快速开始
|
||||
@ -104,6 +104,12 @@ autoteacher-next/
|
||||
|
||||
如需扩展字段,可添加 `textarea` 或更多 `text` 输入项;学生提交时的字段值会以 JSON 格式存入 `Submission.formPayload`。
|
||||
|
||||
## 班级名单导入与校验
|
||||
|
||||
- **Excel 格式**:仅需两列,第一列是学号、第二列是姓名,表头可选;若保留表头,建议包含 “学号/Student/ID” 与 “姓名/Name” 等字样以便自动识别。
|
||||
- **导入流程**:教师后台 → “班级管理” → 选择班级 → 使用“班级名单导入”上传 Excel。上传后会用文件内容替换该班级的全部名册并展示已导入人数。
|
||||
- **学生提交校验**:学生在提交作业时需先选择班级,其输入的学号与姓名必须与该班级名册中的记录完全匹配,否则返回 “不在此班级内” 并禁止提交。每个学号仍然只能提交一次。
|
||||
|
||||
## 生产部署提示
|
||||
|
||||
- 推荐设置独立的 S3 Bucket 权限策略,仅允许应用上传指定前缀。
|
||||
|
||||
Reference in New Issue
Block a user