ZJUI-Learn 教师/管理员全页面操作手册(逐页说明)¶
本文面向老师与平台管理员,按当前项目代码中的路由逐页整理“入口、作用、可执行操作、注意事项”。
依据:
- 路由主清单:
apps/prairielearn/src/server.ts - 官方教师文档:
docs/course/index.mddocs/courseInstance/index.mddocs/assessment/overview.mddocs/assessment/configuration.mddocs/sync.md
1. 先看权限模型(避免“有页面没权限”)¶
教师端权限在官方文档中分两条线:
- 课程内容权限(预览者/查看者/编辑者/所有者)
- 学生数据权限(查看/编辑)
典型对应关系:
- 查看与题目预览/勾选:课程内容预览者及以上
- 编辑题目、编辑文件、同步Git:课程内容编辑器及以上
- 查看学生个人成绩: 学生数据查看器及以上
- 人工评分、改分、调整考试状态:学生数据编辑
若出现“页面能打开但按钮不可用”,通常是角色权限不足。
2. 页面总览(信息架构)¶
教师/管理员最常用页面分 6 组:
- 全局账号与通用页面(设置、课程申请、工作区)
- 课程等级管理(
/pl/course/:course_id/...) - 课程实例-课程管理(
/pl/course_instance/:id/instructor/course_admin/...) - 课程实例-实例管理(
/pl/course_instance/:id/instructor/instance_admin/...) - 课程题目实例-测验与管理(评估/问题详情页)
- 平台管理员页面(
/pl/administrator/...)
3. 全局与通用页面(老师/管理员常用)¶
3.1 首页与个人¶
/与/pl- 作用:平台首页、课程入口与导航中心。
- 操作:进入课程、查看可访问课程、跳转老师/学生视图。
/pl/settings- 作用:个人设置页(账号相关、令牌等)。
- 操作:管理个人偏好与访问令牌(若启用)。
/pl/request_course- 作用:申请开通课程空间。
- 操作:提交课程申请(由管理员审批)。
/pl/enroll- 作用:学生/用户加入课程入口(自助加入流程相关)。
3.2 工作区与辅助¶
/pl/workspace/:workspace_id- 作用:工作区页面(编程/交互环境)。
- 操作:启动与使用工作区。
/pl/workspace/:workspace_id/logs- 作用:查看工作区日志。
- 操作:排查运行错误、环境启动失败。
- 开发型号:
/pl/loadFromDisk- 作用:强制从磁盘重新加载课程内容。
- 典型场景:本地修改了
infoCourse.json/infoCourseInstance.json/infoAssessment.json/question info.json后未生效。
4. 课程级别页面(Course 维度)¶
URL 出口:
/pl/course/:course_id
4.1 课程主入口与上下文¶
/pl/course/:course_id- 行为:重定向到
.../course_admin。 - 用途:课程管理总入口。
- 行为:重定向到
/pl/course/:course_id/effectiveUser- 作用:有效用户/代理身份切换相关页面。
- 场景:排查“某角色看到什么”的访问问题。
4.2 课程管理(课程管理)页面¶
/pl/course/:course_id/course_admin- 作用:课程管理主框架页。
.../course_admin/getting_started- 作用:课程初始化任务与待办检查。
- 操作:按任务清单完成首轮配置。
.../course_admin/settings- 作用:课程等级配置(对应
infoCourse.json维度)。 - 操作:名称、时区、课程元数据检查。
- 作用:课程等级配置(对应
.../course_admin/sharing- 作用:共享配置与共享集合(共享集)管理。
- 操作:维护题目共享策略。
.../course_admin/staff- 作用:课程成员与权限配置。
- 操作:分配内容权限与学生数据权限。
.../course_admin/sets- 作用:评估集配置。
- 操作:维护HW/Exam/Quiz等集合展示逻辑。
.../course_admin/modules- 作用:评估模块配置。
- 操作:按章节/模块组织测验。
.../course_admin/topics- 作用:题目主题管理。
- 操作:规范题库主题标签。
.../course_admin/tags- 作用:题目标签管理。
- 操作:维护检索标签体系。
.../course_admin/instances- 作用:课程实例列表与管理入口。
- 操作:创建新学期实例、进入实例管理。
.../course_admin/questions- 作用:题库总览。
- 操作:筛选、搜索、批量查看题目状态。
.../course_admin/questions/create- 作用:新建题目。
- 操作:空白创建、模板创建、QID规范化。
.../course_admin/ai_generate_question- 作用:AI 题目生成入口(当前项目为上传起点)。
- 操作:上传题目素材文件,进入后续 AI 流程。
/pl/course/:course_id/ai_generate_question_drafts- 作用:保留ZJUI-Learn企业版原有的AI题目草流程稿。
.../course_admin/issues- 作用:题目问题反馈汇总(学生问题)。
- 操作:定位题目缺陷、跟进关闭。
.../course_admin/syncs- 作用:Git同步页面。
- 操作:从远程仓库拉取、查看同步历史;与
docs/sync.md建议流程配合。
.../course_admin/file_view- 作用:课程文件浏览器。
- 操作:浏览仓库目录与文件内容。
.../course_admin/file_edit- 作用:网页内文件编辑器。
- 操作:在线编辑并提交(需编辑/所有者)。
.../course_admin/file_download- 作用:文件下载入口。
- 操作:导出课程相关文件。
4.3 题目详情页(课程维度)¶
/pl/course/:course_id/question/:question_id/settings- 作用:题目设置页。
- 操作:题目元信息、测试、共享设置。
.../question/:question_id/preview- 作用:题目预览页。
- 操作:查看渲染效果、试答、切换变体。
.../question/:question_id/statistics- 作用:题目统计。
- 操作:查看正确率、使用分布,辅助题目改进。
.../question/:question_id/file_view.../question/:question_id/file_edit.../question/:question_id/file_download- 作用:题目文件浏览/编辑/下载。
- 典型操作:修改
info.json、question.html、server.py。
.../question/:question_id/clientFilesQuestion.../question/:question_id/generatedFilesQuestion.../question/:question_id/submission/:submission_id/file- 作用:题目资源、生成文件、提交文件查看。
4.4 课程级辅助页¶
/pl/course/:course_id/file_transfer- 作用:文件迁移/传输辅助。
/pl/course/:course_id/grading_job- 作用:查看评分任务详情。
/pl/course/:course_id/jobSequence- 作用:查看后台作业链路(调试/运维向)。
/pl/course/:course_id/edit_error- 作用:编辑错误展示页。
/pl/course/:course_id/copy_public_question- 作用:从公开题库拷贝题目到本课程。
/pl/course/:course_id/copy_public_course_instance- 作用:从公开课程实例复制内容。
5.实例课程教师页面(课程实例/讲师)¶
URL 出口:
/pl/course_instance/:course_instance_id/instructor
默认跳转:
.../instructor->.../instance_admin/assessments
6. Instance Admin(实例管理)逐页说明¶
6.1 核心实例管理¶
.../instance_admin/settings- 作用:实例基础配置(对应
infoCourseInstance.json维度)。 - 操作:实例名称、学生入口、自助加入策略等。
- 作用:实例基础配置(对应
.../instance_admin/publishing- 作用:发布时间窗与发布扩展。
- 操作:设置
startDate/endDate,为特定学生延长延长时间。
.../instance_admin/assessments- 作用:实例内测验列表总览。
- 操作:进入单个评估管理页面。
.../instance_admin/students- 作用:学生名单页。
- 操作:邀请学生、批量操作、同步学生信息。
.../instance_admin/students/labels- 作用:学生标签管理。
- 操作:创建/编辑标签、按UID分配标签。
.../instance_admin/enrollment- 作用:学生详情与单人管理入口。
- 操作:查看该生记录、执行封禁/解封等操作。
.../instance_admin/gradebook- 作用:成绩册。
- 操作:查看分数、导出成绩、定位异常分布。
.../instance_admin/lti- 作用:LTI配置页(LTI1.1/链接管理相关)。
- 操作:配置LMS活动参数、链接评估。
6.2 实例文件页¶
.../instance_admin/file_view.../instance_admin/file_edit.../instance_admin/file_download- 作用:实例层文件浏览/在线编辑/下载。
- 典型文件:
courseInstances/<term>/infoCourseInstance.json与足球文件。
6.3 企业版可选¶
.../instance_admin/ai_grading(企业).../instance_admin/billing(企业).../instance_admin/lti13_instance(企业)
7. Course Admin(实例内课程管理)逐页说明¶
URL 出口:
/pl/course_instance/:id/instructor/course_admin
该组页面功能与课程级别 course_admin 基本对齐,区别是上下文绑定在某个课程实例的讲师入口下。
.../settings.../sharing.../staff.../sets.../modules.../instances.../getting_started.../issues.../questions.../questions/create.../ai_generate_question.../syncs.../topics.../tags.../file_view.../file_edit.../file_download
企业版原有的.../instructor/ai_generate_question_drafts路由保持不变,与上传生成入口并存。
8.考核管理页面(教师最核心)¶
URL 出口:
/pl/course_instance/:id/instructor/assessment/:assessment_id
.../settings- 作用:测验基础设置与学生直达链接等。
- 操作:设置标题、类型(作业/考试)、实例策略。
.../questions- 作用:题目编排页。
- 操作题目:管理区域、顺序、分值规则与抽取题逻辑。
.../groups- 作用:分组作业管理。
- 操作:建组、导入CSV分组、随机分组、角色配置。
.../access- 作用:访问控制(开放时间、密码、信用比例等)。
- 操作:配置访问规则。
.../assessment_statistics- 作用:测验整体统计。
- 操作:分析整体表现、分布、难度。
.../question_statistics- 作用:题目维度统计。
- 操作:定位异常题、低区分度题。
.../downloads- 作用:导出页面。
- 操作:下载成绩、分组、日志相关数据。
.../uploads- 作用:上传页面(如分组导入、成绩/名单辅助上传等视配置而定)。
.../regrading- 作用:重评分页面。
- 操作:触发重评分任务,修复规则更新后的历史评分。
.../instances- 作用:评估实例列表。
- 操作:查看学生/小组实例状态,定位异常实例。
.../manual_grading- 作用:人工评分入口。
- 子页面:
.../manual_grading/assessment_question/:assessment_question_id.../manual_grading/instance_question/:instance_question_id
- 操作:逐题批改、给反馈、修正分数。
.../assessment_instance/:assessment_instance_id- 作用:单个评测实例详情。
- 操作:查看事件时间线、提交记录、评分细节。
.../file_view/.../file_edit/.../file_download- 作用:评估目录文件管理。
- 典型文件:
infoAssessment.json、附加资源文件。
9.问题管理页(教师题目工作台)¶
URL 出口:
/pl/course_instance/:id/instructor/question/:question_id
.../settings- 作用:题目设置页(题目元数据、测试、共享配置)。
.../preview- 作用:题目预览页(含试答与渲染验证)。
.../statistics- 作用:题目统计页。
.../file_view/.../file_edit/.../file_download- 作用:题目文件操作页。
- 常改文件:
info.json、question.html、server.py。
.../clientFilesQuestion/.../generatedFilesQuestion- 作用:题目客户端资源与生成资源查看。
.../submission/:submission_id/file- 作用:提交文件查看(用于调试评分与学生提交排查)。
.../externalImageCapture/variant/:variant_id- 作用:外部图像采集相关入口(图像型题目/捕获流程)。
10. 讲师辅助与调试页面¶
.../instructor/grading_job- 评分任务详情查看。
.../instructor/jobSequence- 后台作业链路调试(开发/运维常用)。
.../instructor/edit_error- 在线编辑错误展示页。
.../instructor/effectiveUser- 有效用户切换与权限排查页面。
11. 管理员页面(平台级)¶
URL 出口:
/pl/administrator
/pl/administrator/admins- 作用:管理员账号管理。
- 操作:查看/增删管理员资格(按系统策略)。
/pl/administrator/settings- 作用:全站级设置。
- 操作:平台配置查看与调整(依页面能力)。
/pl/administrator/institutions- 作用:机构管理。
- 操作:新增机构、维护机构信息。
/pl/administrator/courses- 作用:课程总览(全站)。
- 操作:筛选、查看课程状态与归属。
/pl/administrator/courseRequests- 作用:课程申请审批。
- 操作:处理教师创建课程请求。
/pl/administrator/workspaces- 作用:工作区全局管理。
- 操作:监控工作区状态,排查异常。
/pl/administrator/features- 作用:特性开关管理。
- 操作:启停功能、灰度验证。
/pl/administrator/queries- 作用:查询模板列表页。
- 操作:选择平台运维查询。
/pl/administrator/query- 作用:单查询执行页。
- 操作:执行查询、查看结果(注意权限与风险)。
/pl/administrator/jobSequence- 作用:全站任务链路观测页。
/pl/administrator/batchedMigrations- 作用:批量迁移任务管理页。
- 操作:观察迁移状态、排查迁移异常。
企业版可选:
/pl/administrator/institution/:institution_id(企业)/pl/institution/:institution_id/admin(企业)
12. 老师高频操作路径(实操导航)¶
12.1 新学期开课(最常用)¶
- 进入
course_admin/instances创建新课程实例 - 进入
instance_admin/settings检查实例参数 - 进入
instance_admin/publishing设置开放区间 - 进入
instance_admin/assessments核对测试 - 进入
instance_admin/students邀请/同步学生
12.2 建题与发布¶
course_admin/questions浏览题库- 题目
course_admin/questions/create新建 question/:id/file_edit编辑三文件question/:id/preview验证显示与评分assessment/:id/questions挂题并设定分值assessment/:id/access配开放规则
12.3 期中/期末运维¶
assessment/:id/instances看考试详细资料assessment/:id/manual_grading手动批改assessment/:id/regrading统一重评分instance_admin/gradebook取得成绩
13. 页面与配置文件对应关系(便于定位)¶
- 课程设置相关页面(settings/sets/modules/topics/tags/staff)
-> 主要应答
infoCourse.json
- 实例设置与发布页面(instance_admin/settings/publishing)
-> 主要应答
infoCourseInstance.json
- 测验设置页(评估/设置/问题/访问/组)
-> 主要应答
infoAssessment.json
- 问题设置与编辑页面(question/settings/preview/file_edit)
-> 主要应答
questions/<QID>/{info.json,question.html,server.py}
本地开发时,修改JSON元信息后通常需要使用 Load from disk 使变更立即生效。
14. 备注:关于“每一个页面”的边界¶
本手册涵盖了 server.ts 中教师与管理员相关的主要页面路由(含重定向入口、文件页、详情页、管理页)。
不作为“业务页面”单独展开的内容包括:
trpc/ API 接口路由- 静态资源路由(
elements、cacheableElements等) - 纯中间件与错误处理路径
如你需要,我可以下一步继续生成一版“带截图位的培训版”(按老师日常流程组织,每页加“你会看到什么按钮、应该点哪里”),适合直接发给教师团队培训使用。
培训落地版本已补充在:docs/TEACHER_TRAINING_PLAYBOOK_ZH.md。