团队分工
1. 分工原则
- 每人至少负责一个核心需求,并能说明对应需求、设计、接口、实现和测试证据。
- 每人至少负责四个模块或子模块;每个成员的主要功能清单不少于五项。
- 每个产品模块必须有明确主责人、协作人和验收复核人,避免“有人参与但无人兜底”。
- 文档负责人必须同时承担对应模块的实现、联调或测试责任,避免只写不做。
- 课程主链路、权限边界、数据持久化、异常反馈、文档和答辩材料都纳入分工覆盖范围。
2. 覆盖检查口径
本分工按以下材料逐项检查,不只按页面或代码目录拆分:
| 检查维度 | 必须覆盖的内容 |
|---|---|
| 产品模块 | 平台配置与组织、身份认证与授权、课程与成员、任务与评分规则、提交与在线作业、自动评测与隔离执行、环境型实验、人工批改与成绩、通知与公告、运营概览与审计 |
| SRS 功能需求 | FR-CFG-*、FR-IAM-*、FR-CRS-*、FR-TSK-*、FR-SUB-*、FR-JDG-*、FR-REV-*、FR-NTF-*、FR-OPS-* |
| Web 终端实验 | REPORT 实验、TERMINAL 实验、环境模板、学生实验会话、连接 token、WebSocket 终端、fake runtime、Kubernetes runtime、会话回收 |
| 稳定 API 域 | 认证接口、平台治理接口、课程接口、作业与题库接口、提交/工作区/评测接口、批改与成绩接口、实验接口、通知接口、审计接口 |
| 非功能需求 | 易用性、性能、可靠性、安全、隐私、兼容性、可观测性、部署与演示稳定性 |
| 验收证据 | 单元/集成测试、真实前后端联调、Playwright MCP 真实浏览器证据、文档构建、部署彩排、三次全链路彩排 |
检查结论:当前 6 人分工覆盖全部 P0 主链路和 P1 已落地增强点;Web 终端实验 单独由成员 F 主责,不再混入“在线 IDE”或普通实验报告模块。
3. 成员信息与总览
真实姓名、学号和 GitHub 用户名在提交课程材料前补齐;补齐前使用成员代号作为唯一责任标识。
| 成员 | 姓名 / 学号 / GitHub | 核心主责 | 协作与复核责任 |
|---|---|---|---|
| 成员 A | 待补 | 平台治理、IAM、审计、安全基线 | 复核全系统权限边界和审计留痕 |
| 成员 B | 待补 | 课程、教学班、成员、课程内容 | 复核课程作用域、班级功能开关和教学数据边界 |
| 成员 C | 待补 | 作业、题库、任务规则、教师端作业流 | 复核作业配置与提交/评测/成绩的上游契约 |
| 成员 D | 待补 | 提交、在线 IDE 工作区、自动评测、go-judge | 复核代码运行、正式提交、评测报告和重评链路 |
| 成员 E | 待补 | 人工批改、成绩册、通知、运营统计 | 复核成绩可见性、发布通知和教学闭环 |
| 成员 F | 待补 | 实验与实验在线终端、部署联调、验收证据 | 复核实验域、Web 终端、运行环境和演示可用性 |
4. 每人详细分工检查
4.1 成员 A:平台治理、IAM 与审计
| 项目 | 分工内容 |
|---|---|
| 核心需求 | 平台初始化、组织治理、用户治理、认证会话、授权控制、审计留痕 |
| 负责模块 / 子模块 | 平台配置、组织结构、用户与教务画像、作用域身份、账号生命周期、认证会话、RBAC + ABAC、审计日志 |
| 主要功能 | 平台名称 / Logo / 主题 / 模块开关配置;学校 / 学院 / 课程 / 开课 / 班级治理层级维护;用户创建、批量导入、分页查询和详情查看;多作用域身份分配;账号启用、停用、锁定、解锁、会话强制失效;登录、刷新 token、退出、撤销 token;受保护接口鉴权与越权拦截;登录、配置、导入、权限变更审计 |
| 覆盖需求 | FR-CFG-01 ~ FR-CFG-07、FR-IAM-01 ~ FR-IAM-06、FR-OPS-03、NFR-SEC-*、NFR-OBS-* |
| API 与数据 | auth-api.md、platform-admin-api.md、platform_configs、org_units、users、auth_sessions、user_scope_roles、audit_logs |
| 测试与验收 | 管理员配置平台;组织树非法层级拒绝;用户导入逐行错误;越权管理员返回 403;退出和强制失效后旧会话不可用;审计日志可检索 |
| 文档责任 | 维护平台治理、IAM、审计、安全和错误码相关文档;答辩说明权限模型和安全边界 |
4.2 成员 B:课程、教学班与课程内容
| 项目 | 分工内容 |
|---|---|
| 核心需求 | 从课程模板到开课实例、教学班、成员、公告、讨论、资源的课程运行基础 |
| 负责模块 / 子模块 | 学期、课程模板、开课实例、跨学院管理、教学班、课程成员、班级功能开关、课程公告、课程讨论、课程资源、我的课程 |
| 主要功能 | 学期与课程模板创建 / 查询;开课实例创建、跨学院共同管理和详情查看;教学班创建和 CLASS 组织节点同步;教师 / 整课助教批量添加课程成员;CSV 导入既有用户为课程成员;同一用户跨班多身份支持;公告、讨论、资源按开课或教学班定向投放;学生按班级查看可见公告 / 讨论 / 资源;班级功能开关拦截对应入口 |
| 覆盖需求 | FR-CRS-01 ~ FR-CRS-08、课程侧 FR-NTF-03、NFR-USE-02、NFR-SEC-01 |
| API 与数据 | courses-api.md、academic_terms、course_catalogs、course_offerings、teaching_classes、course_members、course_announcements、course_discussions、course_resources |
| 测试与验收 | 教师可建班和导入成员;学生不能自主选课;整课助教可管理成员;班级助教只能查看授权班级;关闭公告 / 讨论 / 资源功能后学生入口被拒绝;Markdown 内容安全渲染 |
| 文档责任 | 维护课程接口、课程业务规则、用户手册中课程与资源章节;答辩说明课程作用域如何支撑下游作业、实验和成绩 |
4.3 成员 C:作业、题库与任务规则
| 项目 | 分工内容 |
|---|---|
| 核心需求 | 教师创建任务、维护题库与试卷结构、配置提交和评分规则,并把作业发布给学生 |
| 负责模块 / 子模块 | 作业生命周期、作业列表与详情、题库题目、试卷分节、题型配置、编程题配置、提交规则、评分方式、发布 / 关闭控制、作业 Markdown 阅读区 |
| 主要功能 | 教师创建作业草稿;维护标题、Markdown 说明、附件、样例和模板代码;配置开放时间、截止时间、最大提交次数和允许提交形式;配置自动评测 / 人工批改 / 混合评分;维护单选、多选、简答、文件上传、编程题;配置编程题语言、入口文件、模板文件和隐藏测试点;发布、关闭作业并保留关键变更记录;学生和教师侧作业列表只返回摘要,详情接口返回完整题面 |
| 覆盖需求 | FR-TSK-01 ~ FR-TSK-07、作业入口相关 FR-SUB-01、FR-SUB-06、NFR-USE-01、NFR-CMP-* |
| API 与数据 | assignments-api.md、assignments、作业 paper 快照、题库题目、assignment question 快照、编程题 judge 配置 |
| 测试与验收 | 作业草稿可保存;发布后学生可见;未开放或已关闭作业禁止提交;题型配置校验完整;编程题配置能被提交和评测模块消费;列表不泄露完整答案裁剪和隐藏配置 |
| 文档责任 | 维护作业与题库接口、任务规则说明、教师端用户手册作业章节;答辩说明作业配置如何驱动提交、评测和成绩 |
4.4 成员 D:提交、在线 IDE 工作区与自动评测
| 项目 | 分工内容 |
|---|---|
| 核心需求 | 学生在浏览器内编辑 / 运行 / 保存编程题,从作业详情页正式提交,系统异步评测并返回结构化结果 |
| 负责模块 / 子模块 | 在线 IDE 工作区、目录树文件操作、工作区修订、附件上传、正式提交、提交历史、样例运行、正式评测、RabbitMQ 队列、go-judge 适配、评测报告、重评、评测环境模板 |
| 主要功能 | 初始化编程题模板工作区;保存入口文件、目录树源码、目录列表、附件和最近 stdin;新建 / 更新 / 重命名 / 删除文件或目录;查看、恢复历史修订和重置模板;从作业详情页创建整份正式提交;提交时间窗、格式、大小、次数校验;提交生成唯一编号并写审计;样例运行返回 stdout / stderr / 退出状态 / 资源摘要;正式提交自动创建 judge job 并入队;go-judge 编译 / 运行 / 结果归一化;对象化保存详细评测报告和源码快照;教师重排队和下载报告 |
| 覆盖需求 | FR-SUB-01 ~ FR-SUB-09、FR-JDG-01 ~ FR-JDG-08、NFR-PERF-02、NFR-PERF-03、NFR-PERF-06、NFR-PERF-07、NFR-REL-01、NFR-REL-03、NFR-SEC-02 |
| API 与数据 | 提交 / 工作区 / 评测稳定接口、submissions、submission_answers、submission_artifacts、programming_workspaces、programming_workspace_revisions、programming_sample_runs、judge_jobs、judge_environment_profiles |
| 测试与验收 | IDE 内保存不生成正式提交;正式提交只能从作业详情页触发;多标签页旧修订保存返回冲突;超时或次数超限提交被拒绝;样例运行不影响成绩;正式评测生成报告;学生只能查看自己的提交和评测;教师可重评授权课程提交 |
| 文档责任 | 维护提交、在线 IDE、评测、判题与沙箱文档;答辩说明“在线 IDE 不提供终端”,代码运行和正式评测均通过隔离执行链路完成 |
4.5 成员 E:人工批改、成绩册、通知与运营统计
| 项目 | 分工内容 |
|---|---|
| 核心需求 | 教师 / 助教完成批改和成绩发布,学生按发布状态查看反馈,关键事件通过通知触达 |
| 负责模块 / 子模块 | 人工批改、批量调分、CSV 导入导出、assignment 成绩发布 / 重新发布、教师成绩册、教学班成绩册、单学生成绩册、学生成绩册、统计报告、通知中心、未读数、SSE / 轮询、课程级运营概览 |
| 主要功能 | 教师和助教对简答 / 文件 / 编程题写入分数与反馈;校验分数范围和助教作用域;发布成绩前扫描待批改 / 待评测项;发布和重新发布成绩并写审计;学生发布前看不到人工分和反馈;教师按开课、班级、单学生查看成绩册;成绩册导出 CSV;统计报告返回通过率、五档分布和班级对比;通知列表、未读数、标记已读和 SSE 实时通道;提交受理、评测完成、成绩发布、实验发布、实验报告评阅事件通知 |
| 覆盖需求 | FR-REV-01 ~ FR-REV-09、FR-NTF-01 ~ FR-NTF-04、FR-OPS-01、FR-OPS-02、FR-OPS-04、NFR-PRV-02、NFR-OBS-* |
| API 与数据 | grading-api.md、notifications-api.md、成绩册接口、通知接口、submission_answers、assignments.grade_published_at、course_members、notifications、audit_logs |
| 测试与验收 | 未发布人工分不对学生泄露;待批改或待评测时拒绝发布;重新发布保留首发时间并通知受影响学生;班级助教不能越权到整课导出;通知 SSE 断连后可轮询补偿;成绩导出与页面可见性一致 |
| 文档责任 | 维护批改、成绩、通知、统计报告和隐私可见性文档;答辩说明成绩发布、通知触达和教学反馈闭环 |
4.6 成员 F:实验、实验在线终端、部署联调与验收证据
| 项目 | 分工内容 |
|---|---|
| 核心需求 | 支持报告型实验和环境型 Web 终端实验,保证本地 fake runtime 与生产 Kubernetes runtime 边界清晰,并交付可演示、可验收的运行环境 |
| 负责模块 / 子模块 | 实验管理、实验报告、实验附件、实验评阅、Web 终端实验、环境模板、学生实验会话、连接 token、WebSocket 终端、fake runtime、Kubernetes runtime、会话回收、部署脚本、验收证据 |
| 主要功能 | 教师创建、更新、发布、关闭 REPORT 和 TERMINAL 实验;学生查看实验、上传附件、保存草稿、正式提交实验报告;教师查看报告、填写批注 / 评语并发布评阅;TERMINAL 实验发布前校验启用环境模板;学生启动个人实验环境、查询当前会话、停止会话、重置环境;签发短期连接 token,数据库只保存 hash;打开 WebSocket 终端并完成输入 / 输出交互;教师查看学生会话状态列表但不能接管终端;fake runtime 支持本地联调和 E2E;Kubernetes runtime 创建 Pod、查询状态、删除 Pod 和 exec 连接;定时回收过期或空闲 session;部署环境变量、健康检查、演示数据和三次彩排证据 |
| 覆盖需求 | 环境型实验产品需求、实验稳定 API、FR-TSK-01 的实验任务入口、实验通知事件、NFR-USE-01、NFR-USE-02、NFR-REL-*、NFR-SEC-01、NFR-SEC-03、NFR-SEC-06、NFR-CMP-*、NFR-OBS-* |
| API 与数据 | 实验稳定接口、labs、lab_reports、lab_report_attachments、lab_environment_profiles、lab_sessions、lab_connection_tokens、运行时配置 aubb.lab-runtime.*、Kubernetes Pod 安全约束 |
| 测试与验收 | 报告实验不要求环境模板;终端实验发布前必须绑定启用模板;学生只能操作自己的会话;已有活动会话启动接口幂等返回;重置会停止旧会话并创建新会话;连接 token 默认 60 秒内有效且只返回一次;WebSocket 不接受长效 JWT 直接作为终端凭证;终端区域高度稳定、输出不撑乱页面;fake runtime 和 Kubernetes runtime 验收证据分开记录;部署彩排和 3 次全链路演示可复现 |
| 文档责任 | 维护 Web 终端实验、实验接口、部署指南、测试报告、验收清单和答辩演示脚本;答辩说明在线 IDE 与实验在线终端的边界差异 |
5. 全量覆盖矩阵
| 覆盖项 | 主责 | 协作 / 复核 | 覆盖状态 |
|---|---|---|---|
平台配置与组织 FR-CFG-* | 成员 A | 成员 B、成员 F | 已分配:平台配置、组织层级、用户导入、身份分配、配置留痕、资源策略 |
身份认证与授权 FR-IAM-* | 成员 A | 成员 B、成员 D、成员 E、成员 F | 已分配:登录、刷新、退出、会话撤销、RBAC + ABAC、越权拦截、账号生命周期 |
课程与成员 FR-CRS-* | 成员 B | 成员 A、成员 C、成员 F | 已分配:学期、课程模板、开课、教学班、成员、公告、讨论、资源、我的课程 |
任务与评分规则 FR-TSK-* | 成员 C | 成员 D、成员 E、成员 F | 已分配:作业草稿、题库、试卷、题型、提交规则、评分方式、发布关闭、实验任务入口 |
提交与在线作业 FR-SUB-* | 成员 D | 成员 C、成员 E | 已分配:提交入口、在线 IDE、保存、运行、正式提交、提交历史、附件、规则校验 |
自动评测与隔离执行 FR-JDG-* | 成员 D | 成员 C、成员 E、成员 F | 已分配:样例运行、正式评测、队列、go-judge、结果归一化、报告、重评、环境模板 |
| 实验与 Web 终端 | 成员 F | 成员 B、成员 C、成员 E | 已分配:报告实验、终端实验、环境模板、会话、短期 token、WebSocket 终端、fake / Kubernetes runtime |
人工批改与成绩 FR-REV-* | 成员 E | 成员 C、成员 D、成员 F | 已分配:人工评分、批量调整、成绩发布、成绩册、导出、统计、学生反馈 |
通知与公告 FR-NTF-* | 成员 E | 成员 B、成员 F | 已分配:通知列表、未读数、已读、SSE / 轮询、公告触达、关键业务事件 |
运营概览与审计 FR-OPS-* | 成员 A、成员 E | 成员 F | 已分配:审计日志、课程概览、平台概览、异常事件、运行指标 |
| 前端体验与角色入口 | 成员 C、成员 D、成员 E、成员 F | 成员 A、成员 B | 已分配:管理员、教师、助教、学员入口;状态反馈;空状态;错误提示;Markdown 安全阅读区 |
| 后端 API 与数据库一致性 | 对应模块主责人 | 成员 A 复核权限;成员 F 复核部署 | 已分配:每个稳定 API 域均有主责人,数据库对象按模块归属维护 |
| 非功能与安全 | 成员 A、成员 D、成员 F | 全员 | 已分配:认证授权、隔离执行、凭证安全、性能、可靠性、兼容性、可观测性 |
| 测试与验收证据 | 成员 F | 全员提供模块证据 | 已分配:模块自动化测试、真实浏览器回归、文档构建、部署彩排、演示彩排 |
| 文档与答辩材料 | 成员 F 统筹 | 全员维护对应模块章节 | 已分配:SRS、设计、API、数据库、用户手册、测试报告、演示脚本按模块归属补齐 |
6. 跨成员边界检查
| 边界 | 归属结论 | 检查要点 |
|---|---|---|
| 在线 IDE 与实验在线终端 | 在线 IDE 归成员 D;实验在线终端归成员 F | 在线 IDE 只提供编辑、保存、样例运行和输出面板,不提供 shell 终端;Web 终端实验通过 lab_sessions 和短期 token 连接独立环境 |
| 作业配置与正式提交 | 作业配置归成员 C;正式提交和工作区归成员 D | IDE 内“提交”只表示保存当前编程题并返回作业界面;整份作业正式提交必须由作业详情页发起 |
| 自动评测与人工批改 | 自动评测归成员 D;人工批改和成绩发布归成员 E | judge job 只产出自动评分和报告;人工分、发布可见性、成绩册和导出由 grading 模块负责 |
| 课程公告与通知中心 | 课程公告归成员 B;通知中心归成员 E | 公告是课程内容;通知是事件触达和未读状态,两者不能混用数据模型 |
| 实验报告与 Web 终端会话 | 报告型实验和终端实验均由成员 F 统筹 | REPORT 使用实验报告与附件;TERMINAL 使用环境模板、会话和连接票据,不把终端状态塞进报告字段 |
| 平台审计与业务统计 | 审计归成员 A;成绩 / 课程统计归成员 E | 审计记录关键操作和排障上下文;统计面向教学运营和成绩分析 |
| 部署运行与模块实现 | 成员 F 统筹部署;模块主责人负责各自配置项 | 部署文档不得替代模块验收;各模块主责人必须提供可运行配置、测试证据和异常说明 |
7. 需要补充的实际信息
- 每位成员真实姓名与学号
- GitHub 用户名
- 每位成员对应的实际提交记录或 PR
- 每位成员负责章节的文档复核记录
- 每位成员答辩展示章节、演示账号和演示数据
- 每位成员负责模块的自动化测试、真实浏览器测试或部署彩排证据
- 如实际人员分工发生变化,必须同步更新本文件和验收清单,不能只在答辩材料中口头调整