需求文档
1. 项目背景
在 CS 领域的学习工作流中,缺少一环通过应试化手段强化知识理解的工具。需要覆盖的知识范围包括但不限于:
- 计算机网络、操作系统等基础领域
- JVM、GC 等运行时机制
- 中间件(Redis、Kafka 等)
- AI / Agent 架构与工程实践
- 以及其他任何 CS 相关的大领域
2. 核心目标
构建一套完整的 题目生成 → 数据存储 → 前端训练 工作流:
- 前端页面:纯 HTML + CSS + JS 的单页应用,部署到自有服务器
- 数据存储:通过 Git 仓库存储题目 JSON,按主题组织,按题型拆分文件
- 题目生成:
- 提供推荐提示词模板,用于在非 Agent 的 LLM 对话中便捷生成
- 提供 JSON Schema 标准,确保生成数据可校验
- 沉淀为 Claude Code Skill,可在 Agent 环境中复用
- 自定义导入:支持前端直接粘贴/上传 JSON,临时导入使用
3. 功能需求
3.1 前端页面
| 功能 |
说明 |
| 主题浏览 |
侧边栏展示所有主题,含名称、描述、题目统计 |
| 做题交互 |
支持 7 种题型的渲染与交互 |
| 答案判定 |
检查答案对错,正确/错误视觉反馈 |
| 解析展示 |
显示正确答案和解析说明 |
| 全部显示 |
一键显示所有题目的答案 |
| 提交全部 |
一键判定所有题目的对错 |
| 重置 |
清除所有作答状态 |
| 进度统计 |
显示已答/正确/错误/待答数量和进度条 |
| 自定义导入 |
弹窗粘贴 JSON 或上传文件,临时加入当前会话 |
3.2 题型支持
| 题型 |
代号 |
交互方式 |
| 单选题 |
sc |
4 选 1,点击选项 |
| 多选题 |
mc |
多选多,点击选项 |
| 判断题 |
tf |
对/错 按钮 |
| 填空题 |
fb |
输入框,支持答案匹配规则 |
| 简答题 |
sa |
文本域,关键词匹配 |
| 代码阅读 |
cr |
代码块 + 嵌套子题 |
| 场景分析 |
sn |
场景描述 + 嵌套子题 |
3.3 数据管理
| 功能 |
说明 |
| Git 存储 |
题目以 JSON 文件形式存储在 Git 仓库 |
| 按主题组织 |
每个主题一个独立目录 |
| 按题型拆分 |
同一主题下,每种题型一个 JSON 文件 |
| 多 Agent 并行 |
不同题型文件独立,支持多 Agent 并行生成无写冲突 |
| Meta 稳定 |
主题元信息(meta.json)与题目内容分离,一次生成后稳定 |
3.4 生成与校验
| 功能 |
说明 |
| 提示词模板 |
提供标准化的 LLM 提示词,用于非 Agent 环境生成题目 |
| JSON Schema |
定义完整的题目 JSON Schema,用于格式校验 |
| Skill 复用 |
沉淀为 Claude Code Skill,支持 generate / validate / batch-generate |
4. 非功能需求
| 维度 |
要求 |
| 技术栈 |
纯前端(HTML + CSS + JS),无后端依赖 |
| 部署 |
可部署到任意静态文件服务器 |
| 兼容性 |
现代浏览器,响应式布局(桌面 + 移动端) |
| 数据安全 |
.ref/ 参考数据不提交 Git |
| 可扩展 |
支持新增主题、新增题型,无需修改前端核心逻辑 |
5. 约束
- 不使用任何前端框架(React/Vue 等),保持单文件 SPA
- 不依赖后端服务,数据通过
fetch 从本地 JSON 文件加载
- 题目 ID 格式统一为
{type_short}-{sequence}(如 fb-001、sc-003)