项目简介
本项目是基于Spring Boot框架开发的在线判题系统,为用户提供提交代码并进行在线评测的平台。系统支持多种编程语言,具备用户管理、题目管理、代码提交与评测、权限校验等丰富功能。
项目的主要特性和功能
- 用户管理
- 支持用户注册、登录、注销操作。
- 通过注解和拦截器进行权限校验,特定角色用户可执行特定操作。
- 用户可更新个人信息,管理员能管理所有用户信息。
- 题目管理
- 管理员可创建、编辑题目,包含题目标题、内容、标签、答案等。
- 用户可根据题目ID、标题、标签等查询题目。
- 用户提交代码评测,系统依据预设测试用例判题并返回结果。
- 代码沙箱
- 提供代码沙箱功能,保障用户代码在安全环境执行,防止恶意代码影响系统。
- 支持Java、C++、Golang等多种编程语言。
- 日志记录
- 利用AOP记录HTTP请求和响应日志,涵盖请求ID、路径、参数、处理时间等信息。
- 记录代码评测过程日志,方便问题排查和分析。
- 数据同步
- 支持将帖子数据同步到Elasticsearch,实现快速检索和查询。
- 其他功能
- 支持用户上传文件并进行文件管理。
- 集成微信公众号功能,支持用户通过微信登录和接收消息。
安装使用步骤
环境准备
- 安装JDK 8或更高版本的Java开发环境。
- 安装并配置MySQL数据库。
- 安装并配置Elasticsearch用于数据检索。
- (可选)安装并配置Redis用于缓存。
项目配置
- 配置数据库:在
application.properties
文件中添加如下内容。properties spring.datasource.url=jdbc:mysql://localhost:3306/chengoj spring.datasource.username=root spring.datasource.password=yourpassword
- 配置Elasticsearch:在
application.properties
文件中添加如下内容。properties spring.elasticsearch.rest.uris=http://localhost:9200
- (可选)配置Redis:在
application.properties
文件中添加如下内容。properties spring.redis.host=localhost spring.redis.port=6379
启动项目
- 在项目根目录下执行
mvn clean install
编译项目。 - 编译成功后,执行
mvn spring-boot:run
启动项目。 - 项目启动后,通过浏览器访问
http://localhost:8080
。
使用说明
- 用户注册与登录:访问
/user/register
注册,访问/user/login
登录。 - 题目管理:登录后,管理员访问
/question
进行题目管理。 - 代码提交与评测:用户访问
/question/submit
提交代码评测。 - 文件上传:用户访问
/file/upload
上传文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】