Files
my-springboot-project/README.md
2026-06-11 23:38:54 +08:00

193 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Knowledge Management System
基于 Spring Boot 3.2.5 的知识管理系统提供用户管理、考试系统、文件管理、AI聊天等核心功能。
## 技术栈
- **框架**: Spring Boot 3.2.5
- **语言**: Java 17
- **数据库**: MySQL 8.0+
- **缓存**: Redis 6.0+
- **ORM**: MyBatis Plus 3.5.5
- **认证**: JWT
- **API文档**: SpringDoc OpenAPI 2.3.0
- **JSON处理**: FastJSON 2.0.43
## 功能模块
| 模块 | 描述 |
| :--- | :--- |
| **用户管理** | 用户注册、登录、信息管理 |
| **角色权限** | 角色管理、权限分配 |
| **考试系统** | 试卷生成、考试管理、成绩批阅 |
| **题目管理** | 题目CRUD、统计分析 |
| **文件管理** | 文件上传、下载、权限控制 |
| **AI聊天** | 基于RAG的智能问答 |
| **搜索功能** | 全文搜索 |
| **反馈管理** | 用户反馈收集与处理 |
| **FAQ管理** | 常见问题管理 |
| **错题管理** | 错题收集与重做 |
## 快速开始
### 环境要求
- JDK 17+
- Maven 3.8+
- MySQL 8.0+
- Redis 6.0+
### 数据库配置
1. 创建数据库:
```sql
CREATE DATABASE IF NOT EXISTS knowledge_management_system
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;
```
2. 执行数据库初始化脚本:
```bash
mysql -u root -p knowledge_management_system < docs/sql/knowledge_management_system.sql
```
### 运行方式
#### 开发环境
```bash
# 克隆项目
git clone <repository-url>
cd demo
# 编译运行
mvn spring-boot:run
```
#### 生产环境
```bash
# 打包
mvn clean package
# 运行
java -jar target/demo_1-0.0.1-SNAPSHOT.jar
```
#### Docker 部署
```bash
# 构建镜像
docker build -t knowledge-management-system .
# 运行容器
docker run -d -p 8080:8080 \
-e DB_USERNAME=root \
-e DB_PASSWORD=yourpassword \
-e REDIS_HOST=redis \
knowledge-management-system
```
### 配置说明
主要配置项(可通过环境变量覆盖):
| 环境变量 | 默认值 | 说明 |
| :--- | :--- | :--- |
| `DB_USERNAME` | root | 数据库用户名 |
| `DB_PASSWORD` | 123456 | 数据库密码 |
| `REDIS_HOST` | redis | Redis 主机 |
| `REDIS_PORT` | 6379 | Redis 端口 |
| `JWT_SECRET` | your-secret-key... | JWT 密钥 |
| `SWAGGER_ENABLED` | true | 是否启用 Swagger |
| `CORS_ALLOWED_ORIGINS` | * | 允许的跨域来源 |
## API 文档
启动服务后访问:
- **Swagger UI**: http://localhost:8080/api/swagger-ui.html
- **OpenAPI JSON**: http://localhost:8080/api/v3/api-docs
## 项目结构
```
├── src/main/java/top/tqx/demo_1/
│ ├── controller/ # REST API 控制层
│ ├── service/ # 业务逻辑层
│ ├── mapper/ # 数据访问层
│ ├── entity/ # 数据库实体
│ ├── dto/ # 数据传输对象
│ ├── vo/ # 视图对象
│ ├── config/ # 配置类
│ ├── interceptor/ # 拦截器
│ ├── aspect/ # AOP切面
│ ├── exception/ # 异常处理
│ ├── util/ # 工具类
│ └── Demo1Application.java
├── src/main/resources/
│ ├── application.yml # 主配置文件
│ ├── application-dev.yml # 开发环境配置
│ └── application-prod.yml # 生产环境配置
├── docs/ # 文档
│ ├── sql/ # 数据库脚本
│ └── api/ # API文档
├── uploads/ # 文件上传目录
├── logs/ # 日志目录
└── pom.xml # Maven 配置
```
## 核心功能说明
### 1. 用户认证
- JWT Token 认证
- 密码加密存储 (BCrypt)
- 权限拦截器
### 2. 考试系统
- 智能试卷生成
- 考试流程管理
- AI 自动批阅
- 成绩统计分析
### 3. 文件管理
- 大文件上传支持
- 文件版本控制
- 访问权限控制
### 4. AI 集成
- RAG 知识库检索
- 流式问答响应
- 引用来源追踪
## 安全特性
- JWT 令牌认证
- 接口限流
- 权限校验
- SQL 注入防护
- CORS 跨域配置
## 日志管理
- 控制台日志
- 文件日志(按天分割)
- 最大保留 30 天
## 开发规范
- 代码风格Google Java Style
- 异常处理:统一异常处理
- 日志记录:使用 SLF4J
## 许可证
MIT License
## 联系方式
如有问题或建议,请提交 Issue 或联系开发团队。