# 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 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 或联系开发团队。