# notes-plus **Repository Path**: su_zhenhui/notes-plus ## Basic Information - **Project Name**: notes-plus - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-20 - **Last Updated**: 2026-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # notes-plus 知识库系统 ## 项目介绍 notes-plus 是一款功能强大的知识库管理系统,采用前后端分离架构,支持文档管理、文件上传、视频嵌入、笔记内部链接等核心功能。系统基于 Spring Boot 3 + Vue 3 技术栈构建,提供流畅的笔记创作和管理体验。 ## 技术架构 ### 后端技术栈 - **框架**: Spring Boot 3.x - **数据库**: MySQL + MyBatis-Plus - **认证**: JWT (JSON Web Token) - **文件存储**: MinIO 对象存储 - **安全**: Spring Security ### 前端技术栈 - **框架**: Vue 3 (Composition API) - **UI 组件库**: Element Plus - **富文本编辑器**: TipTap - **状态管理**: Pinia - **路由**: Vue Router - **构建工具**: Vite ## 核心功能 ### 1. 文档管理 - 创建、编辑、删除笔记文档 - 支持 Markdown 内容存储 - 文档分类目录管理 - 浏览量统计 ### 2. 文件管理 - 文件上传下载 - 支持图片、视频、文档等多种格式 - 与笔记关联管理 ### 3. 视频系统 - YouTube 视频嵌入 - 视频播放列表功能 ### 4. 笔记链接 - 内部笔记双向链接 - 语法: `[[笔记标题]]` 或 `notes://note/ID` - 面包屑导航 ### 5. 用户系统 - 用户注册/登录 - 角色权限管理 (普通用户/管理员) - JWT 令牌认证 ### 6. 管理后台 - 数据统计仪表盘 - 用户管理 - 文档管理 - 文件管理 ## 项目结构 ``` notes-plus/ ├── backend/ # Spring Boot 后端 │ ├── src/main/java/com/kb/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── service/ # 业务逻辑 │ │ ├── mapper/ # 数据访问层 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ └── security/ # 安全认证 │ └── src/main/resources/ │ └── application.yml │ ├── frontend/ # Vue 3 前端 │ ├── src/ │ │ ├── components/ # 组件 │ │ ├── views/ # 页面视图 │ │ ├── stores/ # Pinia 状态 │ │ ├── router/ # 路由配置 │ │ └── api/ # API 接口 │ └── index.html │ └── database/ # 数据库脚本 ├── init.sql └── schema_full.sql ``` ## 环境要求 ### 后端 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - MinIO (可选,用于文件存储) ### 前端 - Node.js 16+ - npm 8+ ## 快速开始 ### 1. 初始化数据库 ```bash # 导入数据库脚本 mysql -u root -p < database/init.sql ``` ### 2. 配置后端 编辑 `backend/src/main/resources/application.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/notes_plus username: root password: your_password minio: endpoint: http://localhost:9000 access-key: minioadmin secret-key: minioadmin bucket-name: notes-plus jwt: secret: your-jwt-secret-key expiration-ms: 86400000 ``` ### 3. 启动后端 ```bash cd backend mvn spring-boot:run ``` 后端默认运行在 http://localhost:8080 ### 4. 启动前端 ```bash cd frontend npm install npm run dev ``` 前端默认运行在 http://localhost:5173 ### 5. 登录系统 默认管理员账号: - 用户名: `admin` - 密码: `admin123` ## API 接口 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 ### 文档接口 - `GET /api/document/{id}` - 获取文档 - `POST /api/document` - 创建文档 - `PUT /api/document/{id}` - 更新文档 - `DELETE /api/document/{id}` - 删除文档 ### 目录接口 - `GET /api/catalog/tree` - 获取目录树 - `POST /api/catalog` - 创建目录 - `PUT /api/catalog/{id}` - 更新目录 - `DELETE /api/catalog/{id}` - 删除目录 ### 文件接口 - `POST /api/file/upload` - 上传文件 - `GET /api/file/url/{fileId}` - 获取文件URL - `DELETE /api/file/{fileId}` - 删除文件 ### 管理接口 - `GET /api/admin/dashboard` - 仪表盘数据 - `GET /api/admin/users` - 用户列表 - `GET /api/admin/documents` - 文档列表 - `GET /api/admin/files` - 文件列表 ## 常见问题 ### 1. Spring Boot 3 兼容性问题 如果遇到依赖兼容性问题,尝试以下解决方案: ```bash # 清理并重新构建 cd backend mvn clean install -U ``` ### 2. IDEA 缓存问题 如遇 IDEA 编译错误,参考 `backend/IDEA-FIX.md` 进行缓存清理。 ## 许可证 MIT License ## 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/xxx`) 3. 提交更改 (`git commit -m 'Add xxx'`) 4. 推送分支 (`git push origin feature/xxx`) 5. 创建 Pull Request