diff --git a/assets/wechat.png b/assets/wechat.png
index 8a4ce0a..d7b64d2 100644
Binary files a/assets/wechat.png and b/assets/wechat.png differ
diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs
index 7b9cc6a..323ed64 100644
--- a/docs/.vitepress/config.mjs
+++ b/docs/.vitepress/config.mjs
@@ -1528,35 +1528,35 @@ Sitemap: ${siteUrl}/sitemap.xml
link: '/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/'
},
{
- text: 'AI 营销文案 SaaS 开发实战',
+ text: 'AI 营销文案 SaaS',
link: '/zh-cn/stage-2/assignments/copywriting-platform-supabase/'
},
{
- text: '在线考试与管理系统开发实战',
+ text: '在线考试与管理系统',
link: '/zh-cn/stage-2/assignments/exam-management-express/'
},
{
- text: '现代 AI 生图 SaaS 开发实战',
+ text: '现代 AI 生图 SaaS',
link: '/zh-cn/stage-2/assignments/modern-landing-page/'
},
{
- text: '类 Dify 智能体平台开发实战',
+ text: '类 Dify 智能体平台',
link: '/zh-cn/stage-2/assignments/custom-dify-agent-platform/'
},
{
- text: '智能旅游规划 Agent 平台开发实战',
+ text: '智能旅游规划 Agent 平台',
link: '/zh-cn/stage-2/assignments/travel-planning-agent-platform/'
},
{
- text: 'Spring Boot 电影推荐系统开发实战',
+ text: 'Spring Boot 电影推荐系统',
link: '/zh-cn/stage-2/assignments/movie-recommendation-springboot/'
},
{
- text: '生鲜电商微服务系统开发实战',
+ text: '生鲜电商微服务系统',
link: '/zh-cn/stage-2/assignments/simple-grocery-microservices/'
},
{
- text: 'Go 交通数据分析平台开发实战',
+ text: 'Go 交通数据分析平台',
link: '/zh-cn/stage-2/assignments/traffic-data-visualization-go/'
}
]
diff --git a/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/index.md b/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/index.md
index 4ad4c97..6cd179c 100644
--- a/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/index.md
+++ b/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/index.md
@@ -1,12 +1,42 @@
# AI 营销文案 SaaS 开发实战
-这个项目不再只是“写一个生成按钮”,而是围绕一份真实 PRD,把一个 AI 营销文案 SaaS 从想法推进到可上线产品。
+## 概述
-你会同时看到三件事:
+本实战项目要求你围绕一份真实的 PRD,从零完成一个面向独立开发者和内容团队的 AI 营销文案 SaaS 产品。你将使用 Supabase 作为后端服务、Stripe 作为支付系统,完成从需求分析到部署上线的全过程。
-- 项目要做成什么
-- 如何基于 PRD 拆解并推进开发
-- 最后应该交付出什么样的效果
+这是 Stage 2 的综合实战环节。在前面几章中,你已经分别学习了前端页面搭建、后端接口开发、数据库操作、支付集成等单项技能——这个项目要求你把它们全部串起来,交付一个可运行的产品原型。
+
+## 前置知识
+
+在开始本项目之前,你应该已经掌握以下内容:
+
+- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/))
+- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/))
+- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/))
+- 支付集成([Stripe 收费系统](../../backend/2.7-stripe-payment/))
+- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/))
+
+## 学习目标
+
+完成本实战后,你将能够:
+
+1. 阅读并理解一份真实的 PRD,从中提取开发任务清单
+2. 使用 AI 辅助分步生成前端页面和后端接口
+3. 使用 Supabase 实现用户鉴权、数据库操作
+4. 集成 Stripe 实现付费订阅功能
+5. 搭建管理后台并完成端到端联调
+
+## 项目简介
+
+你要构建的产品是一个 AI 营销文案 SaaS,包含三个子系统:
+
+| 子系统 | 职责 |
+|--------|------|
+| **官网前台** | 产品介绍、定价、FAQ、注册转化 |
+| **用户工作台** | 输入产品信息、生成文案、查看历史、升级套餐 |
+| **后台管理台** | 用户管理、生成记录、支付数据、运营概览 |
+
+后端使用 Supabase 提供数据库和鉴权能力,使用 Stripe 处理支付,使用 AI 模型生成营销文案。
::: tip PRD 入口
本项目的需求文档在 GitHub: [查看 PRD](https://github.com/datawhalechina/easy-vibe/blob/main/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/PRD.md)
@@ -15,69 +45,33 @@
-## 这个项目到底在做什么?
+## 第一部分:需求分析
-这是一个面向独立开发者和内容团队的 AI 营销文案 SaaS:
+### 1.1 阅读 PRD
-- 官网前台:负责产品介绍、定价、FAQ、注册转化
-- 用户工作台:负责输入产品信息、生成文案、查看历史、升级套餐
-- 后台管理台:负责用户、生成记录、支付数据和运营概览
+打开 PRD 文档,重点回答以下问题:
-后端需要接住这些关键能力:
+- 系统有几个入口?各自覆盖哪些页面?
+- 每个页面的核心功能是什么?
+- 后端包含哪些模块和数据表?
+- 套餐定价、支付流程、免费额度如何设计?
+- MVP 范围是什么?第一版哪些做,哪些不做?
-- 用户鉴权
-- 文案生成任务
-- 历史记录持久化
-- Stripe 支付
-- 后台用户和生成数据管理
+::: warning
+如果以上问题没有明确答案,不要开始写代码。需求理解不清楚是导致返工的最常见原因。
+:::
-## 开发过程怎么走?
+### 1.2 确认系统架构
-### 1. 先看 PRD,不要上来就写代码
-
-先确认:
-
-- 有几个入口:`www / app / admin`
-- 页面清单是否完整
-- 后端模块和数据表是否合理
-- 套餐、支付和后台范围是否收住
-
-如果 PRD 没拍板,就先不要写代码。
-
-### 2. 先让 AI 生成“骨架版”
-
-第一轮目标不是做完整闭环,而是先生成:
-
-- 官网首页
-- 登录注册
-- 文案生成工作台
-- 历史记录页
-- 套餐页
-- 后台首页与管理页骨架
-
-这一步要先把页面结构、路由和信息架构搭出来。
-
-### 3. 再进入“监工模式”
-
-你需要重点盯这几件事:
-
-- 页面结构是不是和 PRD 一致
-- 登录态和匿名态有没有分清
-- 生成结果有没有稳定落库
-- 支付之后套餐状态有没有更新
-- 后台是不是能看到真实用户、生成和支付数据
-
-可以把 AI 当执行者,但你自己要做项目经理和验收人。
-
-### 4. 最后做联调和上线
+根据 PRD 梳理出系统的整体架构:
```mermaid
flowchart TD
@@ -91,11 +85,13 @@ flowchart TD
admin --> analytics["用户 / 生成 / 支付看板"]
```
-只要这条链路能跑通,这个项目就不是单点 Demo,而是一个完整 SaaS 原型。
+## 第二部分:搭建项目骨架
-## 怎么让 AI 帮你生成?
+### 2.1 生成前端页面
-推荐按模块逐步下指令,而不是一句“帮我做完”。
+使用 AI 先生成所有页面的基本结构和假数据。
+
+提示词参考:
```text
请基于当前 PRD,帮我生成一个 AI 营销文案 SaaS 的前端骨架。
@@ -109,52 +105,9 @@ flowchart TD
6. 风格要像现代 SaaS,不像课堂 demo
```
-然后再一块一块补:
+### 2.2 完善核心页面
-- 鉴权
-- 生成接口
-- 数据库
-- 支付
-- 后台管理
-
-## 怎么“监工”才有效?
-
-每做完一个模块,至少检查这 5 件事:
-
-| 检查项 | 要看什么 |
-|------|------|
-| 页面是否对 | 页面数量、入口、功能是否符合 PRD |
-| 接口是否对 | 输入参数、返回结构、状态处理是否合理 |
-| 权限是否对 | 游客、用户、管理员是否隔离 |
-| 数据是否对 | 生成、历史、支付和套餐状态是否一致 |
-| 演示是否对 | 是否真的能完整跑通注册、生成、升级这条链路 |
-
-## 最后的预期效果
-
-做完后,你应该拿到这些交付物:
-
-- 一套可运行的 AI 文案 SaaS 项目
-- 一份同级 PRD 文档
-- 三套入口:`www / app / admin`
-- 基础鉴权、生成、历史、支付、后台管理
-- 一份 README
-- 一个可以演示的线上版本或本地完整运行方案
-
-## 验收标准
-
-| 维度 | 最低达标 |
-|------|------|
-| PRD 对齐 | 页面、功能、数据结构基本符合 PRD |
-| 产品闭环 | 注册、生成、历史、支付升级可以跑通 |
-| 后台能力 | 用户、生成、支付数据可以查看 |
-| 工程完整度 | 前端、后端、数据库、支付链路已接通 |
-| 展示能力 | 可以清楚演示“从 PRD 到成品”的过程 |
-
-::: tip 🚀 完成后你会得到什么?
-你得到的不只是一个生成页面,而是一套完整的 AI SaaS 开发过程样例。后面再做别的产品型项目,也可以继续沿用这套“先 PRD、再生成、再监工、再联调上线”的方法。
-:::
-
-第一版页面完成后,继续补充:
+骨架搭好后,重点完善文案生成工作台(Dashboard)页面:
```text
请继续完善 /dashboard 页面。
@@ -183,32 +136,28 @@ flowchart TD
- 响应式布局,宽屏窄屏都能正常显示
```
+### 2.3 验证页面结构
+
+逐项检查:
+
+- [ ] 三个入口的路由是否独立
+- [ ] 页面数量是否与 PRD 一致
+- [ ] Dashboard 的表单和结果区域布局合理
+- [ ] 假数据展示了基本的 UI 状态
+
### 遇到阻碍?
-回头看看这几篇:
+如果你在前端搭建阶段卡住,可以回顾这些章节:
-- [构建第一个现代应用程序 - UI 设计](../../frontend/2.2-ui-design/)
+- [UI 设计](../../frontend/2.2-ui-design/)
- [参考 UI 设计规范设计页面和按钮](../../frontend/2.3-multi-product-ui/)
- [用 LLM 和 Skills 让界面变好看](../../frontend/2.4-llm-skills-beautiful/)
- [从设计原型到项目代码](../../frontend/2.6-design-to-code/)
- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
-
-
-
-
-
+## 第三部分:后端集成
-## 3. 接后端:把数据库、生成、支付串起来
-
-这一步才算真正的"全栈"。
-
-### 第三步:接入 Supabase 登录
+### 3.1 接入 Supabase 登录
```text
请把我当成 0 基础,一步一步带我完成 Supabase 登录接入。
@@ -229,7 +178,7 @@ flowchart TD
- 完成后说明如何验证注册和登录
```
-### 第四步:接入生成接口和数据库
+### 3.2 接入生成接口和数据库
```text
请把我当成 0 基础,帮我完成网站的核心功能:生成营销文案并保存。
@@ -260,7 +209,7 @@ flowchart TD
- 如何测试完整生成链路
```
-### 第五步:接入 Stripe 付费
+### 3.3 接入 Stripe 付费
```text
请把我当成 0 基础,帮我给 LaunchKit 加上最简可用的 Stripe 付费。
@@ -281,7 +230,7 @@ flowchart TD
- 完成后说明如何测试完整支付流程
```
-### 第六步:搭建管理后台
+### 3.4 搭建管理后台
```text
请把我当成 0 基础,帮我做一个简洁可用的管理后台。
@@ -290,10 +239,7 @@ flowchart TD
需要你完成:
1. 仅 role = admin 的用户可访问 /admin
-2. 后台包含 3 个 Tab:
- - 用户列表
- - 生成记录
- - 订阅状态
+2. 后台包含 3 个 Tab:用户列表、生成记录、订阅状态
3. 用户列表显示:email、plan、创建时间
4. 生成记录显示:用户、产品名、渠道、创建时间
5. 订阅状态显示:用户、套餐、支付状态
@@ -306,37 +252,22 @@ flowchart TD
### 遇到阻碍?
-回头看看这几篇:
+如果你在后端开发阶段卡住,可以回顾这些章节:
- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
- [如何集成 Stripe 等收费系统](../../backend/2.7-stripe-payment/)
-
-
-
-
-
+## 第四部分:联调与上线
-## 4. 做后台与交付:真正上线
+### 4.1 端到端测试
-网站基本成型,最后三件事:
+至少验证以下场景:
-### 4.1 部署
+- 注册 → 登录 → 生成文案 → 查看历史 → 升级套餐
+- 管理员登录 → 查看用户数据 → 查看生成记录 → 查看支付状态
-代码推送到 GitHub,部署到公网。
-
-参考:
-
-- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
-- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)
-
-### 第七步:部署前检查
+部署前检查:
```text
请把我当成 0 基础,帮我检查项目是否具备部署条件。
@@ -354,52 +285,37 @@ flowchart TD
3. 说明修复后的部署步骤
```
-### 4.2 README
+### 4.2 部署
-至少包含:
-- 项目简介
-- 核心页面说明
-- 技术栈
-- 本地启动步骤
-- 环境变量清单
+将项目部署到公网环境。部署教程参考:[Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)、[如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)。
-### 4.3 演示材料
+## 交付物
-至少准备:
-- 首页截图
-- Dashboard 生成截图
-- Billing 页面截图
-- Admin 后台截图
-- 60 秒左右演示视频
+完成本项目后,你需要提交以下内容:
-## 验收标准
+- [ ] 可访问的线上演示链接
+- [ ] 源码仓库链接(含 README)
+- [ ] PRD 文档
+- [ ] 核心页面截图(首页、Dashboard、Billing、Admin)
+- [ ] 60 秒演示视频(覆盖注册 → 生成 → 支付 → 后台)
-如果你想判断这个作业到底算不算“完成”,不要只看页面有没有写完,而要看下面这几个维度是不是都达标:
+README 至少包含:项目简介、核心页面说明、技术栈、本地启动步骤、环境变量清单。
-| 维度 | 最低达标 | 加分项 |
-|------|------|------|
-| 产品完整度 | 首页、登录、Dashboard、Billing、Admin 都能访问 | 首页文案和视觉风格明显像真实 SaaS |
-| 业务闭环 | 用户可以注册、登录、生成并查看历史 | 免费 / Pro 权限差异清晰可见 |
-| 数据正确性 | 生成结果和支付状态都会写入数据库 | 有明确的错误提示、空状态和 Loading |
+## 评分标准
+
+| 维度 | 基本要求 | 进阶要求 |
+|------|---------|---------|
+| 产品完整度 | 首页、登录、Dashboard、Billing、Admin 都能访问 | 首页文案和视觉风格像真实 SaaS |
+| 业务闭环 | 注册 → 登录 → 生成 → 查看历史可以跑通 | 免费/Pro 权限差异清晰可见 |
+| 数据正确性 | 生成结果和支付状态都写入数据库 | 有明确的错误提示、空状态和 loading |
| 权限与安全 | 未登录不能访问受保护页面,普通用户不能进 Admin | 有基本的输入校验和服务端鉴权 |
| 工程交付 | 项目可本地启动,也可部署到公网 | README 清楚,演示视频结构完整 |
-如果你现在还觉得任务太大,就记住一个标准:**优先保证“能跑通”,再去追求“做漂亮”。**
+::: tip
+如果你觉得任务太大,记住一个原则:**先保证"能跑通",再去追求"做漂亮"。**
+:::
-## 5. 最终成果
-
-按这篇指南做完,你拿到的不是"练习页",而是一个**最小但完整的 SaaS 产品**:
-
-- ✅ 现代组件库前端
-- ✅ Supabase 数据库与登录
-- ✅ 真实 AI 生成功能
-- ✅ Stripe 支付系统
-- ✅ 管理员后台
-- ✅ 可部署上线
-
-这完全够资格作为**第一个全栈作品**。
-
-## 6. 提交前最后检查
+## 提交前检查
@@ -416,6 +332,15 @@ flowchart TD
-::: tip 🚀 下一篇
-完成这个网站后,继续阅读 [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/),把产品界面的完成度再提升一层。
-:::
+## 参考资料
+
+- [UI 设计](../../frontend/2.2-ui-design/)
+- [参考 UI 设计规范设计页面和按钮](../../frontend/2.3-multi-product-ui/)
+- [用 LLM 和 Skills 让界面变好看](../../frontend/2.4-llm-skills-beautiful/)
+- [从设计原型到项目代码](../../frontend/2.6-design-to-code/)
+- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
+- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
+- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
+- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
+- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)
+- [如何集成 Stripe 等收费系统](../../backend/2.7-stripe-payment/)
diff --git a/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/index.md b/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/index.md
index a465b00..6906dce 100644
--- a/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/index.md
+++ b/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/index.md
@@ -1,12 +1,40 @@
# 类 Dify 智能体平台开发实战
-这个项目不是“再配一个聊天页”,而是围绕一份真实 PRD,把一个类 Dify 智能体平台从想法推进到可上线产品。
+## 概述
-你会同时看到三件事:
+本实战项目要求你围绕一份真实的 PRD,从零完成一个模仿 Dify 核心体验的智能体平台。你将构建用户控制台、管理后台和平台后端,实现智能体管理、对话、日志和知识库等核心功能。
-- 项目要做成什么
-- 如何基于 PRD 拆解并推进开发
-- 最后应该交付出什么样的效果
+这是 Stage 2 的综合实战环节。与前面的单页面或单功能项目不同,这个项目要求你构建一个有"平台感"的 AI 产品——包含多角色、多模块、数据持久化和模型调用链路。
+
+## 前置知识
+
+在开始本项目之前,你应该已经掌握以下内容:
+
+- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/))
+- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/))
+- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/))
+- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/))
+
+## 学习目标
+
+完成本实战后,你将能够:
+
+1. 阅读并理解一份真实的 PRD,从中提取开发任务清单
+2. 设计智能体平台的页面架构和数据模型
+3. 实现智能体创建、对话、日志记录的完整链路
+4. 使用 AI 辅助完成平台型产品开发
+5. 完成端到端联调,交付一个可演示的 AI 平台原型
+
+## 项目简介
+
+你要构建的产品是一个类 Dify 智能体平台,包含两个子系统:
+
+| 子系统 | 职责 |
+|--------|------|
+| **用户控制台** | 创建智能体、配置 Prompt、发起对话、查看日志、管理知识库 |
+| **管理后台** | 查看用户数据、平台资源使用情况、调用统计 |
+
+后端需要支持以下核心能力:智能体管理、会话管理、消息存储、模型调用、调用日志记录、知识库接入。
::: tip PRD 入口
本项目的需求文档在 GitHub: [查看 PRD](https://github.com/datawhalechina/easy-vibe/blob/main/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/PRD.md)
@@ -15,56 +43,32 @@
-## 这个项目到底在做什么?
+## 第一部分:需求分析
-这是一个模仿 Dify 核心体验的智能体平台:
+### 1.1 阅读 PRD
-- 用户控制台:创建智能体、配置 Prompt、发起对话、查看日志
-- 平台后端:管理智能体、会话、消息、知识库和模型调用
-- 管理后台:查看用户和平台资源使用情况
+打开 PRD 文档,重点回答以下问题:
-## 开发过程怎么走?
+- 智能体、会话、日志、知识库哪些要进 MVP?
+- 页面和路由清单是否拍板?
+- 模型调用和日志记录的边界是什么?
+- 多租户和复杂工作流是否先不做?
-### 1. 先看 PRD,不要上来就写代码
+::: warning
+如果以上问题没有明确答案,不要开始写代码。需求理解不清楚是导致返工的最常见原因。
+:::
-先确认:
+### 1.2 确认系统架构
-- 智能体、会话、日志、知识库哪些要进 MVP
-- 页面和路由清单是否拍板
-- 模型调用和日志记录边界是否清楚
-- 多租户和复杂工作流是不是先不做
-
-### 2. 先让 AI 生成“骨架版”
-
-第一轮先生成:
-
-- 登录页
-- 智能体列表页
-- 智能体配置页
-- 对话页
-- 日志页
-- 知识库页
-- 管理后台首页
-
-### 3. 再进入“监工模式”
-
-你要重点盯这几件事:
-
-- 智能体是不是能被正确创建和编辑
-- 对话是不是使用了正确的 agent 配置
-- 会话和消息有没有稳定落库
-- 日志是不是记录了耗时、token、错误
-- 知识库和模型调用有没有串权限
-
-### 4. 最后做联调和上线
+根据 PRD 梳理出系统的整体架构:
```mermaid
flowchart TD
@@ -80,7 +84,11 @@ flowchart TD
logs --> db
```
-## 怎么让 AI 帮你生成?
+## 第二部分:搭建项目骨架
+
+### 2.1 生成前端页面
+
+提示词参考:
```text
请基于当前 PRD,帮我生成一个类 Dify 智能体平台的前端骨架。
@@ -92,88 +100,91 @@ flowchart TD
4. 风格要像现代 AI 平台
```
-## 怎么“监工”才有效?
+### 2.2 验证页面结构
-| 检查项 | 要看什么 |
-|------|------|
-| 页面是否对 | 页面数量、功能是否符合 PRD |
-| 接口是否对 | agents、chat、logs、knowledge 是否闭环 |
-| 权限是否对 | 用户是否只能管理自己的 agent 和会话 |
-| 数据是否对 | messages、logs、documents 是否一致 |
-| 演示是否对 | 是否能演示“创建 agent -> 对话 -> 查看日志”完整链路 |
+逐项检查:
-## 最后的预期效果
+- [ ] 用户控制台和管理后台入口是否分开
+- [ ] 智能体列表、配置、对话、日志、知识库页面是否完整
+- [ ] 管理后台首页、用户概览页面是否可访问
+- [ ] 假数据展示了基本的 UI 状态
-- 一套可运行的类 Dify 平台
-- 一份同级 PRD 文档
-- 用户侧控制台 + 管理后台
-- 智能体、对话、日志、知识库基础能力
-- README 和演示方案
+## 第三部分:迭代开发
-## 验收标准
+### 3.1 按模块推进
-| 维度 | 最低达标 |
-|------|------|
-| PRD 对齐 | 页面、功能、数据结构基本符合 PRD |
-| 产品闭环 | 创建 agent、发起对话、查看日志可以跑通 |
-| 后台能力 | 用户与平台使用概览可查看 |
-| 工程完整度 | 前端、后端、数据库、模型调用链路已接通 |
-| 展示能力 | 可以清楚演示“从 PRD 到成品”的过程 |
+在骨架的基础上,按以下顺序逐模块补充功能:
-::: tip 🚀 完成后你会得到什么?
-你得到的不只是一个聊天页,而是一套 AI 平台型产品的开发样例。后面做知识助手、企业 Agent、AI 控制台时,都可以继续复用这套方法。
-:::
-4. 调用 LLM 前拼接系统提示词和最近 10 条上下文
-5. 返回 assistant 内容并写入消息表
-6. 无论成功失败都写一条 llm_logs
+1. **鉴权**:注册、登录、角色区分
+2. **智能体管理**:创建、编辑、删除、Prompt 配置
+3. **对话功能**:会话创建、消息收发、模型调用
+4. **日志记录**:耗时、token 用量、错误记录
+5. **知识库接入**(加分项):文档上传、检索、结果注入
+6. **管理后台**:用户数据、资源使用、调用统计
-请给出:
-- 路由层代码
-- service 层代码
-- 错误处理策略
-- 如何本地测试
-```
+每完成一个模块,使用下表进行自检:
-### 第四步:可选接入知识库(加分项)
+| 检查项 | 验证方法 |
+|--------|----------|
+| 页面一致性 | 页面数量、功能是否符合 PRD |
+| 接口闭环 | agents、chat、logs、knowledge 接口是否完整 |
+| 权限隔离 | 用户是否只能管理自己的 agent 和会话 |
+| 数据一致性 | messages、logs、documents 数据是否对得上 |
+| 可演示性 | 是否能演示"创建 agent → 对话 → 查看日志"完整链路 |
-你可以给每个智能体增加一个“知识库开关”:
+### 3.2 知识库接入(加分项)
+
+如果你想增加知识库能力,可以给每个智能体增加一个"知识库开关":
- 开启后先检索知识片段,再和用户问题一起发送给模型
- 关闭后按普通对话模式响应
-第一版不必追求复杂 RAG,只要有“检索结果可见、调用链路可解释”即可。
+第一版不必追求复杂 RAG,只要有"检索结果可见、调用链路可解释"即可。
-## 4. 上线与交付:把平台做成可演示产品
+## 第四部分:联调与上线
-### 部署前检查
+### 4.1 端到端测试
-- 所有核心接口都做了登录校验
-- 智能体归属权限检查通过
-- 会话记录、日志记录真实落库
-- 模型 Key 使用环境变量,不硬编码
-- 错误提示可在前端看到,不只打控制台
+至少验证以下场景:
-### 交付物
+- 注册 → 创建智能体 → 配置 Prompt → 发起对话 → 查看日志
+- 管理员登录 → 查看用户数据 → 查看调用统计
-- 可访问演示链接
-- 源码仓库链接
-- 智能体管理页截图
-- 对话页截图
-- 日志页截图
-- 60 秒演示视频(创建智能体 -> 对话 -> 查看日志)
-- README(架构、运行、环境变量、接口说明)
+部署前检查:
-## 验收标准
+- [ ] 所有核心接口都做了登录校验
+- [ ] 智能体归属权限检查通过
+- [ ] 会话记录、日志记录真实落库
+- [ ] 模型 Key 使用环境变量,不硬编码
+- [ ] 错误提示可在前端看到,不只打控制台
-| 维度 | 最低达标 | 加分项 |
-|------|------|------|
-| 平台完整度 | `agents/chat/logs` 三页可用 | 有清晰导航与统一设计语言 |
+### 4.2 部署
+
+将项目部署到公网环境。部署教程参考:[Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)、[如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)。
+
+## 交付物
+
+完成本项目后,你需要提交以下内容:
+
+- [ ] 可访问的线上演示链接
+- [ ] 源码仓库链接(含 README)
+- [ ] PRD 文档
+- [ ] 核心页面截图(智能体管理页、对话页、日志页、后台首页)
+- [ ] 60 秒演示视频(覆盖创建智能体 → 对话 → 查看日志)
+
+README 至少包含:项目简介、架构说明、技术栈、本地启动步骤、环境变量清单、接口说明。
+
+## 评分标准
+
+| 维度 | 基本要求 | 进阶要求 |
+|------|---------|---------|
+| 平台完整度 | agents / chat / logs 三页可用 | 有清晰导航与统一设计语言 |
| 业务闭环 | 可创建智能体并真实对话 | 支持多智能体切换与历史会话 |
-| 数据与追踪 | 消息与调用日志可查询 | 有 token/耗时统计看板 |
+| 数据与追踪 | 消息与调用日志可查询 | 有 token / 耗时统计看板 |
| 权限安全 | 仅登录用户可访问核心接口 | 资源归属校验完善 |
| 工程交付 | 可部署、可演示、README 清晰 | 接入知识库并可解释检索结果 |
-## 提交前最后检查
+## 提交前检查
@@ -189,6 +200,11 @@ flowchart TD
-::: tip 🚀 完成后你会得到什么?
-你将获得一个真正有平台感的 AI 项目,而不只是单点功能 Demo。这会显著提升你在“AI 产品工程化”方向的说服力。
-:::
+## 参考资料
+
+- [UI 设计](../../frontend/2.2-ui-design/)
+- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
+- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
+- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
+- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
+- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)
diff --git a/docs/zh-cn/stage-2/assignments/exam-management-express/index.md b/docs/zh-cn/stage-2/assignments/exam-management-express/index.md
index eb30e4d..b53c933 100644
--- a/docs/zh-cn/stage-2/assignments/exam-management-express/index.md
+++ b/docs/zh-cn/stage-2/assignments/exam-management-express/index.md
@@ -1,12 +1,41 @@
# 在线考试与管理系统开发实战
-这个项目不是单纯的答题页面,而是围绕一份真实 PRD,把一个多角色业务系统从想法推进到可上线产品。
+## 概述
-你会同时看到三件事:
+本实战项目要求你围绕一份真实的 PRD,从零完成一个在线考试与管理系统。这个项目的特别之处在于它包含多个角色(学生和管理员),每个角色看到的页面和能执行的操作不同。你将使用 Express 构建后端,实现完整的考试业务链路。
-- 项目要做成什么
-- 如何基于 PRD 拆解并推进开发
-- 最后应该交付出什么样的效果
+这是 Stage 2 的综合实战环节。多角色权限系统在实际工作中非常常见,掌握这种模式后,你能够应对教培、SaaS、后台管理等各类业务场景。
+
+## 前置知识
+
+在开始本项目之前,你应该已经掌握以下内容:
+
+- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/))
+- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/))
+- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/))
+- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/))
+
+## 学习目标
+
+完成本实战后,你将能够:
+
+1. 阅读并理解一份真实的 PRD,从中提取开发任务清单
+2. 设计多角色系统的权限控制和页面路由
+3. 使用 Express 实现完整的后端 API
+4. 实现考试、提交、自动判分的业务链路
+5. 完成端到端联调,交付一个可演示的业务系统原型
+
+## 项目简介
+
+你要构建的产品是一个在线考试与管理系统,包含三个子系统:
+
+| 子系统 | 职责 |
+|--------|------|
+| **官网前台** | 平台介绍、登录入口 |
+| **学生端** | 考试列表、答题、提交、成绩查看 |
+| **管理后台** | 题库管理、考试管理、提交记录、成绩统计 |
+
+后端使用 Express,需要支持:登录鉴权、角色权限、考试和题库管理、提交流程与自动判分、成绩和统计管理。
::: tip PRD 入口
本项目的需求文档在 GitHub: [查看 PRD](https://github.com/datawhalechina/easy-vibe/blob/main/docs/zh-cn/stage-2/assignments/exam-management-express/PRD.md)
@@ -15,70 +44,32 @@
-## 这个项目到底在做什么?
+## 第一部分:需求分析
-这是一个典型的在线考试与管理系统:
+### 1.1 阅读 PRD
-- 官网前台:负责平台介绍和登录入口
-- 学生端:负责考试列表、答题、提交和成绩查看
-- 管理后台:负责题库、考试、提交记录和成绩统计
+打开 PRD 文档,重点回答以下问题:
-后端需要接住这些关键能力:
+- 系统包含哪几个角色?各自能做什么?
+- 页面清单是否完整?学生端和管理端分别有哪些页面?
+- 支持哪些题型?每种题型的判分逻辑是什么?
+- 考试的完整流程是什么?(发布 → 开始 → 作答 → 提交 → 判分 → 查看成绩)
-- 登录鉴权
-- 角色权限
-- 考试和题库管理
-- 提交流程与自动判分
-- 成绩和统计管理
+::: warning
+如果以上问题没有明确答案,不要开始写代码。需求理解不清楚是导致返工的最常见原因。
+:::
-## 开发过程怎么走?
+### 1.2 确认系统架构
-### 1. 先看 PRD,不要上来就写代码
-
-先确认:
-
-- 角色是不是只收敛到 `student / admin`
-- 页面清单是否完整
-- 题型、提交流程和批改范围是否拍板
-- 接口与数据表是否合理
-
-如果 PRD 没拍板,就先不要写代码。
-
-### 2. 先让 AI 生成“骨架版”
-
-第一轮先生成:
-
-- 登录页
-- 学生考试列表
-- 学生答题页
-- 学生成绩页
-- 后台首页
-- 题库管理页
-- 考试管理页
-- 提交记录页
-- 成绩统计页
-
-先把页面结构、导航和信息架构搭出来。
-
-### 3. 再进入“监工模式”
-
-你要重点盯这几件事:
-
-- 学生和管理员入口有没有分清
-- 登录后权限是不是隔离
-- 开始考试、作答、提交链路是不是闭环
-- 自动判分和人工复核边界是不是清楚
-- 管理端能不能看到真实提交记录和成绩统计
-
-### 4. 最后做联调和上线
+根据 PRD 梳理出系统的整体架构:
```mermaid
flowchart TD
@@ -94,69 +85,15 @@ flowchart TD
submission --> db
```
-只要这条链路能跑通,这个项目就不是课堂作业,而是一套完整的业务系统原型。
+## 第二部分:搭建项目骨架
-## 怎么让 AI 帮你生成?
+### 2.1 生成前端页面
-推荐按模块逐步下指令,而不是一句“帮我做完”。
+提示词参考:
```text
请基于当前 PRD,帮我生成一个在线考试与管理系统的前端骨架。
-要求:
-1. 分成三个入口:www、app、admin
-2. 官网包括:首页、登录入口
-3. 学生端包括:登录、考试列表、答题页、历史成绩
-4. 后台包括:后台首页、题库管理、考试管理、提交记录、成绩统计
-5. 先只生成页面结构和假数据,不接真实接口
-6. 风格要像真实业务系统,不像课堂 demo
-```
-
-然后再一块一块补:
-
-- 登录鉴权
-- 考试接口
-- 提交与判分
-- 题库管理
-- 成绩统计
-
-## 怎么“监工”才有效?
-
-每做完一个模块,至少检查这 5 件事:
-
-| 检查项 | 要看什么 |
-|------|------|
-| 页面是否对 | 页面数量、入口、功能是否符合 PRD |
-| 接口是否对 | 请求参数、返回结构、状态处理是否合理 |
-| 权限是否对 | 学生和管理员权限是否隔离 |
-| 数据是否对 | 题目、提交、成绩、统计是否一致 |
-| 演示是否对 | 是否真的能演示完整考试闭环 |
-
-## 最后的预期效果
-
-做完后,你应该拿到这些交付物:
-
-- 一套可运行的在线考试系统项目
-- 一份同级 PRD 文档
-- 三套入口:`www / app / admin`
-- 登录、题库、考试、提交、成绩、后台管理
-- 一份 README
-- 一个可以演示的线上版本或本地完整运行方案
-
-## 验收标准
-
-| 维度 | 最低达标 |
-|------|------|
-| PRD 对齐 | 页面、功能、数据结构基本符合 PRD |
-| 产品闭环 | 登录、考试、提交、成绩查看可以跑通 |
-| 后台能力 | 题库、考试、提交、成绩统计可以查看 |
-| 工程完整度 | 前端、后端、数据库、判分链路已接通 |
-| 展示能力 | 可以清楚演示“从 PRD 到成品”的过程 |
-
-::: tip 🚀 完成后你会得到什么?
-你得到的不只是几个业务页面,而是一套完整的多角色系统开发样例。后面做教培、后台管理、内容平台项目时,都可以继续复用这套方法。
-:::
-
技术栈要求:
- Next.js App Router
- TypeScript
@@ -181,17 +118,9 @@ flowchart TD
- 注意桌面端和移动端的基本可用性
```
-### 第二步:完善学生答题页
+### 2.2 完善学生答题页
-答题页是学生端最重要的一页,至少要包含这些内容:
-
-- 考试标题、剩余时间、进度提示
-- 当前题目内容与选项
-- 上一题 / 下一题导航
-- 已作答状态提示
-- 提交确认弹窗
-
-你可以继续给 AI IDE 这样的提示:
+答题页是学生端的核心页面,重点完善:
```text
请继续完善学生答题页。
@@ -211,36 +140,34 @@ flowchart TD
- 有空状态和 loading 状态
```
-### 第三步:完善管理员后台
+### 2.3 完善管理员后台
-管理员后台不是越复杂越好,第一版先做三个核心区域:
+管理员后台第一版聚焦三个核心区域:
- **考试管理**:创建考试、设置时长、发布状态
- **题库管理**:新增题目、编辑题目、按题型筛选
- **提交记录**:查看学生提交、分数、时间
-如果你卡住了,可以回头看这些章节:
+### 2.4 验证页面结构
+
+逐项检查:
+
+- [ ] 学生端和管理端入口是否分开
+- [ ] 登录页、考试列表、答题页、成绩页是否完整
+- [ ] 管理端题库、考试管理、提交记录页是否可访问
+- [ ] 学生端和管理端的页面风格有明显区分
+
+### 遇到阻碍?
+
+如果你在前端搭建阶段卡住,可以回顾这些章节:
- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
- [应用后端接口设计与开发](../../backend/2.3-ai-interface-code/)
- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
-
-
-
-
-
+## 第三部分:后端开发
-## 3. 写接口:让 Express 真正接管业务逻辑
-
-这一步,项目才真正进入“系统开发”状态。
-
-### 第四步:完成登录与权限控制
+### 3.1 登录与权限控制
```text
请把我当成 0 基础,帮我完成在线考试系统的登录与权限控制。
@@ -261,19 +188,19 @@ flowchart TD
- 完成后说明如何验证权限是否生效
```
-### 第五步:完成考试与题库管理接口
+### 3.2 考试与题库管理接口
-建议先做这几组接口:
+建议按以下模块实现:
| 模块 | 推荐接口 |
-|------|------|
+|------|----------|
| 考试管理 | `GET /api/exams`、`POST /api/admin/exams`、`PATCH /api/admin/exams/:id` |
| 题库管理 | `GET /api/admin/questions`、`POST /api/admin/questions` |
| 开始考试 | `POST /api/submissions/start` |
| 提交试卷 | `POST /api/submissions/:id/submit` |
| 成绩记录 | `GET /api/student/history`、`GET /api/admin/submissions` |
-如果你想让 AI IDE 一步步带你完成,可以直接这样说:
+提示词参考:
```text
请帮我为在线考试系统设计并实现 Express API。
@@ -295,52 +222,64 @@ flowchart TD
- 说明每个接口如何测试
```
-### 第六步:实现判分逻辑
+### 3.3 判分逻辑
-这一部分很适合练后端思维。
+判分逻辑是考试系统的核心业务规则:
-- 单选题:用户答案与标准答案一致则得分
-- 判断题:同样可以自动判分
-- 简答题:第一版可以先只保存答案,分数为空,状态为 `reviewed = false`
+- **单选题**:用户答案与标准答案一致则得分
+- **判断题**:同样可以自动判分
+- **简答题**:第一版先只保存答案,分数为空,状态为 `reviewed = false`
-如果你想再加一点 AI 能力,也可以让管理员在后台输入“主题 + 难度”,由模型先生成一批候选题,再人工审核后入库。但这属于加分项,不是必须项。
+::: tip 加分项
+如果你想增加 AI 能力,可以让管理员在后台输入"主题 + 难度",由模型先生成一批候选题,再人工审核后入库。但这属于加分项,不是必须的。
+:::
-## 4. 上线与交付:把项目从“做完”变成“可展示”
+## 第四部分:联调与上线
-### 部署建议
+### 4.1 端到端测试
+
+至少验证以下场景:
+
+- 学生登录 → 查看考试列表 → 开始答题 → 提交 → 查看成绩
+- 管理员登录 → 创建考试 → 添加题目 → 发布 → 查看提交记录
+
+### 4.2 部署
- 前端部署到 Vercel / Zeabur
- Express API 部署到 Zeabur / Railway / Render
- 数据库用 Supabase Postgres 或托管 PostgreSQL
-部署前至少检查这些内容:
+部署前检查:
-- 环境变量是否齐全
-- 前后端 API 地址是否正确
-- 登录态是否在生产环境正常工作
-- 管理员账号是否能真实访问后台
-- README 是否包含启动、部署、测试说明
+- [ ] 环境变量是否齐全
+- [ ] 前后端 API 地址是否正确
+- [ ] 登录态在生产环境是否正常
+- [ ] 管理员账号是否能真实访问后台
+- [ ] README 是否包含启动、部署、测试说明
-### 你至少要准备的交付物
+## 交付物
-- 首页截图
-- 学生考试列表截图
-- 学生答题页截图
-- 管理后台截图
-- 60 秒左右演示视频
-- 一份写清楚环境变量和启动方式的 README
+完成本项目后,你需要提交以下内容:
-## 验收标准
+- [ ] 可访问的线上演示链接
+- [ ] 源码仓库链接(含 README)
+- [ ] PRD 文档
+- [ ] 核心页面截图(首页、学生考试列表、答题页、管理后台)
+- [ ] 60 秒演示视频(覆盖学生答题流程和管理员管理流程)
-| 维度 | 最低达标 | 加分项 |
-|------|------|------|
-| 页面完整度 | 学生端和管理端主要页面都可访问 | 页面风格统一,状态清晰,移动端也基本可用 |
+README 至少包含:项目简介、核心页面说明、技术栈、本地启动步骤、环境变量清单。
+
+## 评分标准
+
+| 维度 | 基本要求 | 进阶要求 |
+|------|---------|---------|
+| 页面完整度 | 学生端和管理端主要页面都可访问 | 页面风格统一,移动端基本可用 |
| 业务闭环 | 学生可登录、参加考试、提交并查看成绩 | 管理员可完整创建并发布考试 |
-| 数据正确性 | 提交答案后能写入数据库,客观题能自动判分 | 简答题支持人工复核或 AI 辅助建议 |
-| 权限控制 | 学生与管理员访问边界清晰 | 服务端接口也有角色校验,不只做前端隐藏 |
+| 数据正确性 | 提交答案后能写入数据库,客观题能自动判分 | 简答题支持人工复核或 AI 辅助 |
+| 权限控制 | 学生与管理员访问边界清晰 | 服务端接口也有角色校验 |
| 工程交付 | 项目可运行、可部署、README 清晰 | 有演示视频和测试说明 |
-## 提交前最后检查
+## 提交前检查
@@ -357,8 +296,11 @@ flowchart TD
-::: tip 🚀 完成后你会得到什么?
-如果你把这个项目真正做完,你收获的就不只是“又写了几个页面”,而是第一次完整处理了一个多角色业务系统。
+## 参考资料
-这会让你在后续做教培、SaaS、后台管理、内容平台类项目时,明显更有底气。
-:::
+- [UI 设计](../../frontend/2.2-ui-design/)
+- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
+- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
+- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
+- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
+- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)
diff --git a/docs/zh-cn/stage-2/assignments/modern-landing-page/index.md b/docs/zh-cn/stage-2/assignments/modern-landing-page/index.md
index 2556869..869f82f 100644
--- a/docs/zh-cn/stage-2/assignments/modern-landing-page/index.md
+++ b/docs/zh-cn/stage-2/assignments/modern-landing-page/index.md
@@ -1,12 +1,42 @@
# 现代 AI 生图 SaaS 开发实战
-这个项目不再只是“做一个页面”,而是围绕一份真实 PRD,把一个 AI 生图 SaaS 从想法推进到可上线产品。
+## 概述
-你会同时看到三件事:
+本实战项目要求你围绕一份真实的 PRD(产品需求文档),从零完成一个参考 Midjourney 体验的 AI 生图 SaaS 产品。你将完整经历需求分析、项目拆解、迭代开发、联调上线的全过程。
-- 项目要做成什么
-- 如何基于 PRD 拆解并推进开发
-- 最后应该交付出什么样的效果
+这是 Stage 2 的综合实战环节。在前面几章中,你已经分别学习了前端页面设计、后端接口开发、数据库操作、支付集成等单项技能——这个项目要求你把它们全部串起来,交付一个可运行的产品原型。
+
+## 前置知识
+
+在开始本项目之前,你应该已经掌握以下内容:
+
+- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/))
+- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/))
+- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/))
+- 支付集成([Stripe 收费系统](../../backend/2.7-stripe-payment/))
+- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/))
+
+## 学习目标
+
+完成本实战后,你将能够:
+
+1. 阅读并理解一份真实的 PRD,从中提取开发任务清单
+2. 基于 PRD 拆分模块,制定分步推进计划
+3. 使用 AI 辅助完成前端骨架搭建和后端接口开发
+4. 对每个模块进行验证和迭代优化
+5. 完成端到端联调,将项目从"能跑"推进到"能交付"
+
+## 项目简介
+
+你要构建的产品是一个现代 AI 生图 SaaS 平台,包含三个子系统:
+
+| 子系统 | 职责 |
+|--------|------|
+| **官网前台** | 产品介绍、定价、FAQ、注册转化 |
+| **用户工作台** | Prompt 输入、图片生成、图库、积分、套餐、社区互动 |
+| **后台管理台** | 用户管理、任务管理、支付管理、内容审核、SaaS 指标、系统监控 |
+
+后端需要支持以下核心能力:用户鉴权、图片生成任务、OSS 对象存储、积分与套餐支付、图片社交互动、运营数据监控。
::: tip PRD 入口
本项目的需求文档在 GitHub: [查看 PRD](https://github.com/datawhalechina/easy-vibe/blob/main/docs/zh-cn/stage-2/assignments/modern-landing-page/PRD.md)
@@ -15,78 +45,32 @@
-## 这个项目到底在做什么?
+## 第一部分:需求分析
-这是一个参考 Midjourney 产品体验的现代 AI 生图 SaaS:
+### 1.1 阅读 PRD
-- 官网前台:负责产品介绍、定价、FAQ、注册转化
-- 用户工作台:负责 Prompt 输入、图片生成、图库、积分、套餐、社区互动
-- 后台管理台:负责用户、任务、支付、积分、内容审核、SaaS 指标和系统监控
+打开 PRD 文档,重点回答以下问题:
-同时,后端需要接住这些关键能力:
+- 系统有几个入口?各自覆盖哪些页面?
+- 每个页面的核心功能是什么?
+- 后端包含哪些模块和数据库表?
+- MVP 范围是什么?第一版哪些做,哪些不做?
-- 用户鉴权
-- 图片生成任务
-- OSS 对象存储
-- 积分与套餐支付
-- 图片分享、点赞、评论、转发
-- 留存、转化、API 调用、数据库状态监控
+::: warning
+如果以上问题没有明确答案,不要开始写代码。需求理解不清楚是导致返工的最常见原因。
+:::
-## 开发过程怎么走?
+### 1.2 确认系统架构
-### 1. 先看 PRD,不要上来就写代码
-
-先把这几个问题看清楚:
-
-- 有几个入口:`www / app / admin`
-- 有几个大页面
-- 每个页面的核心功能是什么
-- 后端模块和数据库表有哪些
-- 第一版哪些做,哪些不做
-
-如果 PRD 没拍板,就不要开始开发。
-
-### 2. 先让 AI 生成“骨架版”
-
-第一轮不是要它一次性写完,而是先生成:
-
-- 官网首页
-- 登录注册
-- 生图工作台
-- 历史图库
-- 套餐/积分页
-- 社区广场
-- 后台首页与管理页骨架
-
-这一步的目标是:把信息架构、路由、页面分工先搭出来。
-
-### 3. 再进入“监工模式”
-
-真正难的不是生成第一版,而是持续监工。
-
-你要盯的重点包括:
-
-- 页面结构是不是和 PRD 一致
-- 前台、工作台、后台入口有没有分清
-- 鉴权是不是做对了
-- 普通用户和管理员权限有没有串
-- 积分、支付、生成任务的状态流是不是闭环
-- OSS 上传、数据库写入、任务状态更新是不是一致
-- 后台有没有 SaaS 指标和系统监控
-
-可以把 AI 当成执行者,但你自己要做“产品经理 + 技术负责人 + QA”。
-
-### 4. 最后做联调和上线
-
-最后一轮不是补页面,而是把完整链路跑通:
+根据 PRD 中的描述,梳理出系统的整体架构:
```mermaid
flowchart TD
@@ -103,13 +87,15 @@ flowchart TD
admin --> observability["API / DB / Provider 监控"]
```
-只要这条链路能跑通,这个项目就不是“Demo 页面”,而是一个完整产品原型。
+建议你用自己的话把架构图画一遍,确认你对系统的理解是完整的。
-## 怎么让 AI 帮你生成?
+## 第二部分:搭建项目骨架
-推荐按模块逐步下指令,而不是一句“帮我做完”。
+### 2.1 生成前端页面
-例如先让它生成三套前端骨架:
+使用 AI 先生成所有页面的基本结构和假数据。这一步的目标是搭出信息架构和路由,不需要接真实接口。
+
+提示词参考:
```text
请基于当前 PRD,帮我生成一个现代 AI 生图 SaaS 的前端骨架。
@@ -123,52 +109,103 @@ flowchart TD
6. 风格参考 Midjourney,简洁、现代、带产品感
```
-然后再一块一块补:
+### 2.2 验证页面结构
-- 鉴权
-- 数据库
-- OSS 上传
-- 支付
-- 积分系统
-- 社区互动
-- 后台统计和监控
+骨架生成后,逐项检查:
-## 怎么“监工”才有效?
+- [ ] 三个入口的路由是否独立(`/`、`/app`、`/admin`)
+- [ ] 页面数量是否与 PRD 一致
+- [ ] 每个页面是否可以正常访问和导航
+- [ ] 假数据是否展示了基本的 UI 状态(列表、空状态、表单等)
-每做完一个模块,至少检查这 5 件事:
+## 第三部分:迭代开发
-| 检查项 | 要看什么 |
-|------|------|
-| 页面是否对 | 页面数量、入口、功能是否符合 PRD |
-| 接口是否对 | 请求参数、返回结构、状态处理是否合理 |
-| 权限是否对 | 普通用户和管理员是否隔离 |
-| 数据是否对 | 数据库、OSS、支付、积分是否一致 |
-| 演示是否对 | 是否真的能给别人完整演示一条链路 |
+### 3.1 按模块推进
-如果发现 AI 写偏了,不要整页推翻,直接让它改具体模块。
+在骨架的基础上,按以下顺序逐模块补充功能:
-## 最后的预期效果
+1. **鉴权**:注册、登录、角色区分
+2. **数据库**:数据表创建、读写接口
+3. **核心业务**:图片生成任务、结果存储
+4. **OSS 存储**:图片上传与访问
+5. **支付**:套餐、积分、Stripe 集成
+6. **社交互动**:分享、点赞、评论
+7. **后台管理**:用户管理、任务管理、内容审核
+8. **数据监控**:SaaS 指标看板、系统监控
-做完后,你应该拿到这些交付物:
+每完成一个模块,使用下表进行自检:
-- 一套可运行的 AI 生图 SaaS 项目
-- 一份同级 PRD 文档
-- 三套入口:`www / app / admin`
-- 基础鉴权、支付、积分、OSS、社区互动、后台管理
-- SaaS 指标看板和系统监控页
-- 一份 README
-- 一个可以演示的线上版本或本地完整运行方案
+| 检查项 | 验证方法 |
+|--------|----------|
+| 页面一致性 | 页面数量、入口、功能是否符合 PRD |
+| 接口正确性 | 请求参数、返回结构、状态处理是否合理 |
+| 权限隔离 | 普通用户和管理员是否互相隔离 |
+| 数据一致性 | 数据库、OSS、支付、积分是否对得上 |
+| 可演示性 | 是否能给别人完整演示一条业务链路 |
-## 验收标准
-
-| 维度 | 最低达标 |
-|------|------|
-| PRD 对齐 | 页面、功能、数据结构基本符合 PRD |
-| 产品闭环 | 注册、购买积分、生成图片、查看历史、分享互动可以跑通 |
-| 后台能力 | 用户、任务、支付、内容、积分、监控可以查看 |
-| 工程完整度 | 前端、后端、数据库、OSS、支付链路都已接通 |
-| 展示能力 | 可以清楚演示“从 PRD 到成品”的完整过程 |
-
-::: tip 🚀 做完这个项目,你会得到什么?
-你得到的不只是一个页面,也不只是一个小功能,而是一套完整的 AI SaaS 产品开发过程样例。后面再做别的项目,你可以继续沿用这套“先 PRD、再生成、再监工、再联调上线”的方法。
+::: tip
+如果发现 AI 生成的内容偏离了 PRD,不要整页推翻重来,直接让它修改具体模块即可。
:::
+
+### 3.2 角色与分工
+
+在迭代过程中,你需要同时扮演三个角色:
+
+- **产品经理**:确认每个模块的功能是否符合 PRD
+- **技术负责人**:确认实现方案是否合理
+- **测试工程师**:确认功能是否跑得通
+
+## 第四部分:联调与上线
+
+### 4.1 端到端测试
+
+最后阶段的重点不是补新页面,而是把完整业务链路跑通。至少验证以下场景:
+
+- 注册 → 购买积分 → 生成图片 → 查看历史 → 分享互动
+- 管理员登录 → 查看用户数据 → 查看任务统计 → 查看系统监控
+
+### 4.2 部署
+
+将项目部署到公网环境,确保:
+
+- 环境变量配置完整
+- 登录回调地址正确
+- 支付回调地址正确
+- 页面无缺失的 loading、空状态、错误提示
+
+部署教程参考:[Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)、[如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)。
+
+## 交付物
+
+完成本项目后,你需要提交以下内容:
+
+- [ ] 可访问的线上演示链接
+- [ ] 源码仓库链接(含 README)
+- [ ] PRD 文档
+- [ ] 核心页面截图(官网首页、生图工作台、图库、套餐页、后台首页)
+- [ ] 60 秒演示视频(覆盖注册 → 生成 → 查看 → 后台管理)
+
+README 至少包含:项目简介、核心页面说明、技术栈、本地启动步骤、环境变量清单。
+
+## 评分标准
+
+| 维度 | 基本要求 | 进阶要求 |
+|------|---------|---------|
+| PRD 对齐 | 页面、功能、数据结构基本符合 PRD | 能清晰说明每个设计决策与 PRD 的对应关系 |
+| 产品闭环 | 注册 → 购买积分 → 生成图片 → 查看历史 → 分享互动可跑通 | 支付状态、积分余额、生成次数数据一致 |
+| 后台能力 | 用户、任务、支付、内容管理可查看 | SaaS 指标看板和系统监控页完整可用 |
+| 工程完整度 | 前端、后端、数据库、OSS、支付链路已接通 | 有错误处理、空状态、loading 状态 |
+| 交付质量 | 可部署、可运行 | README 清楚、演示视频结构完整 |
+
+## 参考资料
+
+- [UI 设计](../../frontend/2.2-ui-design/)
+- [参考 UI 设计规范设计页面和按钮](../../frontend/2.3-multi-product-ui/)
+- [用 LLM 和 Skills 让界面变好看](../../frontend/2.4-llm-skills-beautiful/)
+- [从设计原型到项目代码](../../frontend/2.6-design-to-code/)
+- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
+- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
+- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
+- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
+- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)
+- [如何集成 Stripe 等收费系统](../../backend/2.7-stripe-payment/)
diff --git a/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/index.md b/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/index.md
index 7350b8f..8f02a32 100644
--- a/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/index.md
+++ b/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/index.md
@@ -1,12 +1,40 @@
# Spring Boot 电影推荐系统开发实战
-这个项目不是“做一个电影列表页”,而是围绕一份真实 PRD,把一个带推荐能力的内容产品从想法推进到可上线原型。
+## 概述
-你会同时看到三件事:
+本实战项目要求你围绕一份真实的 PRD,使用 Spring Boot 完成一个带推荐能力的电影网站。这个项目的核心挑战在于:它不是简单的增删改查,而是需要你思考"用户行为如何影响推荐结果"以及"推荐如何可解释"。
-- 项目要做成什么
-- 如何基于 PRD 拆解并推进开发
-- 最后应该交付出什么样的效果
+这是 Stage 2 的综合实战环节。你将第一次接触"内容 + 行为 + 推荐"型产品的开发模式,这种模式在电商、内容平台、个性化 Feed 等场景中非常常见。
+
+## 前置知识
+
+在开始本项目之前,你应该已经掌握以下内容:
+
+- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/))
+- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/))
+- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/))
+- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/))
+
+## 学习目标
+
+完成本实战后,你将能够:
+
+1. 阅读 PRD 并从中提取推荐系统的开发任务清单
+2. 使用 Spring Boot 搭建后端项目并实现 RESTful API
+3. 设计"用户行为 → 推荐"的完整数据链路
+4. 实现可解释的推荐逻辑
+5. 完成端到端联调,交付可演示的产品原型
+
+## 项目简介
+
+你要构建的产品是一个带推荐能力的电影网站:
+
+| 功能 | 描述 |
+|------|------|
+| **浏览与搜索** | 用户可以浏览和搜索电影 |
+| **评分与收藏** | 用户可以给电影评分、添加收藏 |
+| **个性化推荐** | 系统根据用户行为给出推荐结果 |
+| **管理后台** | 管理员维护电影数据、查看推荐效果 |
::: tip PRD 入口
本项目的需求文档在 GitHub: [查看 PRD](https://github.com/datawhalechina/easy-vibe/blob/main/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/PRD.md)
@@ -15,54 +43,30 @@
-## 这个项目到底在做什么?
+## 第一部分:需求分析
-这是一个带推荐能力的电影网站:
+### 1.1 阅读 PRD
-- 用户可以浏览、搜索、评分、收藏电影
-- 系统根据用户行为给出推荐结果
-- 管理员可以维护电影数据和查看推荐效果
+打开 PRD 文档,重点回答以下问题:
-## 开发过程怎么走?
+- 推荐策略是什么?第一版是否使用可解释版本(如基于评分相似度)?
+- 用户行为数据要存哪些?(评分、收藏、浏览记录等)
+- 管理员需要看哪些推荐效果指标?
+- 页面清单是否完整?
-### 1. 先看 PRD,不要上来就写代码
+::: warning
+如果以上问题没有明确答案,不要开始写代码。需求理解不清楚是导致返工的最常见原因。
+:::
-先确认:
-
-- 推荐策略是不是先用可解释版本
-- 页面和后台范围是否拍板
-- 用户行为数据要存哪些
-- 管理员要看哪些推荐效果指标
-
-### 2. 先让 AI 生成“骨架版”
-
-第一轮先生成:
-
-- 首页
-- 电影列表页
-- 电影详情页
-- 推荐页
-- 个人中心
-- 管理后台
-
-### 3. 再进入“监工模式”
-
-你要重点盯这几件事:
-
-- 列表、详情、评分、收藏是不是闭环
-- 推荐结果是不是和行为数据联动
-- 推荐理由是不是可解释
-- 后台电影数据和用户行为是不是能查看
-
-### 4. 最后做联调和上线
+### 1.2 确认系统架构
```mermaid
flowchart TD
@@ -75,7 +79,11 @@ flowchart TD
admin["后台管理"] --> db
```
-## 怎么让 AI 帮你生成?
+## 第二部分:搭建项目骨架
+
+### 2.1 生成前端页面
+
+提示词参考:
```text
请基于当前 PRD,帮我生成一个 Spring Boot 电影推荐系统的前端骨架。
@@ -86,34 +94,69 @@ flowchart TD
3. 风格要像真实内容产品,而不是课堂 demo
```
-## 怎么“监工”才有效?
+### 2.2 验证页面结构
-| 检查项 | 要看什么 |
-|------|------|
-| 页面是否对 | 页面数量、功能是否符合 PRD |
-| 接口是否对 | movies、ratings、favorites、recommendations 是否闭环 |
-| 数据是否对 | 用户行为是否影响推荐结果 |
-| 推荐是否对 | 推荐理由是否清晰、结果是否可解释 |
-| 演示是否对 | 是否能演示“浏览 -> 评分 -> 推荐变化” |
+逐项检查:
-## 最后的预期效果
+- [ ] 电影列表页支持搜索和筛选
+- [ ] 电影详情页包含评分和收藏按钮
+- [ ] 推荐页能展示推荐结果和推荐理由
+- [ ] 管理后台能展示电影数据和推荐效果
-- 一套可运行的电影推荐系统
-- 一份同级 PRD 文档
-- 浏览、评分、收藏、推荐、后台管理
-- Spring Boot 后端与推荐逻辑
-- README 和演示方案
+## 第三部分:迭代开发
-## 验收标准
+### 3.1 按模块推进
-| 维度 | 最低达标 |
-|------|------|
-| PRD 对齐 | 页面、功能、数据结构基本符合 PRD |
-| 产品闭环 | 浏览、评分、收藏、推荐可以跑通 |
-| 后台能力 | 电影数据和推荐效果可查看 |
-| 工程完整度 | 前端、后端、数据库、推荐接口已接通 |
-| 展示能力 | 可以清楚演示“从 PRD 到成品”的过程 |
+1. **Spring Boot 项目搭建**:项目结构、数据库配置、基础 CRUD
+2. **电影数据管理**:电影列表、详情、搜索接口
+3. **用户行为**:评分、收藏接口,行为数据写入
+4. **推荐逻辑**:基于用户行为的推荐算法实现
+5. **推荐展示**:推荐结果展示,包含推荐理由
+6. **管理后台**:电影数据维护、推荐效果查看
-::: tip 🚀 完成后你会得到什么?
-你得到的不只是一个电影站,而是一套“内容 + 行为 + 推荐”型产品的开发样例。
-:::
+### 3.2 模块自检
+
+| 检查项 | 验证方法 |
+|--------|----------|
+| 基础功能 | 列表、详情、评分、收藏是否闭环 |
+| 推荐联动 | 用户行为是否影响推荐结果 |
+| 推荐可解释性 | 用户能理解为什么被推荐这些电影 |
+| 后台数据 | 管理员能查看电影数据和推荐效果 |
+
+## 第四部分:联调与上线
+
+### 4.1 端到端测试
+
+至少验证以下场景:
+
+- 浏览电影 → 评分 → 收藏 → 查看推荐页,确认推荐结果发生变化
+- 管理员登录 → 添加电影 → 查看推荐效果统计
+
+## 交付物
+
+完成本项目后,你需要提交以下内容:
+
+- [ ] 可访问的线上演示链接
+- [ ] 源码仓库链接(含 README)
+- [ ] PRD 文档
+- [ ] 核心页面截图(电影列表、电影详情、推荐页、管理后台)
+- [ ] 60 秒演示视频
+
+## 评分标准
+
+| 维度 | 基本要求 | 进阶要求 |
+|------|---------|---------|
+| PRD 对齐 | 页面、功能、数据结构基本符合 PRD | 能清晰说明设计决策 |
+| 产品闭环 | 浏览 → 评分 → 收藏 → 推荐可跑通 | 评分行为明显影响推荐结果 |
+| 推荐质量 | 推荐结果合理、推荐理由可解释 | 支持多种推荐策略 |
+| 后台能力 | 电影数据和推荐效果可查看 | 有推荐准确率等统计指标 |
+| 工程完整度 | 前端、Spring Boot 后端、数据库链路已接通 | 推荐接口有缓存或性能优化 |
+
+## 参考资料
+
+- [UI 设计](../../frontend/2.2-ui-design/)
+- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
+- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
+- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
+- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
+- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)
diff --git a/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/index.md b/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/index.md
index 7139d8e..0a4963e 100644
--- a/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/index.md
+++ b/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/index.md
@@ -1,12 +1,48 @@
# 生鲜电商微服务系统开发实战
-这个项目不是“做一个买菜网站”,而是围绕一份真实 PRD,把一个微服务电商系统从想法推进到可运行原型。
+## 概述
-你会同时看到三件事:
+本实战项目要求你围绕一份真实的 PRD,从零完成一个生鲜电商微服务系统。与前面的单服务项目不同,这个项目的后端按业务拆分成多个独立服务,通过 API 网关统一对外。你将学习如何设计服务边界、如何处理跨服务的数据一致性问题。
-- 项目要做成什么
-- 如何基于 PRD 拆解并推进开发
-- 最后应该交付出什么样的效果
+这是 Stage 2 的综合实战环节。微服务架构在实际工作中非常常见,掌握服务拆分和网关路由的基本思路后,你能够应对更复杂的后端系统设计。
+
+## 前置知识
+
+在开始本项目之前,你应该已经掌握以下内容:
+
+- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/))
+- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/))
+- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/))
+- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/))
+
+## 学习目标
+
+完成本实战后,你将能够:
+
+1. 阅读 PRD 并提取微服务系统的开发任务清单
+2. 按业务领域拆分服务边界(鉴权、商品、库存、订单)
+3. 设计和实现 API 网关路由
+4. 处理库存扣减和订单一致性等跨服务问题
+5. 完成端到端联调,交付可演示的微服务原型
+
+## 项目简介
+
+你要构建的产品是一个生鲜电商微服务系统:
+
+| 子系统 | 职责 |
+|--------|------|
+| **用户端** | 浏览商品、下单、查看订单 |
+| **管理端** | 商品管理、库存管理、订单管理 |
+
+后端按业务拆分为以下服务:
+
+| 服务 | 职责 |
+|------|------|
+| **API Gateway** | 统一入口、路由转发、鉴权校验 |
+| **Auth Service** | 用户注册、登录、JWT 颁发 |
+| **Catalog Service** | 商品信息管理 |
+| **Inventory Service** | 库存数量管理 |
+| **Order Service** | 订单创建、状态管理 |
::: tip PRD 入口
本项目的需求文档在 GitHub: [查看 PRD](https://github.com/datawhalechina/easy-vibe/blob/main/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/PRD.md)
@@ -15,53 +51,30 @@
-## 这个项目到底在做什么?
+## 第一部分:需求分析
-这是一个生鲜电商微服务系统:
+### 1.1 阅读 PRD
-- 用户端负责浏览商品、下单、查看订单
-- 管理端负责商品、库存和订单管理
-- 后端按业务拆成网关、鉴权、商品、库存、订单服务
+打开 PRD 文档,重点回答以下问题:
-## 开发过程怎么走?
+- 服务如何拆分?每个服务的职责边界是什么?
+- 前台和管理端分别有哪些页面?
+- 下单后库存扣减的策略是什么?成功 / 失败 / 超时各怎么处理?
+- 第一版哪些复杂能力(如分布式事务、消息队列)先不做?
-### 1. 先看 PRD,不要上来就写代码
+::: warning
+如果以上问题没有明确答案,不要开始写代码。需求理解不清楚是导致返工的最常见原因。
+:::
-先确认:
-
-- 服务拆分是否拍板
-- 前台和管理端页面是否清楚
-- 下单、库存扣减和补偿策略是否明确
-- 第一版哪些复杂能力先不做
-
-### 2. 先让 AI 生成“骨架版”
-
-第一轮先生成:
-
-- 用户端首页、商品页、购物车、订单页
-- 管理端商品、库存、订单管理页
-- API Gateway
-- auth、catalog、inventory、order 四个服务骨架
-
-### 3. 再进入“监工模式”
-
-你要重点盯这几件事:
-
-- 网关路由是否正确
-- JWT 和角色权限是否正确
-- 商品和库存数据是否一致
-- 下单后库存和订单状态是否闭环
-- 失败补偿是否真的能回滚
-
-### 4. 最后做联调和上线
+### 1.2 确认系统架构
```mermaid
flowchart TD
@@ -74,7 +87,11 @@ flowchart TD
order --> inventory
```
-## 怎么让 AI 帮你生成?
+## 第二部分:搭建项目骨架
+
+### 2.1 生成项目结构
+
+提示词参考:
```text
请基于当前 PRD,帮我生成一个生鲜电商微服务系统的项目骨架。
@@ -86,34 +103,70 @@ flowchart TD
4. 先不接真实数据库和支付
```
-## 怎么“监工”才有效?
+### 2.2 验证项目结构
-| 检查项 | 要看什么 |
-|------|------|
-| 页面是否对 | 页面数量、入口、功能是否符合 PRD |
-| 接口是否对 | catalog、inventory、orders 是否闭环 |
-| 权限是否对 | 用户与管理员权限是否隔离 |
-| 数据是否对 | 商品、库存、订单状态是否一致 |
-| 演示是否对 | 是否能演示“浏览 -> 下单 -> 查单 -> 管理库存” |
+逐项检查:
-## 最后的预期效果
+- [ ] 五个服务目录结构清晰
+- [ ] API Gateway 可以启动并转发请求
+- [ ] 各服务健康检查接口可用
+- [ ] 前端用户端和管理端页面可访问
-- 一套可运行的生鲜电商微服务系统
-- 一份同级 PRD 文档
-- 用户端、管理端、网关和 4 个核心服务
-- JWT 鉴权、库存扣减、订单管理
-- README 和演示方案
+## 第三部分:迭代开发
-## 验收标准
+### 3.1 按模块推进
-| 维度 | 最低达标 |
-|------|------|
-| PRD 对齐 | 页面、功能、数据结构基本符合 PRD |
-| 产品闭环 | 浏览、下单、库存、查单可以跑通 |
-| 后台能力 | 商品、库存、订单管理可以查看 |
-| 工程完整度 | 前端、网关、服务、数据库链路已接通 |
-| 展示能力 | 可以清楚演示“从 PRD 到成品”的过程 |
+1. **API Gateway**:路由配置、JWT 校验中间件
+2. **Auth Service**:注册、登录、JWT 颁发
+3. **Catalog Service**:商品 CRUD、列表查询
+4. **Inventory Service**:库存查询、库存扣减
+5. **Order Service**:订单创建、状态流转、库存联动
+6. **管理端**:商品管理、库存管理、订单管理
-::: tip 🚀 完成后你会得到什么?
-你得到的不只是一个电商练习题,而是一套微服务项目的开发样例。后面再做复杂后端系统时,这会非常有用。
-:::
+### 3.2 模块自检
+
+| 检查项 | 验证方法 |
+|--------|----------|
+| 网关路由 | 各服务接口是否通过网关正确转发 |
+| 权限隔离 | 用户端和管理端接口是否隔离 |
+| 数据一致 | 商品和库存数据是否同步 |
+| 交易闭环 | 下单后库存扣减、订单状态是否一致 |
+| 失败处理 | 库存不足或超时时是否有补偿机制 |
+
+## 第四部分:联调与上线
+
+### 4.1 端到端测试
+
+至少验证以下场景:
+
+- 浏览商品 → 加入购物车 → 下单 → 查看订单
+- 管理员 → 添加商品 → 更新库存 → 查看订单
+
+## 交付物
+
+完成本项目后,你需要提交以下内容:
+
+- [ ] 可访问的线上演示链接
+- [ ] 源码仓库链接(含 README)
+- [ ] PRD 文档
+- [ ] 核心页面截图(商品列表、下单页、订单页、管理后台)
+- [ ] 60 秒演示视频
+
+## 评分标准
+
+| 维度 | 基本要求 | 进阶要求 |
+|------|---------|---------|
+| PRD 对齐 | 页面、功能、服务拆分基本符合 PRD | 能清晰说明服务拆分的理由 |
+| 产品闭环 | 浏览 → 下单 → 库存扣减 → 查看订单可跑通 | 订单超时或库存不足有补偿机制 |
+| 服务架构 | 各服务可独立启动,通过网关统一访问 | 服务间通信有错误处理和重试 |
+| 后台能力 | 商品、库存、订单管理可操作 | 管理端有数据统计 |
+| 工程完整度 | 前端、网关、服务、数据库链路已接通 | 有 Docker Compose 或类似编排 |
+
+## 参考资料
+
+- [UI 设计](../../frontend/2.2-ui-design/)
+- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
+- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
+- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
+- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
+- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)
diff --git a/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/index.md b/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/index.md
index 6803029..017f5c9 100644
--- a/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/index.md
+++ b/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/index.md
@@ -1,12 +1,40 @@
# Go 交通数据分析平台开发实战
-这个项目不是“写几个 Go 接口”,而是围绕一份真实 PRD,把一个数据接入、聚合、告警、可视化的产品原型推进出来。
+## 概述
-你会同时看到三件事:
+本实战项目要求你围绕一份真实的 PRD,使用 Go 完成一个交通数据分析平台。这个项目的方向与前面的增删改查系统不同——你需要构建一条"数据接入 → 聚合 → 告警 → 可视化"的完整数据链路。这种数据产品在 IoT、监控、运营分析等场景中非常常见。
-- 项目要做成什么
-- 如何基于 PRD 拆解并推进开发
-- 最后应该交付出什么样的效果
+这是 Stage 2 的综合实战环节,也是你第一次接触 Go 语言。不用担心,有了前面 JavaScript / TypeScript 的基础,学习 Go 并不难——重点是理解数据链路的设计思路。
+
+## 前置知识
+
+在开始本项目之前,你应该已经掌握以下内容:
+
+- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/))
+- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/))
+- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/))
+- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/))
+
+## 学习目标
+
+完成本实战后,你将能够:
+
+1. 阅读 PRD 并提取数据产品的开发任务清单
+2. 使用 Go(Gin 或 Fiber)搭建后端 API 服务
+3. 设计数据接入、窗口聚合和告警的完整链路
+4. 让后端数据和前端看板保持一致
+5. 完成端到端联调,交付可演示的数据产品原型
+
+## 项目简介
+
+你要构建的产品是一个 Go 交通数据分析平台:
+
+| 模块 | 职责 |
+|------|------|
+| **数据接入** | 接收原始交通事件并入库 |
+| **数据聚合** | 按时间窗口计算趋势和拥堵指标 |
+| **告警** | 基于规则生成告警记录 |
+| **看板展示** | 在前端展示趋势图、排行榜和告警列表 |
::: tip PRD 入口
本项目的需求文档在 GitHub: [查看 PRD](https://github.com/datawhalechina/easy-vibe/blob/main/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/PRD.md)
@@ -15,55 +43,30 @@
-## 这个项目到底在做什么?
+## 第一部分:需求分析
-这是一个 Go 交通数据分析平台:
+### 1.1 阅读 PRD
-- 接收原始交通事件
-- 做窗口聚合
-- 计算趋势和拥堵指标
-- 生成告警
-- 在前端看板中展示结果
+打开 PRD 文档,重点回答以下问题:
-## 开发过程怎么走?
+- 数据来源是什么?字段有哪些?
+- 核心指标的定义是什么?(比如"拥堵"的具体标准)
+- 告警规则是什么?第一版是否先收敛到简单规则?
+- 看板包含哪些页面和图表?
-### 1. 先看 PRD,不要上来就写代码
+::: warning
+如果以上问题没有明确答案,不要开始写代码。需求理解不清楚是导致返工的最常见原因。
+:::
-先确认:
-
-- 数据来源和字段是否拍板
-- 指标口径是否清楚
-- 告警规则是否先收敛到简单版本
-- 看板页面范围是否合理
-
-### 2. 先让 AI 生成“骨架版”
-
-第一轮先生成:
-
-- Go API 服务骨架
-- 数据接入接口
-- 聚合任务骨架
-- 总览看板、趋势页、告警页
-
-### 3. 再进入“监工模式”
-
-你要重点盯这几件事:
-
-- 原始数据是否正确入库
-- 聚合口径是否一致
-- 告警规则是否符合预期
-- 看板展示和后端数据是否一致
-- API 是否有统一返回结构和错误处理
-
-### 4. 最后做联调和上线
+### 1.2 确认数据链路
```mermaid
flowchart TD
@@ -75,7 +78,11 @@ flowchart TD
alert --> dashboard
```
-## 怎么让 AI 帮你生成?
+## 第二部分:搭建项目骨架
+
+### 2.1 生成 Go API 服务
+
+提示词参考:
```text
请基于当前 PRD,帮我生成一个 Go 交通数据分析平台骨架。
@@ -88,33 +95,69 @@ flowchart TD
5. 先不做真实复杂分析,只做可运行结构
```
-## 怎么“监工”才有效?
+### 2.2 验证项目结构
-| 检查项 | 要看什么 |
-|------|------|
-| 接口是否对 | ingest、dashboard、alerts 是否闭环 |
-| 数据是否对 | 原始表、聚合表、告警表是否一致 |
-| 指标是否对 | 趋势、排名、告警口径是否合理 |
-| 页面是否对 | 看板展示和后端结果是否对齐 |
-| 演示是否对 | 是否能演示“接入 -> 聚合 -> 告警 -> 展示” |
+逐项检查:
-## 最后的预期效果
+- [ ] Go 服务可以正常启动
+- [ ] 数据接入接口可接收并存储数据
+- [ ] 聚合任务框架已搭好
+- [ ] 前端看板页面可展示基本图表
-- 一套可运行的 Go 数据分析平台
-- 一份同级 PRD 文档
-- 数据接入、聚合、告警、看板展示
-- README 和演示方案
+## 第三部分:迭代开发
-## 验收标准
+### 3.1 按模块推进
-| 维度 | 最低达标 |
-|------|------|
-| PRD 对齐 | 页面、功能、数据结构基本符合 PRD |
-| 产品闭环 | 接入、聚合、告警、看板可以跑通 |
-| 分析能力 | 趋势、排行、告警三个核心模块可用 |
-| 工程完整度 | Go API、数据库、前端看板链路已接通 |
-| 展示能力 | 可以清楚演示“从 PRD 到成品”的过程 |
+1. **数据接入 API**:接收原始交通事件,写入数据库
+2. **数据聚合**:按时间窗口聚合,计算趋势和拥堵指标
+3. **告警规则**:基于阈值生成告警记录
+4. **看板接口**:提供趋势数据、排行数据、告警列表
+5. **前端看板**:趋势图、排行榜、告警列表页面
-::: tip 🚀 完成后你会得到什么?
-你得到的不只是一个接口项目,而是一套“数据接入 + 数据产品”型项目的开发样例。
-:::
+### 3.2 模块自检
+
+| 检查项 | 验证方法 |
+|--------|----------|
+| 数据接入 | 原始数据是否正确入库 |
+| 聚合口径 | 趋势、排名指标的计算逻辑是否一致 |
+| 告警规则 | 告警触发条件是否符合预期 |
+| 数据一致性 | 看板展示和后端数据是否对得上 |
+| API 规范 | 是否有统一返回结构和错误处理 |
+
+## 第四部分:联调与上线
+
+### 4.1 端到端测试
+
+至少验证以下场景:
+
+- 接入一批测试数据 → 聚合任务执行 → 看板展示更新
+- 触发告警条件 → 告警记录生成 → 告警页面显示
+
+## 交付物
+
+完成本项目后,你需要提交以下内容:
+
+- [ ] 可访问的线上演示链接
+- [ ] 源码仓库链接(含 README)
+- [ ] PRD 文档
+- [ ] 核心页面截图(数据接入演示、趋势看板、告警列表)
+- [ ] 60 秒演示视频
+
+## 评分标准
+
+| 维度 | 基本要求 | 进阶要求 |
+|------|---------|---------|
+| PRD 对齐 | 功能和数据结构基本符合 PRD | 能清晰说明指标口径和聚合逻辑 |
+| 数据链路 | 接入 → 聚合 → 告警 → 看板可跑通 | 聚合任务支持增量更新 |
+| 分析能力 | 趋势、排行、告警三个模块可用 | 指标可配置、告警规则可自定义 |
+| 前端展示 | 看板能展示基本图表 | 图表支持时间范围筛选 |
+| 工程完整度 | Go API、数据库、前端链路已接通 | API 有统一错误处理和日志 |
+
+## 参考资料
+
+- [UI 设计](../../frontend/2.2-ui-design/)
+- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
+- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
+- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
+- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
+- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)
diff --git a/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/index.md b/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/index.md
index 6aab8f7..249278b 100644
--- a/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/index.md
+++ b/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/index.md
@@ -1,12 +1,40 @@
# 智能旅游规划 Agent 平台开发实战
-这个项目不是“做一个会聊天的旅行助手”,而是围绕一份真实 PRD,把一个可执行的旅行规划产品从想法推进到可上线原型。
+## 概述
-你会同时看到三件事:
+本实战项目要求你围绕一份真实的 PRD,从零完成一个智能旅游规划 Agent 平台。你将构建一个能接收结构化输入、生成每日行程、支持保存和重用的完整 AI 产品——不只是聊天机器人,而是一个有任务管理能力的产品。
-- 项目要做成什么
-- 如何基于 PRD 拆解并推进开发
-- 最后应该交付出什么样的效果
+这是 Stage 2 的综合实战环节。这个项目的核心挑战在于:如何让 AI 生成结构化、可用的行程规划,而不是一大段不可操作的文字。
+
+## 前置知识
+
+在开始本项目之前,你应该已经掌握以下内容:
+
+- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/))
+- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/))
+- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/))
+- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/))
+
+## 学习目标
+
+完成本实战后,你将能够:
+
+1. 阅读 PRD 并从中提取 Agent 平台的开发任务清单
+2. 设计结构化的输入表单和结构化的输出格式
+3. 实现 Agent 编排层,处理用户输入、模型调用和结果存储
+4. 构建"生成 → 保存 → 重用"的业务闭环
+5. 完成端到端联调,交付可演示的 AI 产品原型
+
+## 项目简介
+
+你要构建的产品是一个智能旅游规划 Agent 平台:
+
+| 功能 | 描述 |
+|------|------|
+| **行程规划** | 用户输入出发地、目的地、日期、预算和偏好,系统生成每日行程 |
+| **预算拆分** | 行程结果包含预算分配和建议 |
+| **历史管理** | 用户可以保存历史计划、再次生成、导出 |
+| **管理后台** | 管理员查看热门目的地、失败任务和用户反馈 |
::: tip PRD 入口
本项目的需求文档在 GitHub: [查看 PRD](https://github.com/datawhalechina/easy-vibe/blob/main/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/PRD.md)
@@ -15,55 +43,30 @@
-## 这个项目到底在做什么?
+## 第一部分:需求分析
-这是一个旅行规划 Agent 平台:
+### 1.1 阅读 PRD
-- 用户输入出发地、目的地、日期、预算和偏好
-- 系统生成每日行程、预算拆分和建议
-- 用户可以保存历史计划、再次生成、导出
-- 管理员可以查看热门目的地、失败任务和反馈
+打开 PRD 文档,重点回答以下问题:
-## 开发过程怎么走?
+- 第一版是否只做单目的地?
+- 行程输出是否必须结构化?结构是什么?
+- 导出能力做多深?(分享链接 / PDF / 图片)
+- 后台统计和任务日志的范围是什么?
-### 1. 先看 PRD,不要上来就写代码
+::: warning
+如果以上问题没有明确答案,不要开始写代码。需求理解不清楚是导致返工的最常见原因。
+:::
-先确认:
-
-- 第一版是否只做单目的地
-- 行程输出是否必须结构化
-- 导出能力做多深
-- 后台统计和任务日志范围是否清楚
-
-### 2. 先让 AI 生成“骨架版”
-
-第一轮先生成:
-
-- 首页
-- 规划页
-- 行程详情页
-- 历史记录页
-- 管理后台页
-
-### 3. 再进入“监工模式”
-
-你要重点盯这几件事:
-
-- 输入表单字段是否和 PRD 一致
-- 行程输出是否真的结构化
-- 预算、节奏和每日活动是否合理
-- 历史计划和重生成是否闭环
-- 失败任务有没有被记录
-
-### 4. 最后做联调和上线
+### 1.2 确认系统架构
```mermaid
flowchart TD
@@ -75,7 +78,11 @@ flowchart TD
db --> admin["后台统计与日志"]
```
-## 怎么让 AI 帮你生成?
+## 第二部分:搭建项目骨架
+
+### 2.1 生成前端页面
+
+提示词参考:
```text
请基于当前 PRD,帮我生成一个智能旅游规划 Agent 平台的前端骨架。
@@ -87,34 +94,71 @@ flowchart TD
4. 风格要像现代 AI 产品
```
-## 怎么“监工”才有效?
+### 2.2 验证页面结构
-| 检查项 | 要看什么 |
-|------|------|
-| 页面是否对 | 页面数量、功能是否符合 PRD |
-| 接口是否对 | 规划、详情、历史、重生成是否闭环 |
-| 输出是否对 | 行程结果是不是结构化且可读 |
-| 数据是否对 | trip、itinerary、logs 是否一致 |
-| 演示是否对 | 是否能演示“输入 -> 生成 -> 保存 -> 再次生成” |
+逐项检查:
-## 最后的预期效果
+- [ ] 规划页的表单字段是否与 PRD 一致
+- [ ] 结果预览区域能展示结构化的行程数据
+- [ ] 历史记录页可以展示多条计划
+- [ ] 管理后台页可以展示统计数据
-- 一套可运行的旅行规划 Agent 平台
-- 一份同级 PRD 文档
-- 首页、规划、详情、历史、后台五类页面
-- Agent 编排、结构化输出、历史管理、后台统计
-- README 和演示方案
+## 第三部分:迭代开发
-## 验收标准
+### 3.1 按模块推进
-| 维度 | 最低达标 |
-|------|------|
-| PRD 对齐 | 页面、功能、数据结构基本符合 PRD |
-| 产品闭环 | 规划、保存、历史、重生成可以跑通 |
-| 后台能力 | 任务统计和失败日志可以查看 |
-| 工程完整度 | 前端、后端、数据库、模型调用链路已接通 |
-| 展示能力 | 可以清楚演示“从 PRD 到成品”的过程 |
+1. **鉴权**:注册、登录
+2. **规划表单**:结构化输入(出发地、目的地、日期、预算、偏好)
+3. **Agent 编排**:接收输入 → 调用模型 → 解析结构化输出
+4. **结果展示**:行程按天展示、预算拆分、建议
+5. **历史管理**:保存计划、再次生成、导出
+6. **管理后台**:热门目的地、失败任务、用户反馈
+7. **任务状态**:生成中 / 成功 / 失败的状态管理和错误记录
-::: tip 🚀 完成后你会得到什么?
-你得到的不只是一个旅游聊天 Demo,而是一套带结构化输入、Agent 编排和任务管理的 AI 产品开发样例。
-:::
+### 3.2 模块自检
+
+| 检查项 | 验证方法 |
+|--------|----------|
+| 输入完整性 | 表单字段是否与 PRD 一致 |
+| 输出结构化 | 行程结果是不是结构化数据(而非一大段文字) |
+| 数据一致性 | trip、itinerary、logs 数据是否对得上 |
+| 闭环验证 | 是否能演示"输入 → 生成 → 保存 → 再次生成" |
+
+## 第四部分:联调与上线
+
+### 4.1 端到端测试
+
+至少验证以下场景:
+
+- 输入行程参数 → 生成每日行程 → 查看预算拆分 → 保存到历史
+- 从历史记录中再次生成行程
+- 管理员查看任务统计和失败日志
+
+## 交付物
+
+完成本项目后,你需要提交以下内容:
+
+- [ ] 可访问的线上演示链接
+- [ ] 源码仓库链接(含 README)
+- [ ] PRD 文档
+- [ ] 核心页面截图(规划页、行程详情页、历史记录页、管理后台)
+- [ ] 60 秒演示视频
+
+## 评分标准
+
+| 维度 | 基本要求 | 进阶要求 |
+|------|---------|---------|
+| PRD 对齐 | 页面、功能、数据结构基本符合 PRD | 能清晰说明设计决策 |
+| 产品闭环 | 规划 → 保存 → 历史 → 重生成可跑通 | 支持导出和分享 |
+| 输出质量 | 行程结果结构化且可读 | 预算拆分合理、建议有针对性 |
+| 后台能力 | 任务统计和失败日志可查看 | 有热门目的地分析 |
+| 工程完整度 | 前端、后端、数据库、模型调用链路已接通 | 任务状态管理完善,错误可追溯 |
+
+## 参考资料
+
+- [UI 设计](../../frontend/2.2-ui-design/)
+- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/)
+- [从数据库到 Supabase](../../backend/2.2-database-supabase/)
+- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/)
+- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)
+- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)