Files
ai-learning-platform/docs/progress.md
T
yuzhiran-dev 0f215d2aad P8 平台轻量化改造 + SSG修复 + 编程导师 + 文档完善
- Prisma: Tool 模型加 affiliateLink;免费用户沙盒 10→5 次/日
- 后端: Tools API + /admin/tools CRUD 5 端点;Practices 完整模块
- 导航: 主菜单隐藏企业版/社区(URL 可访问)
- 首页: 重定位为 AI 工具指南;新增精选工具区块;Feature 重写
- 工具页: affiliateLink 绿色推荐 Badge
- SSG 修复: config.ts 构建时直连 localhost:4000,页面 108→127
- 沙盒: 新增编程导师场景(苏格拉底教学法)
- 练习系统: Practices 多场景练习(含结构化评分)
- 技能广场: 6 个付费 Skill(标题大师/回款助手等)
- 管理后台: Models/Posts/Practices CRUD 页面
- 文档: README + progress.md 全面更新;AGENTS.md 同步定位
- 清理: .env.example 移除;tsbuildinfo gitignore
2026-06-18 18:14:07 +08:00

144 lines
7.3 KiB
Markdown
Raw 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.
# 项目进度追踪
## 当前阶段:P8 — 平台轻量化改造
### P6 — 技能广场 & 付费技能(2026-06-14)✅
| 子项 | 说明 | 状态 |
|------|------|------|
| **市场调研** | 选定方向:付费 AI Skill(每个 Skill 解决一个垂直痛点) | ✅ |
| **Prisma Schema** | Skill 模型加 `price` 字段;新增 `UserSkill` 关联表;Order 加 `metadata` | ✅ |
| **后端** | Orders 支持 `planType: 'SKILL'`Skills 端增加 access control + marketplace API | ✅ |
| **第一个 Skill** | 标题大师 (TitleCraft) — AI 爆款标题生成器,¥9.9 | ✅ |
| **第二批 5 个 Skill** | 回款助手(¥19.9)、提案智造(¥19.9)、差评分析师(¥19.9)、商品文案大师(¥29.9)、合同审查助手(¥29.9) | ✅ |
| **前端** | `/marketplace` 技能广场页:过滤(全部/免费/付费/已拥有)、购买按钮、支付弹窗 | ✅ |
| **导航** | Header 新增「技能广场」入口 | ✅ |
| **i18n** | 中英文 marketplace.* 完整翻译 key + business 分类 | ✅ |
### P7 — 管理后台 CRUD + 平台审计(2026-06-17
| 子项 | 说明 | 状态 |
|------|------|------|
| **Admin CRUD - Practices** | 后端完整 CRUD 端点 + 前端 list/new/edit 页面 | ✅ |
| **Admin CRUD - Posts** | 后端 list/detail/status/delete + 前端 list/detail 页面 | ✅ |
| **Admin CRUD - Models** | 后端完整 CRUD + 前端 list/new/edit 页面 | ✅ |
| **Admin CRUD - Skills** | 后端 list/detail/edit 端点 | ✅ |
| **Admin CRUD - Circles** | 后端 list/delete 端点 | ✅ |
| **Admin 首页** | 新增 practices、posts、models 管理入口 | ✅ |
| **前端数据完整性审计** | 确认所有展示页面均从 API 获取数据,无 mock/静态数据残留 | ✅ |
| **¥{price} 变量修复** | marketplace 页 ¥{price} 缺少 .replace() 问题修复 | ✅ |
| **i18n 模板变量审计** | 审计 19 个模板变量,确认无其它遗漏 | ✅ |
| **Circles JSX 语法修复** | 缺失 `</div>` 导致的编译错误 | ✅ |
| **构建部署** | 108/108 页面,主站 + 镜像站已更新,Nginx reload | ✅ |
| **战略分析** | 平台瘦身可能性 + 广告/返佣模式调研(详见分析报告) | ✅ |
### 已做关键决策
- Skill = 最小可交付产品单元。不是"又一个 AI 平台",而是**每做一个 Skill 就单独卖**
- 第一个 Skill 选"标题大师"——最窄、最痛、最快见效,不依赖人脉
- 定价 ¥9.9(低门槛试探市场),后续 Skill 可根据价值定价 ¥19.9-¥49
- 购买后永久拥有,不走订阅制(降低决策门槛)
- **(P7)** 战略方向思考:是否从"重平台"转向"轻量级信息展示 +练习 +联盟返佣"
### 部署备忘
```bash
# 前端部署后需要:
cd backend && node prisma/update-skill.cjs # 如果 system prompt 需要更新
```
### P8 — 平台轻量化改造(2026-06-17
| 子项 | 说明 | 状态 |
|------|------|------|
| **Prisma Schema** | Tool 模型加 `affiliateLink` 字段 | ✅ |
| **免费用户配额** | 沙盒配额 10→5 次/日 | ✅ |
| **后端 API** | Tools 返回 affiliateLink;新增 `/admin/tools` CRUD 5 端点 | ✅ |
| **导航调整** | 主菜单隐藏企业版、社区(页面保留 URL 访问) | ✅ |
| **首页重定位** | Hero 文案改为"AI 工具指南 · 实战练习"Feature 卡片重写 | ✅ |
| **精选工具区块** | 首页新增"精选 AI 工具"展示区(Stats 与 Features 之间) | ✅ |
| **工具页返佣 Badge** | 有 affiliateLink 的工具显示绿色"推荐"标记 | ✅ |
| **AGENTS.md 更新** | 定位改为"AI 工具指南与技能练习平台";路线图重排序 | ✅ |
| **构建部署** | 前端 108/108 页面 + 后端 build + PM2 restart + Nginx reload | ✅ |
### P8.1 — SSG 动态路由修复 + 编程导师场景(2026-06-18
| 子项 | 说明 | 状态 |
|------|------|------|
| **SSG 404 根因诊断** | `NEXT_PUBLIC_API_URL=/api/v1` 在 Node.js 构建时不解析,所有动态路由只生成了 fallback ID `1` | ✅ |
| **config.ts 修复** | SSG 构建时自动使用 `http://localhost:4000/api/v1` 直连后端 | ✅ |
| **页面数验证** | 108→127 页面,courses/[id] 正确生成 ID 17/18/19skills/[id] 正确生成 general-chat/coding/writing | ✅ |
| **编程导师场景** | 沙盒新增 `sceneId=tutor`,苏格拉底式教学法 prompt4 个 starter 问题 | ✅ |
| **i18n 同步** | 中英文新增 `sceneTutor: '编程导师'/'Programming Tutor'` | ✅ |
| **项目文档更新** | README.md 全面重写(技术栈、产品定位、功能表);AGENTS.md 定位同步 | ✅ |
| **生产部署** | 127 页面全部部署并验证 courses 详情页 200 OK | ✅ |
### 待办/下一步
1. **为工具库加返佣链接**:在管理后台 `/admin/tools/new` 和编辑页录入 affiliateLink 字段
2. **注册 AI 工具联盟账号**:对接 Canva/Copy.ai 等工具的返佣计划
3. **内容策略**:批量生产 AI 工具评测文章做 SEO
4. **编程导师内容扩充**:按难度分级写更多 starter 问题
---
## 部署架构
### 域名概况
| 域名 | 类型 | 说明 | 状态 |
|------|------|------|------|
| **www.yuzhiran.com** | AI 学习平台 | 前端静态导出 + NestJS 后端 | 🟢 线上 |
| **trade.yuzhiran.com** | 另一项目(非 AI 平台) | SPA 应用,独立后端 8002 端口 | 🟢 线上 |
| **alvnc.yuzhiran.com** | 其他服务 | — | 🟢 线上 |
### www.yuzhiran.com 部署详情
```
用户 → Nginx (443/80) → /api/* → backend (127.0.0.1:4000)
→ /* → static files (/www/wwwroot/www.yuzhiran.com/)
```
| 组件 | 技术栈 | 运行方式 | 端口 |
|------|--------|---------|------|
| **前端** | Next.js 14 App Router → `output: 'export'` 静态 HTML | Nginx 直接提供 `/www/wwwroot/www.yuzhiran.com/` | 443/80 |
| **后端** | NestJS + Prisma + MySQL | PM2 (`backend`) | 4000 |
| **数据库** | MySQL 8.0 | systemd (`ai_leaning`) | 3306 |
| **Web 服务器** | Nginx (宝塔面板) | systemd | 443/80 |
| **支付网关** | yzrcloud.cn 统一网关 | 外部服务 | 8100(内网) |
**Nginx 配置** (`/www/server/panel/vhost/nginx/www.yuzhiran.com.conf`):
- 静态资源 `/``try_files $uri $uri.html $uri/index.html =404`
- API 代理 `/api/``proxy_pass http://127.0.0.1:4000`
- 静态资源缓存: `_next/static/` 365 天, 图片 30 天, JS/CSS 12 小时
**部署流程**:
```bash
# 前端
cd frontend && npm run build # 生成 out/
cp -r out/* /www/wwwroot/www.yuzhiran.com/
# 后端
cd backend && npm run build # 生成 dist/
pm2 restart backend
```
---
## 支付对接
### 架构总览
```
前端 (会员页) → POST /orders/create → GatewayPayService → HMAC-SHA256 → yzrcloud.cn 网关
├── 支付宝 PC 网站
└── 微信 Native 扫码
网关回调 → POST /api/v1/payment/gateway/webhook → 更新订单 + 激活订阅/关联技能
```
### 技能购买流程
```
用户点击"解锁" → POST /orders/create (planType=SKILL, skillId=xxx)
→ mock支付自动完成
→ UserSkill 记录创建
→ 技能广场页显示"已拥有"
→ 用户可直接在沙盒使用
```