EudPrison 项目开发过程记录
AI 赋能高中阶段教与学 — TRAE × 脉脉「AI 无限职场」SOLO 挑战赛
项目背景
EudPrison 是一个专注于研究人工智能如何赋能高中阶段教与学的教育科技项目。本文档记录了项目的完整开发过程,从需求分析到前后端工程脚手架搭建,全程采用 Trae SOLO 多任务 和 AI Vibe Coding 开发方式,在 4小时内 完成了从概念到可运行系统的全流程开发。
开发方式亮点
- Trae SOLO 多任务:通过 Trae 平台的多任务并行处理能力,实现了需求分析、架构设计、前端开发、后端开发等多个环节的高效协同
- AI Vibe Coding:充分利用 AI 辅助编程能力,从用户画像生成、技术架构设计到代码实现,全程融入 AI 辅助,大幅提升开发效率
- 4小时快速交付:从项目启动到完整工程脚手架搭建完成,仅用4小时,展示了 AI 辅助开发的强大潜力
开发步骤总览
项目提案
→
用户画像
→
用户故事
→
看板卡片
→
架构设计
→
前端构建
→
后端构建
→
API 契约
→
契约服务器
→
用户故事开发
📝 Prompt 源文件: notebook.ipynb
第一阶段:需求分析
1. 用户画像 (Persona)
作为 EudPrison(专注于研究人工智能如何赋能高中阶段的教与学)的产品经理,针对 "AI + 教育" 场景进行 Persona(用户画像)分析,需要从 行为动机、技术接受度、学习痛点 三个维度切入。
## 任务:
请为我生成 3个 针对 高中阶段(15-18岁) 的典型AI教育用户Persona(用户画像)。这3个画像应覆盖高中教育中的不同角色和需求场景。
## 输出要求:
每个Persona必须包含以下7个核心维度,请用清晰的中文呈现:
1. 姓名与标签:给人物一个名字和一句标签(例如:"挣扎的理科生"或"寻求突破的语文老师")。
2. 人口学特征:年级、学科倾向、所在地区类型(一线/三四线/县城)、家庭背景大致描述。
3. 当前痛点:在传统高中学习/教学模式中最棘手的2-3个困难。
4. 目标与动机:希望通过AI教育工具实现什么核心目标?(升学、提分、减轻负担、个性化教学等)
5. AI使用行为:具体会如何使用AI(例如:AI答疑、作文批改、错题分析、备课助手等)。
6. 典型语录:用一句口语化的话概括其核心诉求。
7. 对AI产品的核心期望:从该角色角度出发,对"高中AI教育产品"提出的1-2个最关键要求。
## 具体人物要求:
请生成以下3个具有明显差异的Persona:
- Persona A:一名成绩中游、存在偏科现象的高二学生(建议为选考物理/历史的学生)。
- Persona B:一名有5-10年教龄、班级学生水平差异大的高三班主任兼数学/语文教师。
- Persona C:一名对技术既期待又担忧的高一学生家长(建议为孩子处于青春期、面临选科压力的家庭)。
## 附加要求:
在生成完3个Persona之后,请用一段话总结:基于这三个典型用户画像,设计高中AI教育产品时最应该遵守的3条核心原则是什么?
## 输出
Markdown格式,保存为persona.md
针对高中阶段(15-18岁)的典型用户进行了深入分析,生成了 3 个具有明显差异的用户画像:
| 角色 | 描述 |
|---|---|
| Persona A | 成绩中游、存在偏科现象的高二学生(选考物理/历史) |
| Persona B | 有5-10年教龄、班级学生水平差异大的高三班主任兼数学/语文教师 |
| Persona C | 对技术既期待又担忧的高一学生家长(孩子处于青春期、面临选科压力) |
每个画像从 行为动机、技术接受度、学习痛点 三个维度进行了深入分析。
2. 用户故事 (User Story)
你作为 **EduPrison**(专注于研究人工智能如何赋能高中阶段教与学)的产品经理,请严格基于所给的 `persona.md` 文件内容进行分析,并产出一份新的、结构化的用户故事。
**输出格式要求(严格遵循以下 Markdown 结构):**
---
## 1. 用户故事(User Story)
> 作为一名 **[高中教师 / 高中生 / 备课组长 / 教务管理者]**,
> 我想要 **[执行某个操作或达成某个目标]**,
> 以便 **[获得可感知的收益或解决具体问题]**。
---
## 2. 验收标准(Acceptance Criteria)
- [ ] 标准1:(具体、可验证的条件)
- [ ] 标准2:(边界情况或异常处理)
- [ ] 标准3:(与效率、体验相关的质量要求)
---
## 3. UX 交互流程(动漫风格)
> **整体视觉与交互风格要求:** 采用**二次元动漫风格**,角色形象为可爱的 Q 版教师/学生,界面配色明亮温暖(如淡粉、浅蓝、暖黄),按钮带有弹跳动效,加载状态表现为"努力加载中的小动物",反馈提示使用表情符号或动漫气泡对话框。
### 正常流程:
- **步骤 1**:用户在 **[某场景]** 点击 **[某入口/按钮]**
→ 系统播放轻快的"叮"音效(可选),出现一个动漫角色微笑点头动画,同时弹出半透明气泡提示:"交给我吧 ✨"
- **步骤 2**:用户输入/选择 **[某信息]**
→ 系统显示一只正在奋笔疾书或敲键盘的小动物(如狐狸/猫老师),头顶显示进度条或"思考中…"文字,2秒内给出结果
- **步骤 3**:系统返回 **[某结果内容]**
→ 结果以动漫手绘卡片的形式呈现,右上角有闪烁的星星特效。用户可以点击卡片上的角色头像获得额外语音/文字鼓励(如:"今天也很努力呢~继续加油哦!")
### 异常/边界流程:
- 若网络延迟或数据不足:
→ 动漫角色露出抱歉表情(流汗黄豆/垂耳朵),气泡提示:"唔…信号不太好,再试一次好吗 QvQ",同时提供"重试"按钮(设计为猫爪形状)
---
## 4. AI 特定需求
- **核心 AI 能力**:(例如:知识追踪 / 自然语言理解 / 个性化习题推荐 / 学情预测)
- **数据依赖**:(需要用到哪些用户历史数据、作答记录、教学行为)
- **性能要求**:(例如:反馈延迟 ≤ 2 秒,推荐准确率 ≥ 85%)
---
## 5. 成功指标
- **定量指标**:(例如:任务完成率提升 20%,教师每日分析时间减少 30 分钟)
- **定性指标**:(例如:用户满意度评分 ≥ 4.5/5,用户主动提及"有趣""愿意继续使用"比例 ≥ 70%)
---
## 6. 输出
Markdown Table格式,保存为userstory.md
基于 Persona 文件,生成了结构化的用户故事,包含:
- 用户故事格式:As a… I want to… so that…
- 验收标准:具体、可验证的条件
- UX 交互流程:采用二次元动漫风格设计
- AI 特定需求:知识追踪、自然语言理解、个性化推荐等
- 成功指标:定量和定性指标
3. 任务看板 (Kanban)
## Role
你是一名资深产品经理(PM),服务于 **EudPrison** —— 一家专注于研究**人工智能如何赋能高中阶段教与学**的教育科技公司。
## Task
基于提供的 `persona.md`(用户画像文件)和 `usertory.md`(用户故事文件),分析并生成一套**可直接用于开发团队排期与实现**的看板卡片(Development Board Cards)。
## Input Files
- `persona.md`:包含至少 2–3 个典型用户角色(如高中学生、任课教师、学校管理者等)
- `usertory.md`:包含多个用户故事,格式通常为 "As a…, I want to…, so that…"
## Output Format
请严格按照以下 **Markdown 表格格式**输出:
| Card ID | 功能模块 | 关联用户故事 | 任务描述 | 验收标准 | 优先级 | 工作量预估 |
|---------|----------|--------------|----------|----------|--------|--------------|
| EDU-001 | [模块名] | [故事编号或简述] | [具体开发任务描述] | [可测试/可演示的条件] | P0/P1/P2 | S/M/L/XL |
## Requirements
1. **一一对应**:每个看板卡片必须明确对应至少一个用户故事。
2. **粒度适中**:每个卡片应是一个开发任务(1–3 人天),避免过细或过粗。
3. **验收标准可量化**:不接受"功能正常"这类模糊描述,需给出可验证的条件。
4. **优先级定义**:
- P0:阻塞性 / 核心闭环不可缺失
- P1:重要但非阻塞
- P2:优化或增强型功能
5. **工作量预估**:
- S(1天以内)
- M(2–3天)
- L(1周)
- XL(>1周,需拆分)
6. **覆盖高中教与学的AI场景**:如智能批改、个性化学习路径、教学数据分析、答疑机器人、课堂互动增强等。
7. **输出只包含表格**,不需要额外解释或总结。
## Example(示例)
| Card ID | 功能模块 | 关联用户故事 | 任务描述 | 验收标准 | 优先级 | 工作量预估 |
|---------|----------|--------------|----------|----------|--------|--------------|
| EDU-001 | AI智能批改 | US-03(英语作文批改) | 实现基于LLM的英语作文语法纠错与评分接口 | 1. 支持上传txt/docx 2. 返回错误类型及位置 3. 给出百分制评分 | P0 | M |
## 6. 输出
Markdown Table格式,保存为kanban.md
将用户故事转化为可直接用于开发团队排期与实现的看板卡片:
| Card ID | 功能模块 | 优先级 | 工作量 |
|---|---|---|---|
| EDU-001 | AI智能批改 | P0 | M |
| EDU-002 | 个性化学习路径 | P0 | L |
| EDU-003 | 苏格拉底式答疑 | P1 | XL |
| … | … | … | … |
第二阶段:架构设计
技术选型 (Tech Stack)
## 🎯 角色定义
你是 **EudPrison**,一位专注于"人工智能赋能高中教与学"的**首席架构师**。
你的任务:分析提供的产品文档(`persona.md`, `usertory.md`, `kanban.md`),并设计一份**全栈、AI原生**的架构蓝图。
**核心约束:** 所有组件必须基于 **Node.js 生态系统**(TypeScript 运行时、npm 包、工具链)。你的设计必须在高中教学需求(参与感、清晰度、反馈闭环)与企业级 AI 模式(RAG、流式传输、可观测性)之间取得平衡。
## 🏗️ 架构设计要求
你必须生成一份**可用于生产的架构提示**,详细描述以下各个层次,并在适当处遵循**六边形/整洁架构**原则。
### 1. 后端技术栈(全 Node.js)
| 层级 | 技术选型 | 理由(教育场景专用) |
|------|----------|----------------------|
| **运行时** | Node.js v22+ (TypeScript) | 全栈语言统一,降低高中信息化团队维护成本 |
| **框架** | **NestJS** | 自带模块化架构,适合 DDD;内置依赖注入便于 AI 服务解耦;教学团队可读性强 |
| **AI 编排** | LangChain.js + Vercel AI SDK | LangChain.js 管理 RAG 链;Vercel AI SDK 标准化前端流式传输(苏格拉底式回答的逐字输出) |
| **向量数据库** | PGVector (via `pg` 驱动) | 复用 PostgreSQL,减少高中学校的运维复杂度 |
| **关系数据库** | PostgreSQL + Prisma | Prisma 提供类型安全的数据库访问,降低 AI 生成的 SQL 出错风险 |
| **消息队列** | BullMQ (Redis) | 异步处理 OCR 识别、文档嵌入生成(避免阻塞用户交互) |
### 2. 前端架构(Node 生态)
| 层级 | 技术选型 | 理由 |
|------|----------|------|
| **框架** | Next.js 14+ (App Router) | 全栈 TypeScript;支持 API Routes 作为 BFF;SSR 提升首屏加载速度 |
| **状态管理** | TanStack Query + Zustand | TanStack Query 管理 AI 流式响应的异步状态;Zustand 管理苏格拉底对话的本地状态(问题计数器、引导步骤) |
| **流式传输** | SSE (Server-Sent Events) | 比 WebSocket 更轻量,适合 AI 逐字输出的单向流场景 |
| **UI 组件** | shadcn/ui + TailwindCSS | 教育场景需要高可读性,Tailwind 快速定制教学主题 |
### 3. AI Agent 工作流设计:苏格拉底式辅导代理
设计一个基于 **LangGraph.js** 的图结构代理,包含以下节点:
[学生输入] → [Node A: 护栏检测] → [Node B: 混合检索] → [Node C: 苏格拉底引擎] → [Node D: 理解度评分] → [输出]
↑ ↓
└──── [对话历史] ←──────┘
| 节点 | 功能 | 技术实现 |
|------|------|----------|
| **Node A(护栏)** | 输入审核:检测"直接给我答案"类的越狱提示,检测不当内容 | LLM 二分类器 + 关键词黑名单 |
| **Node B(检索)** | 混合检索:向量相似度 + BM25 关键词,限定在教师指定的知识库范围 | `pgvector` 向量搜索 + `pg_search` (BM25) |
| **Node C(苏格拉底引擎)** | LLM 调用,严格限制系统提示词,禁止直接给出答案,强制提出引导性问题 | GPT-4o-mini / Claude Haiku(低延迟 + 低成本) |
| **Node D(理解度评分)** | 小型 LLM 评估学生回答,输出 1-5 分理解度分数 | GPT-3.5-turbo 或本地小模型(如 Qwen-1.8B) |
### 4. 数据策略:高中知识图谱
| 组件 | 技术 | 用途 |
|------|------|------|
| **实体抽取** | LLM 从教学大纲中抽取概念(如"二次函数求根公式") | 构建课程知识本体 |
| **关系存储** | Neo4j(图数据库)+ 向量数据库 | 存储概念间的"前置知识""后续知识""相关知识点"关系 |
| **热力图生成** | 结合学生答题记录 + 知识图谱 | 为教师生成班级级别的概念掌握热力图 |
---
## 📝 输出格式要求
请以**系统架构 Prompt** 的形式生成以下内容(可直接复制到 Cursor/Copilot 中使用):
### 第 1 部分:系统上下文图(Mermaid)
```mermaid
graph TB
subgraph "用户层"
S[学生浏览器]
T[教师浏览器]
P[家长浏览器]
end
subgraph "前端层 - Next.js"
FE[Next.js App Router]
SS[SSE 流式端点]
end
subgraph "后端层 - NestJS"
API[API Gateway]
AG[AI Agent - LangGraph]
OC[OCR 处理器]
EM[嵌入生成器]
end
subgraph "数据层"
PG[(PostgreSQL + PGVector)]
NEO[(Neo4j 知识图谱)]
RD[(Redis / BullMQ)]
end
subgraph "AI 服务"
LLM[LLM API<br/>GPT-4o-mini]
EMB[Embedding API<br/>text-embedding-3-small]
end
S --> FE
T --> FE
P --> FE
FE --> API
API --> AG
API --> OC
AG --> PG
AG --> NEO
OC --> RD
EM --> PG
AG --> LLM
AG --> EMB
FE <--> SS
SS --> AG
输出
Markdown Table格式,保存为tech.md
| 类别 | 技术选型 | 说明 |
|------|----------|------|
| **后端运行时** | Node.js 20+ | TypeScript 运行时 |
| **后端框架** | NestJS | 模块化、依赖注入、DDD 友好 |
| **数据库** | PostgreSQL 15+ | 关系型数据库 |
| **ORM** | Prisma | 类型安全的数据库访问 |
| **缓存** | Redis 7+ | 消息队列、缓存 |
| **前端框架** | React 18+ / Next.js 14+ | 组件化开发 |
| **AI 编排** | LangChain.js | RAG 链管理 |
### AI Agent 工作流
设计了苏格拉底式辅导代理,包含以下节点:
[学生输入] → [护栏检测] → [混合检索] → [苏格拉底引擎] → [理解度评分] → [输出]
↑ ↓
└──────────── [对话历史] ←───────────┘
## 第三阶段:工程实现
### 前端项目搭建
```markdown
## 角色设定
你是 EudPrison 的高级前端工程师。EudPrison 是一个专注于研究**人工智能如何赋能高中阶段教与学**的组织。你需要基于项目已有的 `persona.md`、`usertory.md`、`kanban.md`、`tech.md` 文档(假设已按行业标准定义),为团队搭建一个**生产级 React 前端工程脚手架**。
## 技术栈要求(严格执行)
| 类别 | 技术选型 |
|------|----------|
| 构建工具 | Vite(最新版) |
| 语言 | TypeScript(严格模式) |
| UI 框架 | React 18+ |
| 样式方案 | Tailwind CSS + shadcn/ui |
| 服务端状态管理 | TanStack Query |
| 客户端状态管理 | Zustand |
| 路由 | React Router v6 |
| HTTP 客户端 | Axios(带拦截器) |
| 代码规范 | ESLint + Prettier |
## 工程目录
eduprison/frontend
## 要求
- 标准的git工程要求
- 确保生成的 `package.json` 包含所有必需依赖(react, react-dom, react-router-dom, @tanstack/react-query, zustand, axios, tailwindcss, shadcn/ui 对应组件等)
- 提供一条命令用于**自动安装 shadcn/ui 并初始化**(例如 `npx shadcn-ui@latest init`)
- 脚手架必须直接可用,无需手动修正路径或类型错误
目录结构:eduprison/frontend
技术栈:
- Vite(构建工具)
- TypeScript(严格模式)
- React 18+
- Tailwind CSS + shadcn/ui
- TanStack Query + Zustand
- React Router v6
- Axios
初始化命令:
cd eduprison/frontend
npm create vite@latest . -- --template react-ts
npm install
npx shadcn-ui@latest init
后端项目搭建
## Role
你是一名资深后端架构师 + 高级后端开发工程师,擅长 Node.js / TypeScript 技术栈,对工程化、模块化、RESTful API 设计有深刻理解。
## Context
EudPrison 是一个专注于研究 **人工智能如何赋能高中阶段的教与学** 的项目。目前项目已完成:
- `persona.md`(用户画像)
- `usertory.md`(用户故事)
- `kanban.md`(任务看板)
- `tech.md`(技术选型)
现在需要搭建 **后端工程脚手架**,为后续业务接口开发提供基础。
## Task
请基于以下技术栈要求,生成一个**生产可用的后端工程脚手架**代码结构及核心文件, 工程目录eduprison/backend:
### 技术栈要求(来自 tech.md)
| 类别 | 技术选型 |
|------|----------|
| 运行时 | Node.js 20+ |
| 语言 | TypeScript 5+ |
| 框架 | NestJS 或 Express + 结构化封装(二选一,推荐 NestJS) |
| 数据库 | PostgreSQL 15+ |
| ORM | Prisma 或 TypeORM(推荐 Prisma) |
| 缓存 | Redis 7+ |
| 验证 | Zod + class-validator |
| 日志 | Winston / Pino |
| 配置 | dotenv + config 模块 |
| 测试 | Jest + Supertest |
| 文档 | Swagger / OpenAPI 3.0 |
### 功能性要求
1. **健康检查**:`GET /health` 返回服务状态及数据库、Redis 连接状态
2. **配置管理**:支持多环境(development, staging, production),敏感信息通过环境变量注入
3. **日志系统**:请求日志、错误日志、SQL 日志(开发环境)
4. **全局异常过滤器**:统一错误响应格式
5. **全局响应拦截器**:统一成功响应格式
6. **请求验证管道**:基于 Zod 或 class-validator
7. **数据库初始化**:Prisma schema 示例(users、sessions 基础表)
8. **Redis 服务封装**:基础缓存服务类
9. **Docker 支持**:Dockerfile + docker-compose(含 postgres、redis、app)
10. **开箱即用的脚本**:`npm run dev`、`npm run build`、`npm run start:prod`、`npm run test`、`npm run migrate:dev`
### 输出要求
生成完整的项目目录结构及核心文件内容,包括:
- 完整的 `package.json`
- `tsconfig.json`
- `nest-cli.json`(如使用 NestJS)
- `docker-compose.yml`
- `Dockerfile`
- `.env.example`
- `prisma/schema.prisma`
- 核心源码(main.ts、app.module、health 模块、config 模块、prisma 模块、redis 模块、filters、interceptors、pipes)
## Output Format
按文件路径和文件内容的方式输出,每个文件以 `### 文件路径` 开头,后接代码块。
示例:
### /src/main.ts
```typescript
// 代码内容
Constraints
- 使用 NestJS 框架
- 使用 Prisma 作为 ORM
- 响应格式统一为:
{
"code": 0,
"message": "success",
"data": null
}
- 错误响应格式:
{
"code": 50001,
"message": "错误描述",
"timestamp": "2024-01-01T00:00:00.000Z",
"path": "/api/xxx"
}
- 所有模块采用依赖注入模式
- 代码注释使用英文或中文(保持一致)
**目录结构**:`eduprison/backend`
**技术栈**:
- NestJS 框架
- TypeScript 5+
- Prisma ORM
- Redis 7+
- class-validator + Zod
- Winston 日志
- Swagger / OpenAPI 3.0
**核心模块**:
| 模块 | 功能 |
|------|------|
| `health` | 健康检查(数据库、Redis 连接状态) |
| `prisma` | 数据库连接与服务 |
| `redis` | 缓存服务封装 |
**可用脚本**:
```bash
npm run dev # 开发环境启动
npm run build # 生产构建
npm run start:prod # 生产环境启动
npm run test # 运行测试
npm run migrate:dev # 数据库迁移
Docker 支持
提供了完整的容器化部署方案:
# docker-compose.yml
services:
postgres: # PostgreSQL 15
redis: # Redis 7
app: # NestJS 应用
API 契约 (API Contract)
# 角色与任务
你是一名资深架构师,正在为 **EudPrison** 项目设计 API 契约。EudPrison 是一个专注于「AI 赋能高中阶段教与学」的平台。
## 输入材料(已提供)
- `persona.md`:用户角色与场景画像
- `usertory.md`:用户故事与业务流程
- `kanban.md`:当前迭代任务与优先级
- `tech.md`:技术栈与架构约束
## 输出要求
请你基于以上四份文档,生成一份 **前后端 API 契约(OpenAPI 3.0.1 格式)**,作为并行开发的挡板。
### 契约必须覆盖以下核心领域(从 user story + kanban 提取)
1. **AI 智能对话答疑**(学生提问,AI 结合知识图谱回答)
2. **个性化作业生成**(教师基于薄弱知识点生成分层作业)
3. **作业智能批改与反馈**(主观题 AI 评分 + 诊断)
4. **班级学情诊断报告**(知识点掌握热力图、高风险学生)
5. **教学建议备课卡片**(为教师提供下一节课 AI 建议)
### 技术要求(来自 tech.md + 前端架构要求)
- 协议:RESTful(SSE/WebSocket 可单独标注,本次先做 REST)
- 版本:`/api/v1/`
- 认证:JWT Bearer Token,需 RBAC(student / teacher / admin)
- 数据隔离:按 `tenant_id`(学校级)隔离
- 幂等性:作业提交、反馈生成接口需支持 `Idempotency-Key` header
- 限流:响应头返回 `X-RateLimit-Limit/Remaining/Retry-After`
- 统一错误格式:使用 `ErrorResponse` 组件
### 契约格式约束
- 使用 OpenAPI 3.0.1
- 每个接口必须包含:
- summary
- 请求/响应 schema(字段类型 + 必填 + example)
- 至少一个 200 成功响应示例
- 一个 4xx/5xx 错误响应示例
- 复用 `components/schemas` 中的通用定义
### 前端挡板友好要求
- 所有 `example` 值必须真实可用(可直接用作 mock 数据)
- 响应结构保持扁平,避免过度嵌套
- 为每个数组字段提供 `minItems` / `maxItems` 约束
- 分页统一使用 `page` + `pageSize` + `total`(如有列表类接口)
## 输出格式
直接输出完整的 `openapi.yaml`, 不要额外解释。文件需包含:
- `openapi: 3.0.1`
- `info`(title、version)
- `servers`
- `paths`(上述 5 个领域至少各一个 endpoint)
- `components.securitySchemes`
- `components.schemas`(包含 ErrorResponse、UserRole、KnowledgePoint 等)
## 额外提醒
如果你发现四份文档中对某个字段或流程描述不完整,请基于高中教学常识合理推断,并在注释中用 `x-frontend-note` 标注推断依据。
生成了完整的 OpenAPI 3.0.1 格式 API 契约,覆盖以下核心领域:
- AI 智能对话答疑:学生提问,AI 结合知识图谱回答
- 个性化作业生成:教师基于薄弱知识点生成分层作业
- 作业智能批改与反馈:主观题 AI 评分 + 诊断
- 班级学情诊断报告:知识点掌握热力图、高风险学生
- 教学建议备课卡片:为教师提供下一节课 AI 建议
技术要求:
- 协议:RESTful
- 版本:
/api/v1/ - 认证:JWT Bearer Token,需 RBAC(student / teacher / admin)
- 数据隔离:按
tenant_id(学校级)隔离 - 幂等性:支持
Idempotency-Keyheader - 限流:返回
X-RateLimit-Limit/Remaining/Retry-After
API 契约服务器 (API Contract Server)
你是 **EduPrison** 公司的资深前端架构师。EduPrison 专注于研究 **AI如何赋能高中阶段的教与学**。
## 已有文档
- `persona.md` - 用户画像(教师、学生、管理员)
- `usertory.md` - 用户故事(AI反馈、个性化测验、学习分析等)
- `openapi.yaml` - 完整的API规范
## 任务
基于 `openapi.yaml` 生成以下内容:
### 1. 契约服务器(Mock API Server)
生成一个 Node.js + Express + TypeScript 的 Mock 服务器:
- 完整实现 `openapi.yaml` 中定义的所有端点
- 使用 faker.js 生成符合高中教育场景的真实感 Mock 数据
- 支持可配置的响应延迟(环境变量控制)
- 支持通过查询参数模拟错误(如 `?_error=400`)
- 提供 Swagger UI 端点用于 API 浏览和测试
- 使用内存数据库存储,支持基本的 CRUD 操作
### 2. 前端代理配置
生成 Next.js 14 的代理配置:
- `next.config.js` 中的 rewrites 配置,将 `/api` 请求代理到契约服务器
- 环境变量配置文件(`.env.local`、`.env.production`)
- 一个简单的 TypeScript API 客户端封装(支持请求重试、错误处理)
### 3. 运行脚本
在根目录 `package.json` 中添加:
- `dev:api` - 启动契约服务器
- `dev:web` - 启动前端
- `dev` - 并发启动两者
### 4. 简短文档
- 契约服务器的 README(安装、启动、可用端点、调试参数)
- 前端集成说明(如何切换 Mock/真实 API)
## 输出要求
- 所有代码使用 TypeScript
- 可直接复制粘贴运行
- 关键逻辑添加中文注释
- Mock 数据贴合高中教学场景(学科、作业、学生水平等)
基于 OpenAPI 规范生成了 Mock API 服务器:
功能:
- 完整实现
openapi.yaml中定义的所有端点 - 使用 faker.js 生成符合高中教育场景的真实感 Mock 数据
- 支持可配置的响应延迟(环境变量控制)
- 支持通过查询参数模拟错误(如
?_error=400) - 提供 Swagger UI 端点用于 API 浏览和测试
- 使用内存数据库存储,支持基本的 CRUD 操作
前端代理配置:
next.config.js中的 rewrites 配置,将/api请求代理到契约服务器- 环境变量配置文件(
.env.local、.env.production) - TypeScript API 客户端封装(支持请求重试、错误处理)
运行脚本:
dev:api- 启动契约服务器dev:web- 启动前端dev- 并发启动两者
项目产出物
| 文件 | 描述 |
|---|---|
notebook.ipynb |
开发工作流笔记(含所有 Prompt) |
persona.md |
用户画像分析 |
userstory.md |
用户故事文档 |
kanban.md |
开发任务看板 |
tech.md |
技术架构蓝图 |
openapi.yaml |
API 契约规范 |
eduprison/contract-server/ |
API 契约服务器(Mock API Server) |
post.md |
项目开发过程记录 |
eduprison/frontend/ |
前端工程脚手架 |
eduprison/backend/ |
后端工程脚手架 |
核心设计原则
基于三个典型用户画像,项目遵循以下核心设计原则:
- 以学习者为中心:界面简洁、反馈及时、鼓励学习
- 教育场景适配:苏格拉底式引导而非直接给答案
- 可解释性:AI 决策过程透明可追溯
未来规划
- 实现 AI 智能批改功能
- 开发个性化学习路径推荐
- 构建苏格拉底式答疑机器人
- 部署知识图谱系统
- 完善学情分析 Dashboard
项目截图
界面预览





