# 博客 **Repository Path**: fish-rubbish/blog ## Basic Information - **Project Name**: 博客 - **Description**: DBLOG 个人博客系统 基于 Spring Boot 3 + Vue 3 + TypeScript 构建的全栈个人博客平台,前后端分离架构,功能完整,开箱即用。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-07 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DBLOG 基于 Spring Boot 3 和 Vue 3 的前后端分离个人博客系统,当前版本已经包含日记审核、私密日记直发、通知中心、好友权限、全文搜索、管理后台和可配置首页布局。 ## 项目概览 - 用户认证:注册、登录、图形验证码、邮箱找回密码 - 日记系统:Markdown 编辑、草稿箱、垃圾箱、导入导出、详情页阅读体验优化 - 审核流程:公开日记需管理员审核后由作者手动发布;私密日记不需要审核 - 通知中心:用户端和管理端都有通知铃铛,支持未读计数、全部已读、删除单条、清空已读 - 好友系统:好友申请、同意/拒绝、删除好友;评论与部分内容访问依赖好友关系 - 搜索能力:Lucene 中文搜索,必要时降级到数据库查询 - 管理后台:用户、日记、评论管理,公开日记审核,以及首页布局可视化配置 - 布局配置:导航栏自定义菜单(支持图标、内外链、新标签)、左右侧边栏组件拖拽排序与开关,支持自定义菜单组件(含图片链接列表) ## 技术栈 ### 后端 - Java 17 - Spring Boot 3.1.5 - Spring Security + JWT - MyBatis-Plus 3.5.4.1 - MySQL 8 - Redis 6 - Apache Lucene 9.9.1 - Maven 多模块工程 ### 前端 - Vue 3 - TypeScript - Vite 5 - Element Plus - Pinia - Vue Router 4 - md-editor-v3 ## 当前业务规则 ### 日记发布 - 公开日记新建或编辑后会进入待审核流程 - 管理员审核通过后,日记进入“已通过/待发布”状态,仍需作者手动点击发布 - 私密日记不走审核流,新建、提交或从草稿发布时都会直接发布 ### 通知 - 当前通知刷新方式是前端 30 秒轮询,不是 WebSocket 实时推送 - 管理员会收到用户提交公开日记审核的通知 - 用户会收到评论、好友申请、好友通过、日记审核通过、日记审核驳回等通知 ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 8+ - Redis 6+ - Node.js 18+ 推荐 ### 1. 初始化数据库 ```bash mysql -uroot -p -e "CREATE DATABASE IF NOT EXISTS dblog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" mysql -uroot -p dblog < docs/database.sql ``` 如果你是在旧版本数据库上升级,而不是全新安装,优先查看 [docs/migrations/20260319_add_diary_review_fields.sql](docs/migrations/20260319_add_diary_review_fields.sql)。 ### 2. 配置后端 修改 `backend/dblog-starter/src/main/resources/application.yml` 中至少这些配置: - `spring.datasource.*` - `spring.data.redis.*` - `spring.mail.*` - `file.upload-dir` - `cors.allowed-origins` 部署环境不要直接使用仓库中的示例值。 ### 3. 启动后端 ```bash cd backend mvn spring-boot:run -pl dblog-starter ``` 或在项目根目录直接使用: ```bash ./start-backend.sh ``` 后端默认地址:`http://localhost:8080/api` ### 4. 启动前端 ```bash cd frontend npm install npm run dev ``` 或在项目根目录直接使用: ```bash ./start-frontend.sh ``` 前端默认地址:`http://localhost:5173` ### 5. 默认管理员账号 ```text 用户名: admin 密码: admin123 ``` ## 常用验证命令 ```bash cd frontend && npm run build cd backend && mvn -q -pl dblog-starter -am compile -DskipTests ``` ## 目录结构 ```text . ├── backend/ # Spring Boot 多模块后端 ├── frontend/ # Vue 3 前端 ├── docs/ # 项目文档与 SQL 脚本 ├── start-backend.sh # 后端启动脚本 ├── start-frontend.sh # 前端启动脚本 └── README.md ``` 更详细的结构说明见 [docs/PROJECT_STRUCTURE.md](docs/PROJECT_STRUCTURE.md)。 ## 文档索引 - [docs/README.md](docs/README.md):文档入口 - [docs/API.md](docs/API.md):接口清单与流程说明 - [docs/DATABASE.md](docs/DATABASE.md):数据库设计与状态语义 - [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md):本地与生产部署建议 - [docs/ADMIN_GUIDE.md](docs/ADMIN_GUIDE.md):管理员后台使用说明 - [docs/PROJECT_STRUCTURE.md](docs/PROJECT_STRUCTURE.md):项目结构说明 ## 最近更新 - 侧边栏所有 Widget 全面美化(渐变头像、彩色图标、分组卡片等) - 管理端布局配置页:导航栏菜单管理(图标选择器、内外链)、侧边栏组件管理(添加/删除/编辑/启停)、自定义菜单 Widget(图片上传、链接列表) - 日记详情页:白色英雄卡片、评论数准确显示 ## 说明 这次文档整理已经移除了重复维护价值低的文档,保留的入口以本文件和 `docs/` 目录为准。