cursor-init/prd/personal-website-comprehensive-prd.md
expressgy 2518986557 feat(docs): 完成星撰平台M2基础用户系统完整设计文档体系
 新增功能设计文档:
- M2基础用户系统数据库设计(12个核心表,RBAC权限模型)
- M2基础用户系统接口设计(41个API接口,含排序功能)
- 完整的项目需求文档和开发计划

📚 核心文档结构:
- 数据库设计:支持树形结构、软删除、审计日志的完整用户权限体系
- 接口设计:包含认证、用户管理、角色权限、组织架构、字典标签等9大模块
- 排序功能:新增7个排序接口,支持拖拽和批量操作
- 项目规划:从MVP到完整生态的4阶段开发计划

🔧 技术栈确定:
- 后端:Elysia + Bun.js + MySQL + Redis + Elasticsearch
- 前端:Vue.js/React + TypeScript
- 部署:Docker + Docker Compose
- 测试:Vitest + 完整测试规范

📋 设计亮点:
- 无外键约束设计,应用层维护数据完整性
- 树形结构支持(path、level字段优化查询)
- 完整的权限继承机制和权限快照
- 支持root超级管理员和多级角色体系
- 标签系统和智能推荐功能
- 统一的响应格式和错误码规范

🎯 覆盖功能:
- 用户认证与管理(注册、登录、权限控制)
- RBAC角色权限体系(树形角色、权限继承)
- 组织架构管理(多级组织、人员分配)
- 数据字典与标签系统
- 完整的排序和数据导入导出功能

📈 文档规模:
- 数据库设计:38KB,922行
- 接口设计:55KB,3024行
- 总计:约100KB的详细技术文档

🔄 配套更新:
- 更新Elysia后端开发规范
- 完善健康检查控制器
- 统一项目代码规范和注释规范
2025-06-29 03:11:35 +08:00

16 KiB
Raw Blame History

个人网站综合平台产品需求文档 (PRD)

引言/概述

项目背景

构建一个集成化的个人网站平台,涵盖内容创作、知识管理、生活记录、实用工具等多个维度,旨在打造一个功能完整、用户体验优秀的个人数字空间。

核心价值

  • 知识管理中心:统一管理个人笔记、博客、阅读内容
  • 生活记录平台:记录和分享个人生活点滴
  • 实用工具集:集成常用的个人效率工具
  • 智能化体验通过AI增强内容创作和知识检索

目标

主要目标

  1. 建立完整的个人数字资产管理体系
  2. 提供便捷的内容创作和发布平台
  3. 构建实用的个人效率工具集
  4. 实现智能化的知识管理和检索

可衡量目标

  • 支持多种内容格式Markdown、富文本、思维导图、画板
  • 实现秒级内容搜索响应
  • 支持10+种实用工具集成
  • 提供完整的权限管理体系

用户故事 (User Stories)

  • 作为一名创作者, 我希望能够在一个地方写笔记、画思维导图,并且能将它们无缝地整理成树状结构,方便我构建自己的知识体系。
  • 作为一名博主, 我希望可以一键将我精心撰写的笔记发布成一篇公开的博客,并且发布后对笔记的修改不会影响已发布的博客,除非我选择更新它。
  • 作为一名普通用户, 我希望能用我的邮箱快速注册一个账号,并且可以管理我的个人信息、重置密码,确保我的账户安全。
  • 作为一名开发者, 我希望有一个工具能帮我安全地记录各种网站的密码,并通过浏览器插件自动填充,还能同步我的书签,提升我的工作效率。
  • 作为一名生活记录者, 我希望能方便地上传照片和视频,以时间线的形式记录我的生活点滴,并能设置只对特定的人开放。

功能模块详述

1. 基础用户系统模块

1.1 字典管理子系统

功能描述:维护系统中使用的各类数据字典

  • 地区字典:省份、城市、区县三级联动
  • 分类字典:菜单类别、标签类别、文件类型等
  • 组织字典:部门类型、角色类型、权限类型
  • 状态字典:用户状态、内容状态、审核状态等
  • 扩展字典:支持自定义字典类型 验收标准:
  • 管理员可以增删改查字典类型和字典项。
  • 系统关键状态(如用户禁用、启用)应与字典数据关联。
  • 前端下拉框、选项等数据应能通过API动态获取字典。

1.2 角色权限子系统

功能描述基于RBAC模型的权限管理体系

  • 角色管理
    • 树形结构的角色层级
    • 角色继承机制
    • 角色标签和属性
    • 角色排序和分组
  • 权限管理
    • 页面访问权限
    • 接口调用权限
    • 数据访问权限(行级、字段级)
    • 操作权限(增删改查)
  • 权限分配
    • 下级角色只能分配上级已有权限
    • 批量权限分配
    • 权限模板机制 验收标准:
  • Root管理员拥有所有权限且不可被修改。
  • 角色创建时,其可分配的权限不能超过创建者拥有的权限。
  • 用户访问未授权的页面或API时应返回403 Forbidden状态。
  • 角色的树形结构应能正确地在前端展示和操作。

1.3 组织架构子系统

功能描述:管理用户组织关系

  • 组织结构
    • 树形组织架构
    • 支持多级嵌套
    • 组织属性和标签
  • 用户归属
    • 用户可属于多个组织
    • 主组织和辅助组织
    • 组织内角色分配 验收标准:
  • 用户可以被分配到多个组织节点下。
  • 组织架构支持拖拽调整层级和顺序。
  • 管理员可以根据组织架构筛选和管理用户。

1.4 用户管理子系统

功能描述:完整的用户生命周期管理

  • 用户注册
    • 邮箱注册验证
    • 手机号注册(可选)
    • 社交账号登录集成
  • 用户认证
    • 密码登录
    • 登录错误次数限制
    • 账户锁定和解锁机制
    • 双因子认证(可选)
  • 用户信息
    • 基础信息:用户名、邮箱、手机、头像
    • 扩展信息:个人简介、兴趣标签、社交链接
    • 隐私设置:信息可见性控制
  • 账户管理
    • 密码修改和重置
    • 找回密码(邮箱/手机)
    • 账户禁用和注销
    • Root超级管理员 验收标准:
  • 新用户注册后,系统需发送验证邮件,点击链接后方可激活账户。
  • 用户连续5次输错密码后账户应被锁定30分钟。
  • 用户可以随时修改自己的个人信息(除用户名外)。
  • 注销功能需要用户二次确认,并告知数据将被永久删除。

2. 内容管理系统模块

2.1 笔记管理子系统

功能描述:个人知识管理和笔记系统

  • 笔记结构
    • 树形文件夹结构
    • 无限层级嵌套
    • 文件夹和笔记混合组织
  • 内容格式
    • Markdown编辑器
    • 富文本编辑器
    • 思维导图工具
    • 在线画板工具
    • 代码片段高亮
  • 笔记功能
    • 实时保存
    • 版本历史
    • 标签分类
    • 全文搜索
    • 笔记链接和引用
    • 附件管理(图片、文档、音视频)
  • 协作功能
    • 笔记分享(链接分享、权限控制)
    • 协作编辑(可选)
    • 评论和批注 验收标准:
  • 笔记内容在编辑时应每隔30秒自动保存一次。
  • 支持至少三级以上的树形目录结构。
  • 全文搜索功能应能在1秒内返回标题或内容包含关键词的结果。
  • 分享的笔记链接可以设置有效期和密码。

2.2 博客发布子系统

功能描述:将笔记转化为公开博客

  • 发布机制
    • 笔记一键发布为博客
    • 博客独立存储(修改笔记不影响已发布博客)
    • 绑定关系维护
    • 重新发布和更新机制
  • 博客管理
    • 发布状态管理(草稿、已发布、下线)
    • SEO优化标题、描述、关键词
    • 分类和标签
    • 发布时间控制
  • 互动功能
    • 点赞和收藏
    • 评论系统(层级评论)
    • 阅读量统计
    • 分享功能
  • 展示功能
    • 博客列表和详情页
    • 分类和标签筛选
    • 搜索功能
    • RSS订阅 验收标准:
  • 从笔记发布博客后,二者内容各自独立。
  • 博客可以关联多个分类和标签。
  • 未发布的博客(草稿)在公开列表不可见。
  • 评论支持层级回复,并有新评论通知。

2.3 AI集成子系统

功能描述AI增强的内容创作和知识管理

  • 内容创作辅助
    • AI写作建议
    • 文本润色和优化
    • 自动摘要生成
    • 关键词提取
  • 知识库功能
    • 笔记内容向量化
    • 智能检索和推荐
    • 相关内容关联
    • 问答系统
  • MCP集成
    • 多模态内容处理
    • 代码理解和生成
    • 图像识别和描述

3. 个人空间模块

3.1 生活日志子系统

功能描述:记录和分享个人生活

  • 内容类型
    • 文字日志
    • 图片分享(支持多图)
    • 视频分享
    • 位置签到
    • 心情记录
  • 组织方式
    • 时间轴展示
    • 分类管理
    • 标签系统
    • 重要程度标记
  • 隐私控制
    • 公开/私密/好友可见
    • 精细化权限控制
    • 访客记录

3.2 社交互动子系统

功能描述:与访客的互动功能

  • 互动功能
    • 点赞系统
    • 评论功能
    • 收藏功能
    • 分享功能
  • 通知系统
    • 实时通知
    • 消息聚合
    • 邮件通知(可选)

4. 阅读管理模块

4.1 电子书管理子系统

功能描述:个人电子书库管理

  • 格式支持
    • PDF、EPUB、MOBI、TXT等
    • 在线阅读器
    • 进度同步

4.2 阅读社区子系统

功能描述:阅读交流和分享

  • 分享功能
    • 读书笔记分享
    • 书评发布
    • 阅读进度分享

5. 实用工具模块

5.1 密码管理子系统

功能描述:个人密码安全管理

  • 密码存储
    • 加密存储
    • 分类管理
    • 标签系统
  • 浏览器插件
    • 自动填充
    • 密码生成
    • 同步功能

5.2 书签同步子系统

功能描述:跨设备书签管理

  • 同步功能
    • 浏览器书签导入/导出
    • 实时同步
    • 冲突解决

5.3 第三方平台同步子系统

功能描述:整合各平台数据

  • Bilibili收藏同步
    • 收藏视频同步
    • 分类管理
    • 观看进度

5.4 文件管理子系统

功能描述:个人云存储和媒体中心

  • 存储功能
    • NAS集成
    • 文件上传下载
    • 文件夹管理
    • 权限控制
  • 媒体功能
    • 在线音视频播放
    • 图片预览
    • 文档在线查看
  • 传输功能
    • WebRTC点对点传输
    • 阿里云OSS集成
    • 断点续传

5.5 信息聚合子系统

功能描述:热点信息和内容聚合

  • 新闻聚合
    • 多源新闻抓取
    • 分类展示
    • 关键词过滤

高阶数据模型概览 (High-Level Data Model)

此为概念模型,用于指导数据库设计,具体字段和关系将在详细设计阶段确定。

  • 核心实体:

    • User: 存储用户信息 (id, username, email, password_hash)
    • Role: 角色定义 (id, name, description)
    • Permission: 权限定义 (id, action, resource)
    • Organization: 组织架构 (id, name, parent_id)
    • Dictionary: 数据字典 (id, type, key, value)
    • Note: 笔记内容 (id, user_id, title, content, content_type, parent_id)
    • Post: 博客文章 (id, user_id, source_note_id, title, content, status)
    • Tag: 标签 (id, name)
    • Category: 分类 (id, name)
    • Comment: 评论 (id, post_id, user_id, content, parent_id)
    • File: 文件管理 (id, user_id, file_name, path, type)
    • Bookmark: 书签 (id, user_id, title, url)
    • Password: 密码记录 (id, user_id, entry_name, username, encrypted_password)
  • 关系:

    • User (多) <-> (多) Role (通过 UserRole 中间表)
    • Role (多) <-> (多) Permission (通过 RolePermission 中间表)
    • User (多) <-> (多) Organization (通过 UserOrganization 中间表)
    • Note (一) -> (多) Post
    • Post (多) <-> (多) Tag (通过 PostTag 中间表)
    • Post (多) <-> (多) Category (通过 PostCategory 中间表)
    • Post (一) -> (多) Comment
    • User (一) -> (多) Note, Post, File, Bookmark, Password

关键用户交互流程 (Key User Flows)

流程一:新用户注册与激活

  1. 访问首页: 用户访问网站,点击"注册"按钮。
  2. 填写信息: 跳转至注册页面,要求输入用户名、邮箱和密码(密码需二次确认)。
  3. 前端校验: 实时校验用户名和邮箱是否已被占用,密码是否符合复杂度要求。
  4. 提交注册: 用户点击"注册",前端校验通过后,将数据发送至后端。
  5. 后端处理: 后端创建用户记录(状态为inactive生成验证Token并向用户邮箱发送一封包含激活链接含Token的邮件。
  6. 用户激活: 用户打开邮箱,点击激活链接。
  7. 激活验证: 后端验证Token有效性将用户状态更新为active,并引导用户至登录页面,提示"激活成功"。

流程二:从笔记到博客的发布

  1. 创建笔记: 用户在笔记系统中创建并编辑一篇笔记内容可以是Markdown、富文本等。
  2. 发起发布: 在笔记编辑页面,用户点击"发布为博客"按钮。
  3. 配置博客信息: 弹窗或新页面要求用户填写博客的URL slug、选择分类、添加标签、设置封面图等。
  4. 确认发布: 用户点击"确认发布"。
  5. 后端处理:
    • 后端在Posts表中创建一条新记录。
    • 复制当前版本的笔记内容到该Post记录中。
    • 记录该Post与源Note的关联关系 (source_note_id)。
    • 将博客状态设置为published
  6. 发布成功: 系统提示"发布成功",并提供查看博客文章的链接。
  7. 后续修改: 用户后续在原笔记上的任何修改,都不会影响已发布的这篇博客文章。用户可在博客管理界面选择"从笔记更新内容"来同步最新修改。

技术架构需求

后端技术栈

  • 框架Elysia + Bun.js
  • 数据库MySQL (主) + Redis (缓存) + Elasticsearch (搜索)
  • 对象存储支持本地存储、阿里云OSS、自建NAS
  • 消息队列Redis/RabbitMQ处理异步任务

前端技术栈

  • Web端Vue.js/React + TypeScript
  • 移动端PWA或React Native
  • 浏览器插件Manifest V3

基础设施

  • 部署Docker + Docker Compose
  • 监控:日志收集、性能监控、错误追踪
  • 安全HTTPS、数据加密、访问控制

API设计原则

  • RESTful风格: 使用标准的HTTP方法 (GET, POST, PUT, DELETE, PATCH)。
  • 版本控制: API URL中应包含版本号/api/v1/...
  • 统一响应格式: 所有响应遵循 { "code": 0, "message": "success", "data": {} } 结构。
  • 分页: 对列表数据提供统一的分页参数,如 pagepageSize
  • 排序与筛选: 支持通过URL参数对结果进行排序和筛选。
  • 认证: 受保护的API需通过Authorization头传递JWT。

非功能性需求

性能要求

  • 响应时间:页面加载<2s接口响应<500ms
  • 并发支持支持1000+并发用户
  • 可用性99.9%系统可用性

安全要求

  • 数据加密:敏感数据加密存储和传输
  • 访问控制:完善的认证和授权机制
  • 审计日志:关键操作日志记录

扩展性要求

  • 模块化设计:支持功能模块独立部署
  • API设计RESTful API支持版本控制
  • 数据库:支持读写分离和分库分表

开发优先级

第一期核心基础MVP

  1. 基础用户系统(用户管理、角色权限)
  2. 笔记系统核心功能
  3. 基础博客发布
  4. 系统基础架构

第二期:内容增强

  1. 完整的博客系统
  2. 个人空间功能
  3. 基础工具(密码管理、书签)
  4. 搜索优化

第三期:高级功能

  1. 阅读管理系统
  2. 文件管理系统
  3. AI集成功能
  4. 第三方平台同步

第四期:生态完善

  1. 移动端应用
  2. 浏览器插件
  3. 高级分析功能
  4. 性能优化

风险与挑战

技术风险

  • 数据迁移:大量历史数据的迁移和同步
  • 性能优化:大文件上传和处理
  • 第三方集成API变更和限制

产品风险

  • 功能复杂度:避免功能过于复杂影响用户体验
  • 数据安全:个人敏感数据的安全保护
  • 兼容性:跨浏览器和设备兼容

成功指标

用户指标

  • 日活跃用户数
  • 用户留存率
  • 功能使用率

技术指标

  • 系统响应时间
  • 错误率控制
  • 数据备份完整性

业务指标

  • 内容创作量
  • 用户满意度
  • 功能完成度

后续规划

短期目标6个月内

  • 完成第一期功能开发
  • 系统稳定性优化
  • 基础功能测试

中期目标1年内

  • 完成主要功能模块
  • 移动端支持
  • 性能优化

长期目标1年以上

  • AI功能深度集成
  • 开放API生态
  • 多语言支持