b5d3a6aaf3
- 项目概述和目标用户 - 功能需求(用户认证、文档管理、元数据展示) - 技术架构(目录结构、数据库设计) - 页面设计说明 - CI/CD 流程 - 样式规范(色彩、字体) - 安全设计 - 扩展计划 - 维护说明
8.7 KiB
8.7 KiB
kb-web 需求与设计文档
1. 项目概述
1.1 项目名称
kb-web(Knowledge Base Web)- 知识库网页系统
1.2 项目描述
kb-web 是一个基于 PHP 的知识库管理系统,用于展示和管理用户的知识库内容。系统支持从多种平台(Bilibili、YouTube、知乎等)采集的内容,并提供统一的浏览和搜索界面。
1.3 目标用户
- 个人用户:管理自己的知识库
- 团队用户:共享和管理团队知识资产
2. 功能需求
2.1 用户认证
| 功能 | 描述 |
|---|---|
| 用户登录 | 用户名 + 密码登录 |
| 会话管理 | 基于 PHP Session 的会话管理 |
| 登出功能 | 安全退出系统 |
2.2 文档管理
| 功能 | 描述 |
|---|---|
| 文档列表 | 分页展示所有文档 |
| 文档搜索 | 全文搜索文档内容 |
| 文档查看 | 在线阅读文档内容 |
| 目录结构 | 支持子目录分类展示 |
2.3 元数据展示
| 元数据 | 说明 |
|---|---|
| 标题 | 文档标题(从 YAML front matter 提取) |
| 作者 | 内容作者 |
| 发布时间 | 原始内容发布时间 |
| 平台 | 来源平台(Bilibili、YouTube、知乎等) |
| 标签 | 内容标签 |
| 时长 | 视频时长(仅视频类型) |
| 类型 | 文章 / 视频 |
| 源链接 | 原始内容链接 |
2.4 界面功能
| 功能 | 描述 |
|---|---|
| 响应式设计 | 支持桌面和移动设备 |
| 暗色主题 | 科技感暗色界面 |
| 搜索高亮 | 搜索结果关键词高亮 |
| Markdown 渲染 | 支持基本 Markdown 语法 |
3. 技术架构
3.1 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | HTML5, CSS3, JavaScript |
| 后端 | PHP 8.0+ |
| 数据库 | MySQL 5.7+ |
| Web 服务器 | Nginx |
| 部署 | Git + CI/CD (Gitea Actions) |
3.2 目录结构
kb-web/
├── index.php # 登录页
├── dashboard.php # 文档列表页
├── view.php # 文档查看页
├── config.php # 配置文件(不纳入版本控制)
├── config.test.php # 测试环境配置模板
├── style.css # 样式文件
├── logout.php # 登出处理
├── add_user.php # 用户添加
├── init.sql # 数据库初始化脚本
├── docs/ # 文档目录
│ └── requirements.md
├── deploy/ # 部署脚本
│ ├── deploy.sh
│ ├── setup-server.sh
│ └── webhook-receiver.php
├── tests/ # 测试文件
│ ├── bootstrap.php
│ ├── Unit/
│ └── Feature/
├── .gitea/ # CI/CD 配置
│ └── workflows/
│ └── ci.yml
├── .gitignore
├── composer.json
├── phpunit.xml
└── README.md
3.3 数据库设计
用户表 (users)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键,自增 |
| username | VARCHAR(50) | 用户名,唯一 |
| password_hash | VARCHAR(255) | 密码哈希 |
| created_at | TIMESTAMP | 创建时间 |
3.4 文件存储结构
用户目录/
├── 用户名1/
│ ├── analyzed/ # 分析后的 Markdown 文件
│ ├── metadata/ # 元数据 JSON 文件
│ ├── content/ # 原始内容文件
│ └── pending/ # 待处理文件
└── 用户名2/
└── ...
4. 页面设计
4.1 登录页 (index.php)
功能:
- 用户名密码输入
- 错误提示
- 登录验证
设计特点:
- 居中登录框
- 渐变背景 + 旋转光效
- 玻璃拟态卡片
- 品牌标题 "知识库"
4.2 文档列表页 (dashboard.php)
功能:
- 搜索栏
- 文档统计
- 文档卡片列表
- 用户信息显示
卡片信息展示:
- 平台图标
- 类型图标
- 标题
- 作者、发布时间、平台、时长
- 标签(最多5个)
- 源链接
- 概述(前两行)
4.3 文档查看页 (view.php)
功能:
- 返回列表
- 元数据卡片
- Markdown 内容渲染
- 搜索高亮
元数据卡片:
- 作者
- 发布时间
- 平台(彩色徽章)
- 时长
- 类型
- 源链接
- 标签列表
5. CI/CD 流程
5.1 部署流程
┌─────────────────────────────────────────────────────────────┐
│ feature/* 分支 push │
│ │ │
│ ▼ │
│ 自动部署到测试环境 (http://micecola.top:8081) │
│ │ │
│ ▼ │
│ 运行测试 │
│ │ 通过 │
│ ▼ │
│ 自动合并到 main │
│ │ │
│ ▼ │
│ ⏸️ 等待手动确认... │
│ │ │
│ ▼ 手动触发 │
│ 部署到正式环境 (http://micecola.top) │
└─────────────────────────────────────────────────────────────┘
5.2 环境配置
| 环境 | 域名 | 目录 | 触发方式 |
|---|---|---|---|
| 测试 | http://micecola.top:8081 | /www/wwwroot/kb-web-test | 自动 |
| 正式 | http://micecola.top | /www/wwwroot/kb-web | 手动 |
5.3 部署特性
- ✅ 配置文件保护(config.php 不被覆盖)
- ✅ 自动备份(保留最近5个版本)
- ✅ 版本回滚支持
- ✅ 环境隔离
6. 样式规范
6.1 色彩系统
| 名称 | 色值 | 用途 |
|---|---|---|
| 背景深色 | #0a0e17 | 页面背景 |
| 背景表面 | #111827 | 卡片背景 |
| 强调色-青 | #38bdf8 | 主色调、链接 |
| 强调色-紫 | #a855f7 | 辅助强调 |
| 强调色-绿 | #22c55e | 成功状态 |
| 文字主色 | #f1f5f9 | 主要文字 |
| 文字次色 | #94a3b8 | 次要文字 |
6.2 平台颜色
| 平台 | 色值 |
|---|---|
| Bilibili | #fb7299 |
| YouTube | #ff0000 |
| 知乎 | #0084ff |
| 微信 | #07c160 |
6.3 字体
| 用途 | 字体 |
|---|---|
| 正文 | Space Grotesk |
| 代码 | JetBrains Mono |
7. 安全设计
7.1 已实现
| 安全措施 | 说明 |
|---|---|
| 密码哈希 | 使用 password_hash() |
| SQL 注入防护 | PDO 预处理语句 |
| XSS 防护 | htmlspecialchars() |
| 目录遍历防护 | 路径检查 |
| 会话管理 | PHP Session |
7.2 待加强
- CSRF 防护
- 登录失败次数限制
- HTTPS 强制
- 密码强度验证
8. 扩展计划
8.1 短期计划
- 分页功能
- 标签筛选
- 收藏功能
- 阅读进度记录
8.2 长期计划
- 多用户协作
- 权限管理
- API 接口
- 移动端 App
- 全文搜索优化(Elasticsearch)
9. 依赖项目
9.1 关联仓库
| 仓库 | 说明 |
|---|---|
| kb-skills | 内容处理技能模块 |
| knowledge-base | 知识库内容存储 |
9.2 知识库同步
knowledge-base 仓库独立部署,自动同步到用户目录:
- 测试环境:/www/wwwroot/kb-web-test/zhangqing/
- 正式环境:/www/wwwroot/kb-web/zhangqing/
10. 维护说明
10.1 日志位置
| 日志 | 路径 |
|---|---|
| Nginx 访问日志 | /www/wwwlogs/micecola.top.log |
| Nginx 错误日志 | /www/wwwlogs/micecola.top.error.log |
| 部署日志 | /var/log/kb-web-deploy.log |
| 备份目录 | /www/backup/kb-web/ |
10.2 常用命令
# 手动部署测试环境
cd /www/wwwroot/kb-web-test && git pull origin main
# 手动部署正式环境
cd /www/wwwroot/kb-web && git pull origin main
# 查看备份
ls /www/backup/kb-web/
# 回滚到备份版本
tar -xzf /www/backup/kb-web/backup_XXX.tar.gz -C /www/wwwroot/kb-web/
11. 版本历史
| 版本 | 日期 | 变更内容 |
|---|---|---|
| 1.0.0 | 2026-02-13 | 初始版本,基础功能 |
| 1.1.0 | 2026-02-15 | 暗色科技感风格改造 |
| 1.2.0 | 2026-02-15 | CI/CD 自动部署 |
| 1.3.0 | 2026-02-15 | 元数据展示优化,标签支持 |
文档最后更新:2026-02-15