项目简介
本项目是基于Spring Boot框架构建的在线编程评判系统,致力于打造一个高效、安全的平台,让用户能够提交代码并实现自动评判。系统整合了多种主流框架和工具,支持多种编程语言评判,具备用户管理、题目管理、代码提交、自动评判、分页查询、权限控制等丰富功能。
项目的主要特性和功能
主流框架与特性
- Spring Boot 2.7.x:快速开发框架,简化配置与部署。
- Spring MVC:用于构建Web应用的MVC框架。
- MyBatis & MyBatis Plus:数据访问框架,支持分页查询。
- Spring AOP:面向切面编程,用于权限校验和日志记录。
- Spring Scheduler:定时任务调度,用于定时同步数据。
- Spring 事务注解:简化事务管理。
数据存储
- MySQL:关系型数据库,存储用户、题目、提交记录等数据。
- Redis:内存数据库,用于分布式登录和缓存。
- Elasticsearch:搜索引擎,快速检索题目和提交记录。
- 腾讯云COS:对象存储服务,存储用户上传文件。
工具类
- Easy Excel:处理Excel文件读写。
- Hutool:Java工具库,提供丰富工具方法。
- Apache Commons Lang3:常用工具类库。
- Lombok:简化Java代码,自动生成getter、setter等方法。
业务特性
- 分布式登录:使用Spring Session Redis实现。
- 全局请求响应拦截器:记录请求和响应日志。
- 全局异常处理器:统一处理系统异常。
- 自定义错误码:提供详细错误信息。
- 封装通用响应类:统一API响应格式。
- Swagger & Knife4j:API文档生成工具。
- 自定义权限注解:实现细粒度权限控制。
- 全局跨域处理:支持跨域请求。
- 长整数丢失精度解决:防止JSON序列化精度丢失。
- 多环境配置:支持开发、测试、生产等多环境。
业务功能
- 用户管理:涵盖注册、登录、注销、更新、检索、权限管理等。
- 题目管理:包括创建、删除、编辑、更新、数据库检索、ES灵活检索等。
- 代码提交与评判:支持用户提交代码,系统自动评判并返回结果。
- 帖子管理:包含创建、删除、编辑、更新、点赞、收藏等。
- 定时任务:支持定时同步数据到Elasticsearch。
- 微信开放平台登录:支持通过微信开放平台登录。
- 微信公众号订阅:支持订阅、消息收发、菜单设置等。
安装使用步骤
1. 环境准备
- 安装Java 8或更高版本。
- 安装MySQL数据库,创建相应数据库和表。
- 安装Redis,配置Redis连接。
- 安装Elasticsearch,配置Elasticsearch连接。
- 配置腾讯云COS,获取访问密钥和存储桶信息。
2. 配置文件
- 修改
application.yml
文件,配置数据库连接信息:yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/my_db username: root password: 123456
- 配置Redis连接信息:
yaml spring: redis: database: 1 host: localhost port: 6379 timeout: 5000 password: 123456
- 配置Elasticsearch连接信息:
yaml spring: elasticsearch: uris: http://localhost:9200 username: root password: 123456
3. 启动项目
- 在项目根目录下运行以下命令启动项目:
bash mvn spring-boot:run
- 访问
http://localhost:8101/api/doc.html
,查看API文档并进行在线调试。
4. 数据库初始化
- 执行
sql/create_table.sql
中的SQL语句,自动创建所需的库表。
5. 配置定时任务
- 找到定时任务类
FullSyncPostToEs
和IncSyncPostToEs
,取消注释@Component
注解,启动定时任务。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】