# 个人网站综合平台产品需求文档 (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": {} }` 结构。 - **分页**: 对列表数据提供统一的分页参数,如 `page` 和 `pageSize`。 - **排序与筛选**: 支持通过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生态 - 多语言支持