课程模块——考试界面与技术文档
简介
考试界面需要实现教师通过查看课程的考试管理来查看考试内容,考试参加的学生并添加删除预览考试题目等 这部分功能由颜庆頔组(颜庆頔、姚银满、闫文浩)和左宇晴组(左宇晴、李郭鹏、邵雨婷)共同实现颜庆頔组实现学员和考试内容的管理,左宇晴组负责考试详情页。
前端页面
课程详情页面考试管理
①考试管理:点击考试管理切换底部的子页面
②考试查询:根据input窗口输入内容点击查询button向后端传一个名称string并返回查询结果
③重置:将input窗口设为空
④考试表格:根据后端传来的查询结果局部更新内容并以form的形式呈现,点击编辑详情携带该考试的id跳转到考试详情页面
考试详情页
①考试详情显示:根据考试的id获取相关信息
②题目显示:根据考试的id获取相关信息其中包含的exam_problem,点击删除按钮向后端传输id_problem将该题从数据库中删除并局部刷新,点击题目名称跳转到题目详请并传递数据题目id_problem
③参与学生:点击跳转到参与学生页面并传递参数课程id方便获取选课学生名单
④题目添加:点击添加跳转到考试题目添加页面并传递该次考试id
⑤返回课程:点击返回按钮返回课程页面
查看参与学生
①参与学生的显示:本弹窗用于显示参与考试的学生,默认关联到数据库中所有选择了这门课的学生,默认按照一定规则(待定)生成考试专用用户名和密码,默认AB卷间隔分配。
②添加学生:点击添加学生会出现一个弹窗显示所有的学生表单并将通过勾选将选中的学生添加到当前考试表单中进行刷新
③导出 csv: 所有参加考试学生导出
④搜索:根据输入学生名学号,搜索之后会锁定到该条学生信息(若无搜索结果弹出提示框)
⑤删除:选中学生后,可以删除学生。(若无勾选学生提示请勾选)
管理考试题目
①题目列表:根据考试的id获取相关信息其中包含的exam_problem,点击删除按钮向后端传输id_problem将该题从数据库中删除并局部刷新,点击详细跳转到题目详请
②题库列表:获取所有题目
③新建题目:跳转到新建题目页面
④搜索:跟输入的题目进行搜索筛选出对应的题目并刷新表单
⑤添加:点击添加会添加到题目列表中并刷新
后端及接口的使用
功能 | 接口 |
获取一门课程的所有考试 | /teacher/exam/get-my-exams GET |
搜索一个考试(一门课程的所有考试) | |
获取考试详情 | 获取考试详情 POST |
获取参与学生的名单 | 获取参与学生名单 POST |
获取全部学生名单 | 获取全部学生名单 GET |
添加参与学生 | 添加参与学生 POST |
删除参与学生 | 删除参与学生 POST |
get-all-problems GET | |
添加题目 | 添加A卷或B卷题目POST |
删除题目 | 删除A卷或B卷题目POST |
搜索相关题目(所有题目) | |
搜索学生姓名(该课程学生) | |
搜索学生学号(该课程学生) | |
搜索学生姓名(所有学生) | |
搜索学生学号(所有学生) |
需要修改补充的接口
修改
- 获取考试详情 【张星】
获取考试详情 POST
Request
{
“course”:id //课程id
}
因为一个课程有好多的考试我感觉应该再传入一个exam_id来获取某一场考试的具体考试信息 - 获取参与学生的名单 获取全部学生名单【张星】
这两个功能 可能需要分页有可能在传参时传入相对应的page并返回相对应的数据
添加
- 搜索一个考试(一门课程的所有考试)【左天衡】
传入一个考试名称字符串返回查找结果所有相关课程的"course_id" ,“name”,“teacher” ,“start_time” ,“end_time” ,“description”
} - 搜索相关题目(所有题目) 【左天衡】
get-problems
传入一个题目名称字符串返回查找结果所有相关题目的"problem_id" ,“name”,“ac” ,“提交次数” ,“分配课程” 等 - 搜索学生姓名(该课程学生)【张星】
传入exam_id , student_id 返回 “id”,“student_number”,“name”,“type”,“password” - 搜索学生学号(该课程学生)【张星】
传入exam_id , student_number返回 “id”,“student_number”,“name”,“type”,“password” - 搜索学生姓名(所有学生)【张星】
传入 student_id 返回 “id”,“student_number”,“name” - 搜索学生学号(所有学生)【张星】
传入student_number返回 “id”,“student_number”,“name”