0f215d2aad
- 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
102 lines
4.3 KiB
Markdown
Executable File
102 lines
4.3 KiB
Markdown
Executable File
# 项目进度追踪
|
||
|
||
## 当前阶段:P6 — 技能广场 + 付费技能
|
||
|
||
### Phase 1-5 — 全部完成 ✅
|
||
|
||
### 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 分类 | ✅ |
|
||
|
||
### 已做关键决策
|
||
- Skill = 最小可交付产品单元。不是"又一个 AI 平台",而是**每做一个 Skill 就单独卖**
|
||
- 第一个 Skill 选"标题大师"——最窄、最痛、最快见效,不依赖人脉
|
||
- 定价 ¥9.9(低门槛试探市场),后续 Skill 可根据价值定价 ¥19.9-¥49
|
||
- 购买后永久拥有,不走订阅制(降低决策门槛)
|
||
|
||
### 部署备忘
|
||
```bash
|
||
# 前端部署后需要:
|
||
cd backend && node prisma/update-skill.cjs # 如果 system prompt 需要更新
|
||
```
|
||
|
||
### 待办/下一步
|
||
1. **写第一篇知乎文章**:《我做了个 AI 付费技能,¥9.9 能卖出去吗?》—— 用内容验证需求
|
||
2. **如果 2 周内无人购买**:换第二个 Skill(如"差评回复生成器"或"小红书文案仿写")
|
||
3. **如果有人购买**:深入优化标题大师,考虑涨价到 ¥19.9,同时做第二个 Skill
|
||
4. **长期**:每个 Skill 都是一个独立获客入口 + 内容素材
|
||
|
||
---
|
||
|
||
## 部署架构
|
||
|
||
### 域名概况
|
||
|
||
| 域名 | 类型 | 说明 | 状态 |
|
||
|------|------|------|------|
|
||
| **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 记录创建
|
||
→ 技能广场页显示"已拥有"
|
||
→ 用户可直接在沙盒使用
|
||
```
|