修复正式考试批题错误
This commit is contained in:
193
README.md
Normal file
193
README.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# 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 或联系开发团队。
|
||||
Reference in New Issue
Block a user