测试
TP-Docs 商业版 (v1.0) 产品需求文档
更新时间: 2026-02-08 23:28
阅读: 3220
| 项目 | 内容 | | -------- | ------------------------------------------------------------ | | 产品名称 | TP-Docs (商业代号:K-Base) | | 定位 | 一款基于 ThinkPHP 的轻量级、私有化部署 Markdown 知识库系统。 | | 商业模式 | 源码一次性买断 (License) + 增值插件 (AI/Widget) | | 核心卖点 | 1分钟安装、支持嵌入任意网站 (Widget)、多套主题模板、AI 问答集成。 | | 技术栈 | ThinkPHP 8 + Layui 2.8 + jQuery + Editor.md + SQLite/MySQL | 1. ## 产品架构 1. 这是一个完整的 CMS 网站。用户部署后,拥有独立的域名(如 `docs.shuquanit.com`),用于展示知识库文档。 1. ## 核心功能模块 (商业化重构) ### 2.1 安装与初始化 (Installer) [P0] *目标:小白用户也能在宝塔面板一键安装,降低售后成本。* - **环境****检测:** 自动检查 PHP 版本 (>8.0)、目录权限 (`/runtime`, `/public/uploads`)、扩展 (`fileinfo`, `mbstring`)。 - **数据库配置:** 表单输入 Host, User, Pass, DB Name。 - **自动建表:** 读取 `install.sql` 并在数据库执行。 - **管理员****初始化****:** 设置第一个 Admin 账号。 - **安装锁:** 安装完成后生成 `install.lock` 文件,防止重复安装。 ### 2.2 系统配置与白标 (OEM) [P0] *目标:让用户觉得这就是他们自己的系统。* - **基础设置:** 网站标题、SEO 关键词、描述。 - **品牌设置:** 上传 Logo、Favicon、自定义 Footer 版权文字。 - **外观设置 (Theming):** - **色调 (Skin):** 提供 5 种预设色(科技蓝、极客黑、清新绿等),基于 CSS 变量实现。 - **布局 (****Skeleton****):** 左侧目录树 + 右侧内容,仿 MkDocs。 - **内容 (Content):** 提供 Markdown 渲染风格选择 (GitHub / VuePress / Lark)。 ### 2.3 内容管理 (CMS) [P0] *目标:提供超越 GitBook 的流畅体验。* - **文档树管理:** 无限级分类,支持**拖拽****排序** (Drag & Drop) 改变文章顺序和层级。 - **编辑器:** - 集成 **Editor.md**。 - **图片上传:** 支持截图粘贴 (Ctrl+V)、拖拽上传。 - **附件管理:** 允许上传 PDF/Zip 附件供下载。 - **访问权限:** - 公开 (Public): 所有人可见。 - 私有 (Private): 仅管理员可见(草稿箱)。 - 密码访问 (Password): 输入密码后可见(适合交付给特定客户的文档)。 - **前端表现:** - 网页右下角出现一个悬浮圆球(支持自定义图标/颜色)。 - 点击圆球,弹出一个 Iframe 浮层。 - 浮层内包含:简易搜索框 + 常见问题列表 + AI 提问入口。 - **技术实现:** 使用 ThinkPHP 生成动态 JS,通过 `postMessage` 处理跨域高度自适应。 ### 2.5 AI 能力 (AI Plugin) [P2 - 高级版专属] *目标:提高**源码**售价的利器。* - **配置:** 后台输入 OpenAI/DeepSeek/阿里云 的 API Key。 - **功能:** - **文章摘要:** 发布文章时,自动生成 50 字摘要。 - **智能搜索:** 也就是 RAG(检索增强生成),允许用户用自然语言提问。 1. ## 数据库设计 (商业版 Schema) 为了适应源码交付,表结构要尽量精简且无状态。 ### `kb_config` (系统配置表) 用于存储 KV 键值对,代替 `.env` 文件,方便后台修改。 SQL ```Plain CREATE TABLE `kb_config` ( `name` varchar(50) NOT NULL PRIMARY KEY, `value` text, `group` varchar(20) DEFAULT 'system' COMMENT '分组: basic, theme, ai' ); -- 初始化数据: ('site_name', 'TP-Docs'), ('theme_color', '#1E9FFF') ``` ### `kb_documents` (文档表) SQL ```Plain CREATE TABLE `kb_documents` ( `id` int(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, `pid` int(11) DEFAULT 0 COMMENT '父级ID', `title` varchar(200) NOT NULL, `content` longtext, `keywords` varchar(255) COMMENT 'SEO关键词', `sort` int(11) DEFAULT 0 COMMENT '排序权重', `view_count` int(11) DEFAULT 0 COMMENT '阅读量(用于热门排序)', `is_public` tinyint(1) DEFAULT 1 COMMENT '1=公开, 0=私有, 2=密码', `password` varchar(20) DEFAULT NULL, `create_time` int(11), `update_time` int(11) ); ``` 1. ## 交付文件结构 (Directory Structure) 这是一个“源码商品”的标准目录结构,既要显得专业,又要方便用户二次开发。 Plaintext ```Plain TP-Docs-Pro/ ├── app/ <-- 核心业务代码 │ ├── controller/ <-- 控制器 │ ├── model/ <-- 数据模型 │ ├── service/ <-- AI服务、Widget生成逻辑 │ └── install/ <-- [重要] 安装逻辑独立出来 ├── config/ <-- TP配置 ├── public/ │ ├── static/ <-- 静态资源 │ │ ├── admin/ <-- 后台 Layui 资源 │ │ ├── theme/ <-- 前台 CSS 皮肤 │ │ └── widget/ <-- 挂件相关的 JS/CSS │ ├── uploads/ <-- 默认上传目录 │ ├── install.php <-- 安装入口文件 │ └── index.php <-- 网站入口 ├── view/ <-- 视图模版 (骨架) │ ├── admin/ <-- 管理后台模版 │ ├── default/ <-- [文档模式] 前台模版 │ └── portal/ <-- [门户模式] 前台模版 ├── data/ │ └── install.sql <-- 数据库初始文件 ├── LICENSE.txt <-- 授权协议 └── README.md <-- 部署说明书 ``` 1. ## 开发分期计划 (MVP Roadmap) 为了尽快上线售卖,建议按此节奏开发: **阶段一:核心交付 (Day 1-3)** - 完成 `install.php` 安装向导(这是源码能跑起来的前提)。 - 完成后台 Layui 框架搭建 + Editor.md 集成。 - 完成前台 `default` 模版 (左树右文) 的渲染。 - **产出物:** 基础版源码,可定价 ¥99。 **阶段二:商业化增强 (Day 4-5)** - 完成 `kb_config` 配置表与后台设置页面(Logo、版权、SEO)。 - 开发 Widget JS 生成接口,实现“挂件模式”。 - **产出物:** 标准版源码,可定价 ¥299。 **阶段三:增值功能 (Day 6-7)** - 接入 AI 接口(简单的 Chat 对话)。 - 增加 `portal` 门户模版。 - **产出物:** 企业版源码,可定价 ¥599+。