项目章程
1. 文档信息
- 文档名称:AUBB(Academic Unified Builder Bench)项目章程
- 版本:v1.0
- 状态:正式基线
- 更新日期:2026-04-14
- 适用对象:项目经理、产品、研发、测试、答辩成员
2. 项目背景
课程大作业要求团队围绕 AUBB(Academic Unified Builder Bench)完成一套可运行系统和一套连续、规范、可追踪的过程文档。对标系统包含头歌、希冀和高校 SPOC 平台,意味着项目不能只做课程展示页或单点提交功能,而必须形成完整教学闭环。
本项目将 AUBB 定位为“以浏览器为主入口、面向高校课程的在线教学与编程实训平台”,重点解决以下问题:
- 教师在课程组织、任务发布、批改和成绩统计之间切换工具过多。
- 学员完成编程实验时依赖本地环境,环境差异导致教学成本升高。
- 提交、自动评测、人工批改和成绩发布之间缺少统一留痕与追踪。
- 平台缺少可观测和可治理能力,难以支撑课程演示与验收。
3. 项目目标
3.1 业务目标
- 为教师提供课程、任务、评测、批改和成绩的一体化工作台。
- 为学员提供无需复杂本地环境的在线实训与反馈能力。
- 为平台管理员提供组织、账号、审计和平台级概览能力。
- 为课程答辩提供可演示、可复现、可验证的完整主链路。
3.2 工程目标
- 以 SRS 为基线,产出可直接指导编码的概要设计、详细设计、数据库设计和 API 设计。
- 采用“Web 前端 + 业务后端 + 判题工作进程 + 标准基础设施”的可落地架构,而不是过度微服务化。
- 用开源能力缩短开发周期,但所有接口、数据模型和验收口径必须由项目团队自己掌控。
4. 干系人与职责
| 干系人 | 关注点 | 项目响应方式 |
|---|---|---|
| 课程教师 / 助教 | 文档是否规范、系统是否覆盖核心需求、答辩是否清晰 | 建立标准化文档体系与可演示主链路 |
| 项目团队 | 范围是否可控、实现是否可落地、分工是否可执行 | 采用模块化单体架构和分阶段里程碑 |
| 教师用户 | 建课、发任务、批改是否顺畅 | 提供教师工作台、任务模板、成绩闭环 |
| 学员用户 | 提交是否方便、结果是否及时 | 提供在线编辑、提交记录和评测反馈 |
| 平台管理员 | 平台配置、组织治理、审计是否完整 | 提供治理后台、平台概览和审计日志 |
5. 范围与非范围
5.1 本期范围
- 平台配置、组织与用户管理
- 登录鉴权与角色授权
- 课程创建、资源组织、成员管理
- 任务创建、发布、关闭和评分规则配置
- 在线提交、文件提交、提交历史
- 自动评测、结果回传、重新评测
- 人工批改、成绩生成、成绩发布和导出
- 站内通知、公告、课程级与平台级概览
- 审计日志、异常事件留痕、基础可观测性
5.2 非范围
- 商业化计费与合同结算
- 原生移动端与离线客户端
- 全量教务系统深度集成
- 高级反作弊、查重和学术诚信分析
- 完整 AI 教学闭环
6. 推荐技术路线
为兼顾课程交付速度、实现复杂度和可演示性,建议采用以下基线方案:
| 层次 | 推荐方案 | 说明 |
|---|---|---|
| Web 前端 | Vue 3 + TypeScript + Vite + Pinia + Vue Router | 统一教师、学员、管理员三类界面 |
| 组件与图表 | Element Plus + Monaco Editor + ECharts | 支撑表单、表格、在线编码与仪表盘 |
| 业务后端 | NestJS + TypeScript | 以模块化单体承载业务 API |
| 数据层 | PostgreSQL + Redis + MinIO | 分别承载事务数据、缓存/队列、对象存储 |
| 判题层 | Judge0 CE 或等效 Docker 沙箱 + 异步 Worker | 采用开源判题能力,平台保留统一结果模型 |
| 观测层 | Prometheus + Grafana + Loki/结构化日志 | 支撑课程要求中的可观测性加分项 |
| 部署 | Docker Compose 起步,保留私有化部署能力 | 适合课程环境与演示环境 |
7. 开源采用策略
本项目允许采用开源项目,但原则如下:
- 可采用基础设施型或能力型开源组件,如 Judge0、Monaco Editor、ECharts、MinIO。
- 不直接照搬完整成品平台的业务代码、页面结构和文档。
- 平台的领域模型、接口定义、权限边界、页面信息架构和测试口径必须自主设计。
- 对开源组件的封装层、适配层和数据模型转换层必须写入设计文档。
8. 成功标准
项目达标至少满足以下条件:
- 从平台初始化到学员查看成绩的主链路可完整演示。
- 全部 MUST 级需求均在需求、设计、接口、测试文档中有对应实现依据。
- 平台支持浏览器在线提交,并通过隔离执行返回可读评测结果。
- 教师可完成任务发布、人工批改、成绩发布和成绩导出。
- 管理后台可查看平台概览、审计日志和关键异常事件。
- 文档足以指导团队完成编码,而不是依赖口头补充。
9. 风险与应对
| 风险 | 影响 | 应对策略 |
|---|---|---|
| 范围膨胀 | 主链路不稳定,过程文档失真 | 以 SRS MUST 级需求为唯一基线,增强项后置 |
| 判题模块复杂度过高 | 自动评测无法稳定交付 | 优先采用开源判题组件,并通过统一结果模型解耦 |
| 文档与实现脱节 | 代码难以落地或答辩时口径不一致 | 所有接口和数据结构变化必须先更新文档 |
| 测试准备不足 | 答辩演示时出现阻塞故障 | 提前准备固定账号、固定数据和固定脚本 |
| 大模型内容失真 | 文档与代码出现错误承诺 | 所有大模型产出必须保留人工复核记录 |
10. 文档交付清单
本项目最终需要形成以下交付件:
- 软件开发计划书
- 软件需求规格说明书
- 软件概要设计说明书
- 软件详细设计说明书
- 测试报告
- 部署文档
- 用户手册
- 大模型使用说明
- 研发设计文档、API 文档、测试与运维文档、团队协作文档