教学闭环实施规划¶
状态:已批准需求下的技术设计,实施中;不得将本规划视为完成报告。
Summary¶
实现依据为 ../teaching-spec-001.md。按课程与任务阅读、报告提交、批改反馈三个增量交付。业务和授权留在 core;web 仅呈现服务端状态与可执行操作。
Technical Context¶
沿用 pom/package 锁定的 Spring Security、JPA、Flyway、JUnit、MockMvc、Next/Refine/Ant Design、Playwright,无框架升级;附件类型检测使用已接受 ADR-007 的 Tika Core 3.2.3。数据库沿用 PostgreSQL;附件在明确容量上限内使用受保护 bytea 存储,跟随现有数据库卷持久化,业务内容不进镜像。时间策略注入 Clock,测试显式推进时间。
Constitution Check¶
| 原则 | Gate 问题 | 设计前 | 设计后 | Evidence |
|---|---|---|---|---|
| 分层 | 业务状态是否只由 core 判断 | 通过 | 通过 | 本文 |
| 框架优先 | 是否复用安全/事务/乐观锁/表单与测试工具 | 通过 | 通过 | research.md |
| 范围 | 教学扩容是否获得用户批准 | 通过 | 通过 | ../teaching-spec-001.md、宪法0.3.0 |
| 授权测试 | 是否测试归属与状态组合 | 通过 | 通过 | tests-evidence.json |
| 附件 | 类型识别和存储是否完成评审 | 偏离 | 通过:ADR-007 已采用并测试 | ../../adr/007-teaching-attachments.md |
Project Structure¶
core/src/main/java/team/lab_edu/teaching/:课程、成员、任务、报告、评分领域与控制器。 core/src/test/java/team/lab_edu/teaching/:政策单元测试;core/src/test/java/team/lab_edu/:真实数据库 API 测试。 web/src/app/(protected)/courses/ 与 assignments/:课程和任务页面;web/tests/:教学浏览器验收。 infra/:附件持久卷与隔离验收栈;docs/specs/teaching-001/:唯一教学技术设计与契约。
Complexity Tracking¶
附件初期尚未放行;现经 ADR-007 采用 Tika Core 与受限 bytea 存储,已接入验证。原比较:原样公开目录、只信客户端 MIME 两种简单方案均无法满足受保护下载和类型验证。后续选择必须附 ADR;不以缺少附件设计为由做无验证上传。
Phase 0/1¶
research.md 记录技术选择;data-model.md 记录状态约束;contracts.md 记录交互与授权;quickstart.md 记录验证入口;tasks.md 持续登记真实进度。