Files
wonder 0fbdefb626
Deploy Examination / deploy (push) Successful in 36s
docs: 更新 README,删除 docs/ 目录
- README 重写:补充实际目录结构、当前题目清单、部署方式、设计原则
- 删除 docs/architecture.md 和 docs/requirements.md(内容已整合到 README)
2026-09-02 21:09:10 +08:00

111 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎯 CS 知识应试强化系统
零依赖、纯前端的计算机科学知识应试训练平台。题目以 JSON 文件存储于 Git 仓库,通过单文件 SPA 提供交互式刷题体验。
## 快速开始
```bash
cd /home/wonder/code/examination
python3 -m http.server 8080
# 浏览器打开 http://localhost:8080
```
无需安装任何依赖,无需构建步骤。
## 项目结构
```
├── index.html # 单文件 SPA(HTML + CSS + JS,约 1100 行)
├── topics/ # 题目数据
│ ├── index.json # 主题索引(前端启动时加载)
│ └── qunar-ai-fullstack/ # 题目分组:去哪儿 AI 全栈面试
│ ├── gc-jvm/ # GC / JVM / 三色标记
│ ├── ai-structured-output/ # AI 结构化输出 / Agent 架构
│ ├── ai-memory/ # Agent 记忆管理 / 冲突消解
│ ├── ai-hallucination/ # AI 幻觉 / 评估体系 / 标准
│ └── ai-tooling/ # AI 工具选型 / Harness / 综合
├── schema/ # 数据规范
│ ├── question.schema.json # JSON Schema(题目校验)
│ ├── prompt-template.md # LLM 生成提示词模板
│ └── templates/ # 各题型示例模板(7 种)
├── Dockerfile # nginx:alpine 静态站点容器
└── .gitea/workflows/deploy.yml # Gitea Actions 自动部署流水线
```
每个子主题目录包含:
- **meta.json** — 主题元信息与题目文件列表
- **fill_blank.json** — 填空题
- **single_choice.json** — 单选题
## 支持的题型
| 题型 | 代码 | 交互方式 |
|------|------|----------|
| 单选题 | `sc` | 点击选项,即时判定 |
| 多选题 | `mc` | 勾选多个选项 |
| 判断题 | `tf` | 对 / 错 二选一 |
| 填空题 | `fb` | 内联文本输入,支持模糊匹配 |
| 简答题 | `sa` | 开放式作答,关键词自检 |
| 代码阅读 | `cr` | 代码块 + 嵌套子问题 |
| 场景分析 | `sn` | 场景描述 + 嵌套子问题 |
## 当前题目
| 子主题 | 题目数 | 覆盖内容 |
|--------|--------|----------|
| GC / JVM / 三色标记 | 20 | JVM 堆模型、GC 算法、三色标记、CMS/G1/ZGC、GC Roots |
| AI 结构化输出 / Agent 架构 | 20 | 结构化输出方法、ReAct/Reflexion 模式、约束解码 |
| Agent 记忆管理 / 冲突消解 | 20 | 记忆分层架构、淘汰策略、冲突检测与消解 |
| AI 幻觉 / 评估体系 / 标准 | 20 | 幻觉分类、Critic 架构、Context Engineering、RAG |
| AI 工具选型 / Harness / 综合 | 20 | 工具选型、Harness 架构、可靠性工程、效率分析 |
> 共 5 个子主题,100 道题目(每主题 10 填空 + 10 单选)。
## 添加新题目
1. 在 `topics/{group-slug}/` 下创建 `{topic-slug}/` 目录
2. 创建 `meta.json`(参考已有主题)
3. 按题型创建 JSON 文件(参考 `schema/templates/`)
4. 更新 `topics/index.json`
5. 刷新页面即可
## 使用 LLM 生成题目
每个题目卡片右上角有 **📋 复制提示词** 按钮,可将题目格式化为提示词复制到剪贴板,粘贴到任意 AI 工具获取解析。
批量生成参考 [schema/prompt-template.md](schema/prompt-template.md) 中的提示词模板,支持一次生成多个题型。
## 导入题目
在页面侧边栏点击 **📥 导入题目**,可粘贴 JSON 或上传 `.json` 文件临时导入(仅当前会话有效)。
## 部署
### Docker
```bash
docker build -t examination-site .
docker run -d -p 8080:80 examination-site
```
### Gitea Actions(自动)
推送到 `main` 分支自动触发部署流水线,构建镜像并启动容器。
### 本地开发
任意静态文件服务器即可,无需 Node.js 或构建工具:
```bash
python3 -m http.server 8080
# 或
npx serve .
```
## 设计原则
- **零依赖** — 纯 HTML + CSS + JS,无框架、无构建工具、无 npm
- **数据即代码** — 题目以 JSON 文件存储于 Git,版本可追溯
- **单文件应用** — 整个前端在一个 `index.html` 中,便于部署和分发
- **Meta/题目分离** — `meta.json` 稳定不变,题目文件按题型拆分,支持并行生成无冲突