# 小邓在线考试平台 **Repository Path**: deng-wait-wait/xdxc ## Basic Information - **Project Name**: 小邓在线考试平台 - **Description**: 这是一个基于SpringCloud、Spring AI, Mybatis-Plus、vue3、tailwind css、TypeScript、nacos、openFeign、Sentinel、Mysql、redis、gateWay、seata、RobbitMQ的微服务全自动批改的在线考试系统 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 3 - **Created**: 2025-02-10 - **Last Updated**: 2025-09-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, 在线考试, SpringCloud, mybatis-plus, 微服务 ## README # 小邓在线考试系统 / SpringCloud 为了更好的支持Spring AI,目前项目分支V3已升级SpringBoot3。目前项目正在开发中还未完工。 ## 系统亮点 - 基于SpringCloud微服务架构 - 支持多种题型自动评分策略 - 使用RocketMQ实现异步答题处理 - 完整的考试记录和评分系统 - 支持分布式部署和负载均衡 - 使用Feign进行服务间通信 - 采用JWT进行身份验证 ## 技术栈 ### 后端 - Spring Boot 3 - Spring Cloud - MyBatis Plus - Redis - RocketMQ - Feign - Lombok - MapStruct - Hutool - Swagger/Knife4j ### 前端 - Vue3 - Element Plus - Axios - Vue Router - Pinia ### 部署 - Nginx - Docker - Jenkins - Redis - RocketMQ - MySQL 8 ### UI ![输入图片说明](%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202025-03-19%20172720.png) ![输入图片说明](%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202025-03-20%20003205.png) ![输入图片说明](%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202025-03-20%20003646.png) ![输入图片说明](%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202025-03-20%20005704.png) ![输入图片说明](%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202025-07-01%20215936.png) ## 软件架构 项目采用微服务架构,主要模块包括: - auth-service: 认证服务,处理用户注册、登录、权限验证 - xdxc-user: 用户管理服务 - xdxc-question-server: 试题服务,管理题库和题目 - xdxc-exam-service: �.gradle - xdxc-grading-service: 评分服务,处理考试结果和评分 - xdxc-gateway: API网关,处理请求路由和安全过滤 - common: 公共模块,包含通用工具类和配置 - model: 数据模型定义 ## 安装教程 1. 克隆项目 ```bash git clone [项目地址] ``` 2. 构建并启动服务 ```bash cd [模块目录] mvn clean package java -jar target/[模块].jar ``` 3. 或使用IDE直接运行 - 导入项目到IntelliJ IDEA/Eclipse - 运行对应Application类 ## 使用说明 1. 用户注册/登录 - 普通用户注册: POST /auth/user/register - �4. 系统用户注册: POST /auth/admin/register - 普通用户登录: POST /auth/login - 系统用户登录: POST /auth/admin/login 2. 考试相关 - 创建考试记录: GET /exam/creat-paper - 获取试卷详情: GET /paper/paper-detail - 保存答题: POST /exam/saveAnswer - 提交考试: POST /exam/submitExam 3. 试题管理 - 获取题库列表: GET /questionBank/page - 获取题目详情: GET /question/question/{quId} - 根据题型获取题目: POST /question/qu-type 4. 评分管理 - 客观题评分: GET /grade/objectGrade/{examId} - 主观题评分: GET /grade/subjectiveGrade/{examId} ## 参与贡献 欢迎参与项目贡献,贡献前请先阅读以下指南: 1. Fork项目 2. 创建新分支 3. 编写代码 4. 提交PR 5. 等待审核 项目采用Spring Cloud Alibaba微服务架构,主要使用Java 17和Maven进行构建。各服务间通过Feign进行通信,并使用Nacos进行服务注册发现。 代码提交请遵循项目规范,保持代码风格一致。建议使用Lombok减少样板代码,使用MapStruct进行对象转换。 ## 特技 - 支持分布式部署 - 使用Redis实现高效缓存 - 采用RocketMQ实现异步消息处理 - 使用策略模式实现多种题型自动评分 - 支持答题合并窗口和批量处理 - 采用自动评分和人工复核结合 - 提供考试进度追踪功能 - 支持多维题型管理 - 使用线程池提高评分效率 - 实现了JWT令牌管理 - 采用Redis分布式锁保障数据一致性 ## 文档 更多详细文档和API说明请查看各服务的Knife4j文档: - 认证服务文档: http://localhost:8080/doc.html - 考试服务文档: http://localhost:8081/doc.html - 评分服务文档: http://localhost:8082/doc.html - 试题服务文档: http://localhost:8083/doc.html - 用户服务文档: http://localhost:8084/doc.html ## 接口规范 所有接口返回统一的Result格式: ```json { "code": 200, "msg": "操作成功", "data": { ... }, "map": { ... } } ``` ## 许可证 本项目遵循MIT开源协议,详情请查看LICENSE文件。