work/docs/产品需求文档.md
2025-12-17 22:30:44 +08:00

36 KiB
Raw Blame History

书签管理系统 - 产品需求文档

版本: 2.0.0
最后更新: 2025-12-12
文档类型: 产品需求文档 (PRD)


目录

  1. 产品概述
  2. 用户场景
  3. 功能模块
  4. 浏览器扩展功能
  5. 用户与设备管理
  6. 后台管理系统
  7. 数据同步机制
  8. 功能优先级
  9. 非功能需求

1. 产品概述

1.1 产品定位

书签管理系统是一个云端多设备协同的个人网页书签管理工具,通过 Web 应用 + 浏览器扩展 + 后台管理的组合,提供统一的书签管理、智能搜索、多设备同步和隐私控制能力。

  • v1.0 MVP版本:已完成,代码放在 mvp/ 文件夹下
  • v2.0 云端版本:已完成,代码放在 src/ 文件夹下

1.2 目标用户

  • 需要管理大量网页书签的个人用户
  • 经常在多个浏览器/设备间切换的用户
  • 需要对书签进行分类整理的知识工作者
  • 希望快速检索历史收藏的开发者/研究人员
  • 需要在不同场景(公司/家庭)控制书签可见性的用户

1.3 核心价值

价值点 描述
统一管理 跨浏览器、跨设备统一管理所有书签
智能搜索 支持模糊搜索、拼音搜索、多关键词搜索
自动同步 浏览器书签操作自动同步到云端
便捷访问 新标签页即为书签主页,随时可用
隐私控制 不同设备可设置不同的书签可见范围
多设备协同 一个账号登录多台设备,数据云端同步

1.4 产品组成

组件 技术栈 描述
Bookmark SPA Vue 3 书签管理 Web 应用(核心功能载体)
Browser Extension JavaScript 浏览器扩展(同步桥梁 + 便捷入口)
Backend API C# / .NET 后端服务(数据存储(ORM使用freesql) + 业务逻辑)
Admin Panel Vue 后台管理系统(用户管理 + 数据管理)
Database SQL Server / PostgreSQL 数据持久化存储

1.5 系统架构

┌─────────────────────────────────────────────────────────────────┐
│                         客户端                                   │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────────┐  │
│  │ Bookmark SPA│  │  浏览器扩展  │  │     后台管理系统        │  │
│  │  (Vue 3)    │  │ (Extension) │  │    (Admin Panel)        │  │
│  └──────┬──────┘  └──────┬──────┘  └───────────┬─────────────┘  │
└─────────┼────────────────┼─────────────────────┼────────────────┘
          │                │                     │
          └────────────────┼─────────────────────┘
                           │
                    ┌──────▼──────┐
                    │  Backend API │
                    │   (C#/.NET)  │
                    └──────┬──────┘
                           │
                    ┌──────▼──────┐
                    │   Database   │
                    │ (SQL Server) │
                    └─────────────┘

2. 用户场景

2.1 场景一:日常书签收藏

用户故事: 作为一个用户,我希望在浏览网页时能快速收藏当前页面,并自动同步到我的书签管理系统。

操作流程:

  1. 用户在浏览器中正常使用 Ctrl+D 添加书签
  2. 扩展自动检测到新增书签
  3. 书签自动同步到云端服务器
  4. 系统根据书签来源文件夹自动添加标签

2.2 场景二:快速查找书签

用户故事: 作为一个用户,我希望能快速找到之前收藏的某个网页,即使我只记得部分关键词。

操作流程:

  1. 用户打开新标签页(直接看到书签主页)
  2. 按 Ctrl+K 打开搜索
  3. 输入模糊关键词或拼音首字母
  4. 从搜索结果中找到目标书签并打开

2.3 场景三:整理分类书签

用户故事: 作为一个用户,我希望能对我的书签进行分类整理,方便日后查找和管理。

操作流程:

  1. 用户打开书签管理应用
  2. 为书签添加/修改标签
  3. 按标签分组查看书签
  4. 拖拽调整书签顺序

2.4 场景四:多设备同步

用户故事: 作为一个用户,我希望在不同设备上都能访问我的书签,数据实时同步。

操作流程:

  1. 用户在设备 A 上登录账号
  2. 在设备 A 上收藏书签
  3. 数据自动同步到云端
  4. 在设备 B 上登录同一账号
  5. 在设备 B 上查看同步后的书签

2.5 场景五:公司电脑隐私保护 新增

用户故事: 作为一个用户,我在公司电脑上使用书签管理系统,但有些私人书签不想在公司设备上显示。

操作流程:

  1. 用户在家庭电脑(管理员设备)上登录
  2. 将某些书签标记为「私密」或设置可见设备
  3. 用户在公司电脑上登录同一账号
  4. 公司电脑只能看到「公开」或「允许该设备查看」的书签
  5. 家庭电脑(管理员设备)可以看到所有书签

2.6 场景六:管理员设备管理

用户故事: 作为一个用户,我希望指定一台设备为管理员设备,可以管理所有书签和设备设置。

操作流程:

  1. 用户首次登录时,该设备自动成为管理员设备
  2. 在管理员设备上可以:
    • 查看所有书签(包括私密书签)
    • 设置书签的可见性范围
    • 管理其他设备的权限
    • 添加/移除设备

2.7 场景七:后台管理(管理员)

用户故事: 作为系统管理员,我希望能在后台管理所有用户和他们的数据。

操作流程:

  1. 管理员登录后台管理系统
  2. 查看用户列表、用户的设备、书签统计
  3. 可以禁用/启用用户账号
  4. 可以查看和管理用户的书签数据

3. 功能模块

3.1 书签管理模块

3.1.1 书签 CRUD

功能 描述 优先级
新增书签 手动添加书签填写标题、URL、描述、标签 P0
编辑书签 修改书签的所有字段信息 P0
删除书签 删除单个书签,需二次确认 P0
查看详情 查看书签完整信息 P0
批量删除 勾选多个书签后批量删除 P1
批量打标签 为多个书签同时添加标签 P1

3.1.2 书签列表

功能 描述 优先级
列表展示 以卡片/列表形式展示所有书签 P0
按标签分组 书签按标签分组展示 P0
拖拽排序 拖拽调整书签顺序 P1
最近访问 展示最近访问的书签 P0
常用书签 按访问频次展示常用书签 P1

3.1.3 访问追踪

功能 描述 优先级
点击计数 记录每个书签的访问次数 P0
访问时间 记录最后访问时间 P0
访问统计 展示访问统计报表 P2

3.2 搜索模块

3.2.1 全局搜索

功能 描述 优先级
快捷键唤起 Ctrl+K 打开搜索(可自定义) P0
模糊搜索 支持模糊匹配 P0
拼音搜索 支持拼音全拼和首字母搜索 P0
多关键词 空格分隔多关键词 AND 搜索 P0
实时搜索 输入时实时展示结果 P0
键盘导航 方向键导航,回车打开 P0

3.2.2 搜索范围

搜索字段 权重 描述
标题 书签标题
标签 书签标签
描述 书签描述
URL 书签链接

3.2.3 结果排序

排序规则 优先级
精确标题匹配 最高
部分标题匹配
标签匹配
高访问量
其他匹配

3.3 标签管理模块

3.3.1 标签功能

功能 描述 优先级
自动创建 添加书签时自动创建新标签 P0
标签列表 展示所有标签及使用数量 P0
标签筛选 按标签筛选书签 P0
标签重命名 修改标签名称 P1
标签合并 将多个标签合并为一个 P2
标签删除 删除未使用的标签 P1
标签排序 自定义标签显示顺序 P2
未分类 无标签书签自动归入"未分类" P0

3.4 数据导入导出模块

3.4.1 JSON 导入导出

功能 描述 优先级
导出 JSON 将所有书签导出为 JSON 文件 P0
导入 JSON 从 JSON 文件导入书签 P0
覆盖/合并 导入时可选覆盖或合并 P0

3.4.2 浏览器书签导入

功能 描述 优先级
HTML 解析 解析浏览器导出的 HTML 书签文件 P0
选择性导入 用户可勾选需要导入的书签 P0
重复检测 自动检测并跳过重复书签 P0
文件夹转标签 将书签文件夹路径转为标签 P1
导入预览 导入前预览书签列表 P0
导入进度 大量导入时显示进度 P1

3.5 设置模块

3.5.1 外观设置

功能 描述 优先级
主题切换 浅色/深色/跟随系统 P0
视图模式 卡片视图/列表视图/标签分组视图 P1

3.5.2 快捷键设置

功能 描述 优先级
搜索快捷键 自定义搜索唤起快捷键 P0
快捷键捕获 可视化快捷键设置 P0

4. 浏览器扩展功能

4.1 自动同步功能 新增

4.1.1 书签新增同步

功能 描述 优先级
监听新增 监听浏览器书签新增事件 P0
自动同步 新增书签自动同步到应用 P0
自动标签 根据书签文件夹自动添加标签 P0
同步提示 同步成功/失败时显示通知 P1

详细需求:

  • 当用户在浏览器中通过任何方式Ctrl+D、右键、书签栏等添加书签时扩展自动检测
  • 将新书签的标题、URL、图标、添加时间同步到书签管理应用
  • 根据书签所在的文件夹路径,自动为书签添加对应标签
    • 例:书签在「工作/项目A」文件夹 → 自动添加「工作」「项目A」标签
  • 同步完成后在扩展图标上显示提示徽章

4.1.2 书签删除同步

功能 描述 优先级
监听删除 监听浏览器书签删除事件 P1
可选同步 用户可设置是否同步删除 P1
删除确认 可选择是否需要确认 P2

4.1.3 书签修改同步

功能 描述 优先级
监听修改 监听书签标题/URL 修改 P1
自动更新 修改后自动同步到应用 P1

4.1.4 同步设置

功能 描述 优先级
同步开关 可开启/关闭自动同步 P0
同步方向 单向同步(浏览器→应用) P0
同步范围 可选择同步特定文件夹 P2

4.2 新标签页替换 新增

4.2.1 主页替换

功能 描述 优先级
新标签页 新标签页默认显示书签应用 P0
快速访问 打开浏览器即可看到书签 P0
搜索聚焦 新标签页自动聚焦搜索框 P1

详细需求:

  • 用户打开新标签页时,直接展示书签管理应用主页
  • 主页展示最近访问、常用书签、全部书签等信息
  • 支持快捷键快速搜索
  • 可在设置中关闭此功能,恢复浏览器默认新标签页

4.2.2 主页布局

区域 内容 优先级
搜索区 搜索框 + 快捷键提示 P0
快速访问 最近访问的书签(最多 8 个) P0
常用书签 访问最多的书签 P1
书签库 全部书签(按标签分组) P0

4.3 全局快捷键搜索 新增

4.3.1 功能概述

功能 描述 优先级
全局快捷键 在任意网页按快捷键唤起搜索 P0
浮层搜索框 在当前页面弹出搜索浮层 P0
实时搜索 输入即搜索,展示匹配结果 P0
键盘导航 方向键导航,回车打开书签 P0
ESC 关闭 按 ESC 关闭搜索浮层 P0

详细需求:

  • 通过 Content Script 注入到所有网页
  • 用户在任意页面按下快捷键(如 Alt+K 或自定义)触发搜索
  • 页面上弹出一个浮层搜索框(类似 SPA 中的搜索模态框)
  • 搜索框支持模糊搜索、拼音搜索
  • 搜索结果显示书签标题、URL、标签
  • 点击结果或回车直接在新标签页打开书签
  • 按 ESC 或点击遮罩关闭搜索浮层

4.3.2 快捷键配置

配置项 默认值 说明
搜索快捷键 Alt+K 可自定义,避免与网页快捷键冲突
启用/禁用 启用 可关闭全局快捷键功能
排除网站 可设置某些网站不注入

4.3.3 搜索浮层设计

元素 描述
遮罩层 半透明背景,点击关闭
搜索输入框 自动聚焦,支持清空
快捷键提示 显示当前快捷键
结果列表 最多显示 8-10 条结果
结果项 图标 + 标题 + URL截断+ 标签
空状态 无结果时显示提示
底部提示 键盘操作说明

4.4 快捷收藏功能 新增

4.4.1 一键收藏Popup 方式)

功能 描述 优先级
工具栏按钮 点击扩展图标快速收藏当前页 P1
快速编辑 收藏时可编辑标题/标签 P1
收藏确认 显示收藏成功提示 P1
仅存应用 可选择不保存到浏览器书签 P2

详细需求:

  • 点击扩展图标弹出 Popup
  • Popup 中显示「收藏当前页」按钮
  • 点击后展开编辑表单标题、URL、标签
  • 用户可选择:仅保存到应用 / 同时保存到浏览器书签
  • 此功能与「监听系统收藏」不冲突,是两个独立入口

4.4.2 右键菜单

功能 描述 优先级
添加到书签 右键页面添加当前页 P1
添加链接 右键链接添加该链接 P1
搜索书签 右键选中文字搜索书签 P2

4.5 Popup 内搜索

4.5.1 功能描述

功能 描述 优先级
Popup 搜索框 在 Popup 中提供搜索入口 P2
快速搜索 输入关键词搜索书签 P2
搜索结果 显示匹配的书签列表 P2
快速打开 点击结果直接打开 P2

说明: 此功能作为全局快捷键搜索的补充,优先级较低。用户更常用的是全局快捷键搜索。


4.6 事件监控功能

4.6.1 书签事件

功能 描述 优先级
创建事件 记录书签创建操作 P0
删除事件 记录书签删除操作 P0
修改事件 记录书签修改操作 P0
移动事件 记录书签移动操作 P1

4.6.2 事件展示

功能 描述 优先级
事件列表 在 Popup 中展示最近事件 P0
事件统计 显示事件数量统计 P0
书签总数 显示浏览器书签总数 P0

4.7 Popup 界面

4.7.1 界面布局

区域 功能 优先级
头部 扩展名称/Logo P0
快捷操作 一键收藏当前页按钮(展开编辑表单) P1
搜索框 快速搜索书签 P2
统计信息 书签总数、事件数量 P0
操作按钮 打开应用、刷新、设置 P0
事件列表 最近书签操作记录 P0
底部 版本信息、全局搜索快捷键提示 P0

4.7.2 交互设计

交互 描述 优先级
收藏反馈 收藏成功显示动画/提示 P0
加载状态 操作时显示加载状态 P0
错误提示 操作失败显示错误信息 P0

5. 用户与设备管理 新增

5.1 用户系统

5.1.1 用户注册

功能 描述 优先级
邮箱注册 使用邮箱 + 密码注册 P0
邮箱验证 发送验证邮件确认 P1
用户名设置 设置显示名称 P0

5.1.2 用户登录

功能 描述 优先级
邮箱登录 邮箱 + 密码登录 P0
记住登录 可选记住登录状态 P0
退出登录 退出当前设备 P0
退出所有设备 清除所有设备登录状态 P1
找回密码 通过邮箱重置密码 P1

5.1.3 用户信息

字段 描述
用户ID 唯一标识
邮箱 登录账号
用户名 显示名称
密码 加密存储
头像 用户头像(可选)
创建时间 注册时间
最后登录 最后登录时间
状态 正常/禁用

5.2 设备管理

5.2.1 设备注册

功能 描述 优先级
自动注册 首次登录时自动注册设备 P0
设备命名 用户可自定义设备名称 P0
设备识别 自动识别设备类型(浏览器/系统) P0

5.2.2 设备信息

字段 描述
设备ID 唯一标识
用户ID 所属用户
设备名称 用户自定义名称(如:家庭电脑、公司笔记本)
设备类型 浏览器类型 + 操作系统
是否管理员 是否为管理员设备
创建时间 首次登录时间
最后活跃 最后使用时间
状态 正常/禁用

5.2.3 管理员设备

功能 描述 优先级
首个设备为管理员 用户首次登录的设备自动成为管理员 P0
管理员转移 可将管理员权限转移到其他设备 P1
管理员权限 查看所有书签、管理设备、设置可见性 P0

5.2.4 设备管理操作

功能 描述 优先级
查看设备列表 查看所有已登录的设备 P0
重命名设备 修改设备显示名称 P0
移除设备 删除设备并退出登录 P0
设置管理员 指定某设备为管理员 P1

5.3 书签可见性控制

5.3.1 可见性级别

级别 描述 可见范围
公开 所有设备可见 所有已登录设备
私密 仅管理员设备可见 仅管理员设备
指定设备 仅指定设备可见 选择的设备列表

5.3.2 可见性设置

功能 描述 优先级
单个书签设置 为单个书签设置可见性 P0
批量设置 批量修改多个书签的可见性 P1
标签级别设置 按标签设置默认可见性 P2
新书签默认值 设置新增书签的默认可见性 P1

5.3.3 可见性数据模型

字段 类型 描述
书签ID string 关联的书签
可见性类型 enum public / private / specified
允许的设备列表 string[] 可见性为 specified 时的设备ID列表

5.3.4 可见性规则

规则 描述
管理员设备 始终可以看到所有书签
公开书签 所有设备都可以看到
私密书签 仅管理员设备可见
指定设备 仅在允许列表中的设备可见
新增书签 继承用户设置的默认可见性

6. 后台管理系统 新增

6.1 后台概述

项目 说明
用途 系统管理员管理用户和数据
技术栈 C# / .NET
访问方式 独立的管理后台 Web 页面
权限要求 仅系统管理员可访问

6.2 管理员账号

6.2.1 管理员类型

类型 描述
超级管理员 拥有所有权限,可管理其他管理员
普通管理员 可管理用户和书签数据

6.2.2 管理员功能

功能 超级管理员 普通管理员
查看用户列表
禁用/启用用户
查看用户书签
删除用户书签
管理管理员账号
系统配置

6.3 用户管理

6.3.1 用户列表

功能 描述 优先级
用户列表 分页展示所有用户 P0
搜索用户 按邮箱/用户名搜索 P0
筛选用户 按状态、注册时间筛选 P1
用户详情 查看用户详细信息 P0

6.3.2 用户操作

功能 描述 优先级
禁用用户 禁止用户登录 P0
启用用户 恢复用户登录权限 P0
重置密码 重置用户密码 P1
删除用户 删除用户及其所有数据 P1

6.3.3 用户统计

统计项 描述
用户总数 注册用户总数
活跃用户 最近 7 天活跃用户数
新增用户 今日/本周/本月新增
设备数量 用户的设备数量

6.4 设备管理

6.4.1 设备列表

功能 描述 优先级
设备列表 查看某用户的所有设备 P0
设备详情 查看设备详细信息 P0

6.4.2 设备操作

功能 描述 优先级
强制下线 强制某设备退出登录 P1
禁用设备 禁止某设备登录 P1

6.5 书签管理

6.5.1 书签列表

功能 描述 优先级
书签列表 查看某用户的所有书签 P0
搜索书签 按标题/URL 搜索 P0
筛选书签 按标签、可见性筛选 P1

6.5.2 书签操作

功能 描述 优先级
查看详情 查看书签完整信息 P0
删除书签 删除违规书签 P1

6.5.3 书签统计

统计项 描述
书签总数 系统书签总数
用户书签数 某用户的书签数量
标签统计 各标签使用次数

6.6 系统统计

6.6.1 仪表盘

统计项 描述
用户总数 注册用户总数
活跃用户 DAU / WAU / MAU
书签总数 系统书签总数
设备总数 登录设备总数
今日新增 今日新增用户/书签

6.6.2 趋势图表

图表 描述 优先级
用户增长 每日新增用户趋势 P2
书签增长 每日新增书签趋势 P2
活跃趋势 每日活跃用户趋势 P2

6.7 系统配置

配置项 描述 优先级
注册开关 是否允许新用户注册 P1
邮件配置 SMTP 邮件发送配置 P1
存储配置 数据库连接配置 P1

7. 数据同步机制

7.1 同步架构

┌─────────────────────────────────────────────────────────────┐
│                      收藏入口                                │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  方式1: 监听系统收藏                                         │
│  ┌──────────────┐    ┌──────────┐    ┌──────────────────┐  │
│  │ 用户 Ctrl+D  │───→│  扩展    │───→│  云端 API        │  │
│  │ 浏览器收藏   │    │  监听    │    │  自动新增        │  │
│  └──────────────┘    └──────────┘    └──────────────────┘  │
│                                                             │
│  方式2: 一键收藏Popup                                    │
│  ┌──────────────┐    ┌──────────┐    ┌──────────────────┐  │
│  │ 点击扩展图标 │───→│  Popup   │───→│  云端 API        │  │
│  │ 快速收藏     │    │  表单    │    │  (可选同步浏览器)│  │
│  └──────────────┘    └──────────┘    └──────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘
                           │
                    ┌──────▼──────┐
                    │ Backend API  │
                    │   (C#/.NET)  │
                    └──────┬──────┘
                           │
                    ┌──────▼──────┐
                    │   Database   │
                    └─────────────┘

7.2 两种收藏方式对比

对比项 监听系统收藏 一键收藏Popup
触发方式 Ctrl+D / 右键收藏 点击扩展图标
是否存浏览器 是(用户主动操作的) 可选
是否存云端 是(自动同步)
能否编辑 否(自动) 是(可编辑标签)
标签来源 文件夹自动映射 用户手动选择
可见性 继承默认设置 可手动选择
使用场景 习惯用浏览器收藏 想快速分类整理

7.3 同步规则

7.3.1 新增同步

场景 处理方式
浏览器新增书签 自动同步到云端,提取文件夹作为标签
应用新增书签 保存到云端(单向同步到浏览器可选)

7.3.2 重复处理

场景 处理方式
URL 已存在 跳过,不重复添加
标题不同 保留云端中的标题

7.3.3 标签映射

文件夹结构 标签结果
书签栏/工作 「工作」
书签栏/工作/项目A 「工作」「项目A」
其他书签/学习/Vue 「学习」「Vue」

7.4 同步配置

配置项 选项 默认值
自动同步开关 开启/关闭 开启
同步删除 开启/关闭 关闭
同步通知 开启/关闭 开启
标签提取层级 1-3 级 2 级
新书签默认可见性 公开/私密 公开

8. 功能优先级

8.1 P0 - 核心功能v2.0 已全部完成

模块 功能 状态
用户系统 用户注册/登录
用户系统 设备自动注册与管理
用户系统 管理员设备机制
用户系统 书签可见性控制(公开/私密/指定设备)
扩展 用户登录状态管理
扩展 书签新增自动同步(监听系统收藏)
扩展 自动添加标签(文件夹映射)
扩展 同步开关设置
应用 书签 CRUD云端存储
应用 全局搜索(模糊+拼音)
应用 标签管理
后端 用户认证 APIJWT + RefreshToken
后端 书签 CRUD API
后端 设备管理 API
后端 可见性控制 API
后台 用户列表/详情/管理
后台 书签查看/管理
后台 系统统计数据

8.2 P1 - 重要功能v2.0 已全部完成

模块 功能 状态
用户系统 找回密码 ⏸️ 暂缓
用户系统 退出所有设备
用户系统 指定设备可见性
用户系统 新书签默认可见性设置
扩展 书签删除/修改同步 🔄 部分完成(删除功能预留)
扩展 URL重复检测
应用 批量操作
应用 拖拽排序 排序API已完成
应用 设备管理界面
应用 可见性管理界面
后端 批量删除 API
后端 访问记录 API
后台 设备管理(强制下线/禁用)
后台 管理员权限控制
后台 重置用户密码

8.3 P2 - 增强功能v3.0 规划中)

模块 功能 状态
用户系统 邮箱验证 📋
用户系统 标签级别可见性 📋
扩展 新标签页替换为书签应用 📋
扩展 全局快捷键搜索(任意页面) 📋
扩展 同步特定文件夹 📋
扩展 右键菜单添加书签 📋
扩展 Popup 快速收藏 📋
应用 标签合并 📋
应用 标签排序 📋
应用 访问统计报表 📋
后台 趋势图表 📋
后台 数据导出 📋

8.4 P3 - 未来功能(后续考虑)

模块 功能 状态
全局 团队共享书签 📋
应用 AI 智能分类 📋
应用 网页快照 📋
后端 第三方登录(微信/GitHub 📋

9. 非功能需求

9.1 性能需求

指标 要求
首屏加载 < 2 秒
搜索响应 < 500ms
同步延迟 < 1 秒
支持书签数 10,000+

9.2 兼容性需求

平台 版本要求
Chrome 90+
Edge 90+
Firefox 88+(需适配 Manifest V2

9.3 安全需求

需求 描述
数据存储 云端服务器加密存储
传输加密 HTTPS 传输
密码加密 密码使用 bcrypt/Argon2 加密存储
Token 认证 JWT Token 认证,定期刷新
权限最小化 扩展仅申请必要的权限
隐私保护 不收集用户浏览数据

扩展所需权限说明

权限 用途
storage 存储登录状态和扩展设置
bookmarks 监听书签增删改事件
activeTab 获取当前页面信息(一键收藏)
webNavigation 监控导航事件
Content Scripts 注入到所有页面,实现全局快捷键搜索

后端安全要求

要求 描述
SQL 注入防护 使用参数化查询
XSS 防护 输入输出过滤
CSRF 防护 Token 验证
速率限制 API 请求频率限制
日志审计 关键操作日志记录

9.4 可用性需求

需求 描述
离线提示 无网络时提示用户,缓存最近数据
响应式设计 适配不同屏幕尺寸
键盘操作 支持完整的键盘导航
无障碍 支持屏幕阅读器
多语言 预留多语言支持(后续)

9.5 后端技术要求

项目 要求
框架 ASP.NET Core 8+
数据库 SQL Server 或 PostgreSQL
ORM Entity Framework Core
认证 JWT Bearer Token
API 文档 Swagger / OpenAPI
部署 Docker 容器化

附录

A. 术语表

术语 解释
SPA Single Page Application单页应用
Popup 浏览器扩展点击图标弹出的小窗口
Manifest V3 Chrome 扩展最新规范
JWT JSON Web Token用于用户认证
API Application Programming Interface应用程序接口
管理员设备 用户指定的主设备,可查看所有书签
可见性 书签在不同设备上的显示权限控制

B. 数据模型概览

用户表 (Users)

字段 类型 描述
Id GUID 主键
Email string 邮箱(唯一)
UserName string 用户名
PasswordHash string 密码哈希
Avatar string 头像URL
CreatedAt DateTime 创建时间
LastLoginAt DateTime 最后登录
Status enum 状态(正常/禁用)

设备表 (Devices)

字段 类型 描述
Id GUID 主键
UserId GUID 用户ID
DeviceName string 设备名称
DeviceType string 设备类型
IsAdmin bool 是否管理员设备
CreatedAt DateTime 首次登录
LastActiveAt DateTime 最后活跃
Status enum 状态

书签表 (Bookmarks)

字段 类型 描述
Id GUID 主键
UserId GUID 用户ID
Title string 标题
Url string URL
Description string 描述
Icon string 图标
Tags string[] 标签数组
VisitCount int 访问次数
LastVisitTime DateTime 最后访问
Order long 排序值
Visibility enum 可见性类型
AllowedDevices GUID[] 允许的设备ID
CreatedAt DateTime 创建时间
UpdatedAt DateTime 更新时间

书签可见性枚举 (Visibility)

描述
Public 所有设备可见
Private 仅管理员设备可见
Specified 仅指定设备可见

C. 版本规划

版本 目标 状态
v1.0 MVP 功能验证(本地存储) 已完成
v2.0 云端存储 + 用户系统 + 设备管理 + 书签可见性控制 + 浏览器扩展同步 + 后台管理系统 已完成
v3.0 增强功能(新标签页替换、全局快捷键搜索、高级统计报表) 📋 规划中

D. API 接口概览

认证接口

接口 方法 描述
/api/auth/register POST 用户注册
/api/auth/login POST 用户登录
/api/auth/logout POST 退出登录
/api/auth/refresh POST 刷新 Token
/api/auth/password/reset POST 重置密码

用户接口

接口 方法 描述
/api/user/profile GET 获取用户信息
/api/user/profile PUT 更新用户信息

设备接口

接口 方法 描述
/api/devices GET 获取设备列表
/api/devices/{id} PUT 更新设备信息
/api/devices/{id} DELETE 移除设备
/api/devices/{id}/admin PUT 设置管理员设备

书签接口

接口 方法 描述
/api/bookmarks GET 获取书签列表(根据设备过滤可见性)
/api/bookmarks POST 新增书签
/api/bookmarks/{id} GET 获取书签详情
/api/bookmarks/{id} PUT 更新书签
/api/bookmarks/{id} DELETE 删除书签
/api/bookmarks/{id}/visibility PUT 设置可见性
/api/bookmarks/batch POST 批量操作
/api/bookmarks/import POST 导入书签
/api/bookmarks/export GET 导出书签

标签接口

接口 方法 描述
/api/tags GET 获取标签列表
/api/tags/{name} PUT 重命名标签
/api/tags/{name} DELETE 删除标签

E. 参考文档


📝 文档维护: 本文档随产品迭代持续更新