193 lines
4.3 KiB
Markdown
193 lines
4.3 KiB
Markdown
# 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 或联系开发团队。 |