startup-plan/项目计划/2-技术与交付模块/后端完全体优先级详案.md

1781 lines
21 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.

明白,你要的不是“现在别做什么”,而是:
```text
知习后端完全体到底有哪些工作?
这些工作按什么顺序做?
哪些是地基,哪些是核心业务,哪些是后期运营能力?
```
我给你按**完整后端系统**来排。
---
# 知习后端完全体优先级
## P0后端地基层
这一层不直接产生业务价值,但不做后面会全部返工。
### 1. 安全与配置
优先级:最高。
包括:
```text
环境变量管理
密钥轮换
CI/CD Secrets
生产 Swagger 保护
HTTPS
CORS
请求日志
错误日志
限流
```
对应工作:
```text
.env 分环境
JWT_SECRET / DB_PASSWORD / REDIS_PASSWORD 不进 Git
Swagger 生产环境关闭或强认证
统一异常返回
全局 ValidationPipe
统一日志格式
```
---
### 2. 数据库基础
优先级:最高。
包括:
```text
Prisma
MySQL
Migration
Repository 接真实数据库
软删除
分页
时间字段
索引
```
你现在后端所有核心模块都要围绕真实数据库跑,不能继续依赖内存 Map。
基础表:
```text
users
auth_accounts
refresh_tokens
knowledge_bases
knowledge_items
```
---
### 3. 统一工程规范
优先级:很高。
包括:
```text
统一响应格式
统一错误码
统一分页格式
DTO 校验
CurrentUser 装饰器
JwtAuthGuard
RoleGuard
Resource ownership 校验
```
这一步会影响你所有接口。
---
# P1身份、登录、权限层
这层是所有业务数据的入口。
## 4. Auth 登录模块
优先级:最高。
接口:
```text
POST /api/auth/dev-login
POST /api/auth/apple
POST /api/auth/refresh
POST /api/auth/logout
```
表:
```text
users
auth_accounts
refresh_tokens
```
当前因为 Apple 开发者审核没下来,先做:
```text
dev-login
refresh token
/users/me
```
后面 Apple 审核下来,再补 Apple provider。
---
## 5. User 用户模块
优先级:最高。
接口:
```text
GET /api/users/me
PATCH /api/users/me
DELETE /api/users/me
```
用户字段:
```text
id
email
nickname
avatarUrl
role
status
onboardingCompleted
createdAt
updatedAt
```
这里是 App 启动、我的页、学习数据、会员权益的基础。
---
## 6. 权限系统
优先级:最高。
先做两层权限。
### 平台角色
```text
USER
ADMIN
SUPER_ADMIN
```
### 资源权限
第一版先简单:
```text
知识库 userId = 当前用户 id
```
后期扩展:
```text
OWNER
EDITOR
VIEWER
```
完整权限相关表:
```text
users.role
knowledge_bases.userId
knowledge_base_members
admin_audit_logs
```
权限规则:
```text
普通用户只能访问自己的资源
管理员才能访问 /api/admin/*
用户创建知识库后是该知识库 Owner
Owner 不是平台管理员
管理员查看敏感内容要写审计日志
```
---
# P2知识系统层
这是知习的内容基础。
## 7. KnowledgeBase 知识库模块
优先级:很高。
接口:
```text
GET /api/knowledge-bases
POST /api/knowledge-bases
GET /api/knowledge-bases/:id
PATCH /api/knowledge-bases/:id
DELETE /api/knowledge-bases/:id
```
表:
```text
knowledge_bases
```
字段:
```text
id
userId
title
description
coverColor
visibility
status
itemCount
createdAt
updatedAt
deletedAt
```
`visibility` 可以先有字段:
```text
PRIVATE
UNLISTED
PUBLIC
```
但第一版默认 `PRIVATE`
---
## 8. KnowledgeItem 知识点模块
优先级:很高。
接口:
```text
GET /api/knowledge-bases/:knowledgeBaseId/items
POST /api/knowledge-bases/:knowledgeBaseId/items
GET /api/knowledge-items/:id
PATCH /api/knowledge-items/:id
DELETE /api/knowledge-items/:id
```
表:
```text
knowledge_items
```
字段:
```text
id
userId
knowledgeBaseId
title
content
summary
tags
sourceType
masteryLevel
createdAt
updatedAt
deletedAt
```
这是主动回忆和 AI 分析的对象。
---
## 9. 标签 / 分类 / 搜索模块
优先级:中高。
可以后面接,但完整体需要。
包括:
```text
知识点标签
知识库分类
全文搜索
按掌握度筛选
按待复习状态筛选
```
可能接口:
```text
GET /api/knowledge-items/search
GET /api/tags
POST /api/tags
```
---
# P3学习闭环核心层
这是知习真正区别于普通笔记和 AI 聊天壳的核心。
## 10. LearningSession 学习会话模块
优先级:很高。
表示一次学习过程。
接口:
```text
POST /api/learning-sessions
GET /api/learning-sessions/:id
POST /api/learning-sessions/:id/complete
```
表:
```text
learning_sessions
```
字段:
```text
id
userId
knowledgeBaseId
status
startedAt
completedAt
durationSeconds
createdAt
updatedAt
```
---
## 11. ActiveRecall 主动回忆模块
优先级:很高。
接口:
```text
POST /api/active-recall/answers
GET /api/active-recall/answers/:id
GET /api/knowledge-items/:id/active-recall/answers
```
表:
```text
active_recall_answers
```
字段:
```text
id
userId
knowledgeItemId
learningSessionId
mode
answerText
durationSeconds
createdAt
```
`mode`
```text
ACTIVE_RECALL
FEYNMAN
RETRIEVAL_PRACTICE
```
---
## 12. AIAnalysis AI 学习分析模块
优先级:很高。
接口:
```text
POST /api/ai-analysis/active-recall
GET /api/ai-analysis/:id
GET /api/active-recall/answers/:answerId/analysis
```
表:
```text
ai_analysis_results
```
字段:
```text
id
userId
knowledgeItemId
activeRecallAnswerId
score
masteryLevel
summary
strengths
weaknesses
missingKeyPoints
misconceptions
rawResult
promptVersion
model
createdAt
```
这是知习最重要的核心模块之一。
---
## 13. FocusItem 待巩固项模块
优先级:很高。
接口:
```text
GET /api/focus-items
GET /api/focus-items/today
GET /api/focus-items/:id
PATCH /api/focus-items/:id
```
表:
```text
focus_items
```
字段:
```text
id
userId
knowledgeBaseId
knowledgeItemId
aiAnalysisId
title
description
reason
priority
status
createdAt
resolvedAt
```
状态:
```text
OPEN
REVIEWING
RESOLVED
DISMISSED
```
---
## 14. Review 间隔复习模块
优先级:很高。
接口:
```text
GET /api/reviews/due
GET /api/reviews/cards/:id
POST /api/reviews/cards/:id/answer
POST /api/reviews/cards/:id/skip
```
表:
```text
review_cards
review_attempts
```
`review_cards`
```text
id
userId
knowledgeItemId
focusItemId
question
answerReference
cardType
dueAt
intervalDays
easeFactor
status
createdAt
updatedAt
```
`review_attempts`
```text
id
userId
reviewCardId
answerText
selfRating
aiRating
result
createdAt
```
---
## 15. LearningActivity 学习活跃模块
优先级:高。
接口:
```text
GET /api/learning-activity/summary
GET /api/learning-activity/daily
POST /api/learning-activity/events
```
表:
```text
learning_activity_events
```
事件:
```text
KNOWLEDGE_BASE_CREATED
KNOWLEDGE_ITEM_CREATED
LEARNING_SESSION_STARTED
ACTIVE_RECALL_SUBMITTED
AI_ANALYSIS_COMPLETED
FOCUS_ITEM_CREATED
REVIEW_CARD_CREATED
REVIEW_COMPLETED
LEARNING_SESSION_COMPLETED
```
这个模块后面会支撑:
```text
连续学习天数
最近 7 天学习趋势
学习活跃记录
分析首页
我的页数据
```
---
# P4AI 基础设施层
这一层支撑 AI 成本、质量、可扩展性。
## 16. AIGateway 模型网关
优先级:高。
包括:
```text
统一模型调用
provider 抽象
DeepSeek provider
MiniMax provider
OpenAI provider
Qwen provider
超时控制
错误重试
JSON 解析
fallback
```
结构:
```text
AIGatewayService
AIProvider
DeepSeekProvider
MiniMaxProvider
OpenAIProvider
```
---
## 17. PromptTemplate 提示词模块
优先级:高。
表:
```text
prompt_templates
```
字段:
```text
id
key
version
systemPrompt
userPromptTemplate
outputSchema
model
temperature
maxTokens
isActive
createdAt
updatedAt
```
Prompt 不要散落在业务代码里。
---
## 18. AIUsageLog AI 成本日志
优先级:高。
表:
```text
ai_usage_logs
```
字段:
```text
id
userId
feature
provider
model
promptVersion
inputTokens
outputTokens
cachedInputTokens
totalTokens
inputCost
outputCost
totalCost
currency
latencyMs
status
errorCode
errorMessage
createdAt
```
这是后面定价、限流、后台成本看板的基础。
---
## 19. AIQuota / UsageLimit AI 额度模块
优先级:中高。
表:
```text
usage_quotas
usage_records
```
负责:
```text
免费用户 AI 次数
Pro 用户 AI 次数
高级分析额度
文件解析额度
每日限制
每月限制
异常限流
```
接口:
```text
GET /api/usage/me
```
---
## 20. AIWorkflow 工作流模块
优先级:中高。
后期完整体需要。
表:
```text
ai_workflows
ai_workflow_steps
ai_workflow_runs
```
用于:
```text
知识导入工作流
主动回忆分析工作流
长期趋势分析工作流
复习卡生成工作流
学习报告生成工作流
```
---
# P5文件、导入、知识生成层
这层让知识库从“手动输入”升级为“资料导入”。
## 21. File / Storage 文件模块
优先级:中高。
接口:
```text
POST /api/files/upload-url
POST /api/files/complete
GET /api/files/:id
DELETE /api/files/:id
```
表:
```text
files
```
字段:
```text
id
userId
bucket
objectKey
filename
mimeType
size
purpose
status
createdAt
```
用途:
```text
头像
反馈截图
文档上传
知识库文件
```
---
## 22. DocumentImport 文档导入模块
优先级:中高。
接口:
```text
POST /api/document-imports
GET /api/document-imports/:id
POST /api/document-imports/:id/confirm
```
表:
```text
document_import_jobs
document_import_items
```
流程:
```text
上传文件
→ 创建导入任务
→ 解析文本
→ AI 切分知识点
→ 用户确认
→ 写入 knowledge_items
```
需要:
```text
Redis
BullMQ
Worker
COS
文本解析
AI 切分
```
---
## 23. KnowledgeGeneration 知识点生成模块
优先级:中。
用于:
```text
AI 生成知识点标题
AI 生成摘要
AI 提取关键点
AI 生成标签
AI 生成主动回忆问题
```
可以作为 document-import 的子模块。
---
# P6会员、订阅、商业化层
这层决定你后端能不能真正商业化。
## 24. Plans 套餐模块
优先级:中。
表:
```text
plans
```
字段:
```text
id
key
name
price
currency
billingPeriod
features
isActive
```
---
## 25. Membership 权益模块
优先级:中高。
接口:
```text
GET /api/membership/me
GET /api/plans
```
表:
```text
membership_entitlements
```
字段:
```text
userId
planKey
status
aiAnalysisLimit
knowledgeBaseLimit
knowledgeItemLimit
fileUploadLimit
advancedReportEnabled
expiresAt
```
---
## 26. Subscription 订阅模块
优先级:中。
接口后期:
```text
POST /api/subscriptions/apple/verify
POST /api/subscriptions/apple/notifications
POST /api/subscriptions/google/notifications
GET /api/subscriptions/me
```
表:
```text
subscriptions
subscription_events
payment_transactions
refund_records
```
字段:
```text
platform
originalTransactionId
productId
status
startedAt
expiresAt
renewalStatus
```
---
# P7用户 Web 后台层
这是你说的用户 Web 端上传知识库。
## 27. User Web Console 用户后台
优先级:中。
它不是 Admin 后台,而是普通用户自己的 Web 工作台。
后端复用普通用户接口:
```text
/api/users/me
/api/knowledge-bases
/api/knowledge-items
/api/files
/api/document-imports
/api/membership/me
```
新增可能需要:
```text
批量上传
批量编辑知识点
导入历史
导出数据
Web 端文件管理
```
对应模块:
```text
files
document-import
knowledge-bases
knowledge-items
membership
```
---
# P8管理员后台层
这是平台运营后台。
## 28. Admin Auth / Admin Guard
优先级:中。
接口:
```text
GET /api/admin/me
```
权限:
```text
ADMIN
SUPER_ADMIN
```
---
## 29. Admin Users 用户管理
优先级:中。
接口:
```text
GET /api/admin/users
GET /api/admin/users/:id
PATCH /api/admin/users/:id/status
```
功能:
```text
查看用户
禁用用户
查看会员状态
查看学习数据概览
```
---
## 30. Admin Knowledge 知识库管理
优先级:中。
接口:
```text
GET /api/admin/knowledge-bases
GET /api/admin/knowledge-bases/:id
```
默认只看元数据:
```text
标题
创建者
创建时间
知识点数量
文件数量
状态
可见性
是否被举报
```
敏感内容查看需要:
```text
权限
原因
审计日志
```
---
## 31. Admin AI Usage AI 成本后台
优先级:中高。
接口:
```text
GET /api/admin/ai-usage
GET /api/admin/ai-usage/summary
```
看:
```text
每日 AI 调用
用户 AI 消耗
功能成本排行
模型成本
失败率
平均耗时
```
---
## 32. Admin Feedback 反馈管理
优先级:中。
接口:
```text
GET /api/admin/feedback
GET /api/admin/feedback/:id
PATCH /api/admin/feedback/:id
POST /api/admin/feedback/:id/reply
```
---
## 33. Admin Audit 审计日志
优先级:中高。
表:
```text
admin_audit_logs
```
记录:
```text
什么时候
做了什么
操作对象
操作前
操作后
原因
IP
UserAgent
```
---
# P9客服、反馈、帮助中心层
## 34. Feedback 用户反馈模块
优先级:中高。
接口:
```text
POST /api/feedback
GET /api/feedback/my
```
---
## 35. SupportTicket 工单模块
优先级:中。
接口:
```text
POST /api/support/tickets
GET /api/support/tickets/my
GET /api/support/tickets/:id
```
---
## 36. Dify 智能客服模块
优先级:中低。
接口:
```text
POST /api/support/chat
GET /api/support/conversations
```
架构:
```text
iOS / Web
→ NestJS
→ Dify API
→ 官方帮助知识库
```
不能让 iOS 直接调 Dify。
---
## 37. HelpCenter 帮助中心模块
优先级:中低。
表:
```text
help_articles
faq_items
```
功能:
```text
常见问题
订阅说明
退款说明
功能说明
隐私政策摘要
```
---
# P10通知、任务、调度层
## 38. Notifications 通知模块
优先级:中。
接口:
```text
GET /api/notifications
PATCH /api/notifications/:id/read
```
表:
```text
notifications
```
用于:
```text
复习提醒
系统通知
订阅通知
反馈回复
```
---
## 39. Push 推送模块
优先级:中低。
包括:
```text
APNs
设备 token
推送偏好
复习提醒推送
```
表:
```text
device_tokens
notification_preferences
```
---
## 40. Jobs / Worker 后台任务模块
优先级:中高。
需要:
```text
BullMQ
Redis
Worker
Job logs
Retry
Dead letter queue
```
用于:
```text
文档解析
AI 批量分析
学习报告生成
通知推送
订阅状态同步
```
---
# P11学习分析与长期画像层
## 41. LearningAnalytics 学习分析模块
优先级:中。
接口:
```text
GET /api/analytics/learning/overview
GET /api/analytics/learning/trends
GET /api/analytics/learning/weaknesses
```
数据来源:
```text
learning_activity_events
active_recall_answers
ai_analysis_results
focus_items
review_attempts
```
---
## 42. UserLearningProfile 用户学习画像
优先级:中。
表:
```text
user_learning_profiles
```
字段:
```text
userId
weakTypes
preferredExplanationStyle
recallAccuracyAvg
reviewCompletionRate
repeatedMistakes
updatedAt
```
这是后期 Learning Agent 的基础。
---
## 43. LearningReport 学习报告模块
优先级:中低。
接口:
```text
GET /api/reports/weekly
GET /api/reports/monthly
POST /api/reports/generate
```
可以异步生成。
---
# P12公开知识库、分享、社区层
这层是完整体可能会有的,但复杂度高。
## 44. Knowledge Visibility 公开权限模块
优先级:中低。
支持:
```text
PRIVATE
UNLISTED
PUBLIC
```
需要:
```text
公开链接
可见性变更日志
举报机制
内容审核
```
---
## 45. Knowledge Sharing 分享模块
优先级:中低。
接口:
```text
POST /api/knowledge-bases/:id/share-links
GET /api/share/:token
DELETE /api/share-links/:id
```
---
## 46. Public Knowledge 官方 / 公共知识库
优先级:低到中。
功能:
```text
官方模板库
公开知识库市场
精选知识库
复制到我的知识库
```
需要强审核。
---
# P13合规、系统配置、运营层
## 47. SystemConfig 系统配置模块
优先级:中。
接口:
```text
GET /api/system/config
GET /api/health
```
配置:
```text
最低 App 版本
强制升级版本
隐私政策版本
用户协议版本
备案号
客服邮箱
功能开关
AI 模型配置
```
---
## 48. Compliance 合规模块
优先级:中。
包括:
```text
用户协议
隐私政策
数据导出
账号注销
内容举报
违规处理
备案信息
```
接口:
```text
POST /api/account/delete-request
GET /api/account/export
POST /api/reports/content
```
---
## 49. DataExport 用户数据导出
优先级:中低。
完整体需要:
```text
导出知识库
导出学习记录
导出账户数据
```
---
# P14增长、归因、营销数据层
如果你后端要支持营销闭环,后面可以做。
## 50. Attribution 归因模块
优先级:中低。
表:
```text
marketing_campaigns
attribution_events
```
字段:
```text
campaignId
utmSource
utmMedium
utmCampaign
utmContent
userId
eventName
createdAt
```
用于:
```text
内容 → 注册 → 激活 → 付费
```
---
## 51. ProductAnalytics 产品行为埋点
优先级:中。
事件:
```text
app_opened
signup_completed
knowledge_base_created
active_recall_submitted
ai_analysis_completed
review_completed
paywall_viewed
subscription_started
```
可以先用 PostHog / Firebase后端只接关键事件。
---
# 总优先级总表
| 优先级 | 工作层级 | 核心模块 |
| --- | --------- | ------------------------------------------------------------------------- |
| P0 | 后端地基 | 安全、配置、数据库、统一异常、DTO、日志 |
| P1 | 身份权限 | Auth、Users、RefreshToken、Role、Resource Permission |
| P2 | 知识系统 | KnowledgeBase、KnowledgeItem、Tag、Search |
| P3 | 学习闭环 | LearningSession、ActiveRecall、AIAnalysis、FocusItem、Review、LearningActivity |
| P4 | AI 基础设施 | AIGateway、PromptTemplate、AIUsageLog、Quota、AIWorkflow |
| P5 | 文件导入 | File、Storage、DocumentImport、KnowledgeGeneration |
| P6 | 商业化 | Plans、Membership、Subscription、Payment、Refund |
| P7 | 用户 Web 后台 | Web Console、批量上传、导入、导出 |
| P8 | 管理员后台 | Admin Users、Admin Knowledge、AI Cost、Feedback、Audit |
| P9 | 客服反馈 | Feedback、SupportTicket、Dify、HelpCenter |
| P10 | 通知任务 | Notifications、Push、BullMQ Worker、Scheduler |
| P11 | 学习画像 | LearningAnalytics、UserLearningProfile、LearningReport |
| P12 | 公开分享 | Visibility、ShareLink、Public Knowledge |
| P13 | 合规配置 | SystemConfig、Privacy、Delete Account、Data Export |
| P14 | 增长归因 | Attribution、ProductAnalytics、Campaign Tracking |
---
# 如果按“完全体开发路线”分阶段
## 第一阶段:能真实使用
```text
安全
数据库
登录
用户
权限
知识库
知识点
```
目标:
```text
用户可以登录并创建自己的知识库。
```
---
## 第二阶段:形成学习闭环
```text
学习会话
主动回忆
AI 分析
待巩固项
复习卡片
学习活跃
AI usage log
```
目标:
```text
用户可以从输入知识走到主动输出、AI 反馈、复习。
```
---
## 第三阶段:支持真实内容导入
```text
文件上传
文档导入
AI 切分知识点
导入任务队列
Worker
```
目标:
```text
用户可以上传资料并转成知识库。
```
---
## 第四阶段:商业化
```text
会员权益
AI 额度
套餐
Apple IAP
订阅通知
退款处理
```
目标:
```text
用户可以付费,系统可以控制成本。
```
---
## 第五阶段:运营后台
```text
管理员后台
用户管理
知识库元数据
反馈管理
AI 成本看板
订阅管理
审计日志
```
目标:
```text
你和后续合作的人可以运营这个产品。
```
---
## 第六阶段:客服和支持
```text
反馈
工单
Dify 智能客服
帮助中心
```
目标:
```text
基础问题自动回答,复杂问题进入工单。
```
---
## 第七阶段:学习画像和 Agent
```text
用户学习画像
长期趋势分析
周报月报
AI 工作流
Learning Agent
```
目标:
```text
系统开始越来越懂用户。
```
---
## 第八阶段:公开知识库和社区
```text
公开知识库
分享链接
官方知识库
精选模板
举报审核
```
目标:
```text
从个人学习工具扩展到内容和社区。
```
---
# 最终结论
知习后端完全体不是一个简单 CRUD 后端,它最终会变成:
```text
用户系统
+ 权限系统
+ 知识库系统
+ 学习闭环系统
+ AI 工作流系统
+ 复习系统
+ 成本控制系统
+ 订阅系统
+ 文件导入系统
+ 后台管理系统
+ 客服工单系统
+ 学习画像系统
+ 合规系统
+ 增长归因系统
```
但是优先级一定是:
```text
身份权限
→ 知识系统
→ 学习闭环
→ AI 基础设施
→ 文件导入
→ 商业化
→ 后台
→ 客服
→ 学习画像
→ 公开分享
→ 增长归因
```
你现在如果要写后端开发文档,可以直接按这个顺序作为总路线图。