littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于Spring Boot框架的在线判题系统

项目简介

本项目是基于Spring Boot框架开发的在线判题系统,为用户提供提交代码并进行在线评测的平台。系统支持多种编程语言,具备用户管理、题目管理、代码提交与评测、权限校验等丰富功能。

项目的主要特性和功能

  1. 用户管理
    • 支持用户注册、登录、注销操作。
    • 通过注解和拦截器进行权限校验,特定角色用户可执行特定操作。
    • 用户可更新个人信息,管理员能管理所有用户信息。
  2. 题目管理
    • 管理员可创建、编辑题目,包含题目标题、内容、标签、答案等。
    • 用户可根据题目ID、标题、标签等查询题目。
    • 用户提交代码评测,系统依据预设测试用例判题并返回结果。
  3. 代码沙箱
    • 提供代码沙箱功能,保障用户代码在安全环境执行,防止恶意代码影响系统。
    • 支持Java、C++、Golang等多种编程语言。
  4. 日志记录
    • 利用AOP记录HTTP请求和响应日志,涵盖请求ID、路径、参数、处理时间等信息。
    • 记录代码评测过程日志,方便问题排查和分析。
  5. 数据同步
    • 支持将帖子数据同步到Elasticsearch,实现快速检索和查询。
  6. 其他功能
    • 支持用户上传文件并进行文件管理。
    • 集成微信公众号功能,支持用户通过微信登录和接收消息。

安装使用步骤

环境准备

  1. 安装JDK 8或更高版本的Java开发环境。
  2. 安装并配置MySQL数据库。
  3. 安装并配置Elasticsearch用于数据检索。
  4. (可选)安装并配置Redis用于缓存。

项目配置

  1. 配置数据库:在application.properties文件中添加如下内容。 properties spring.datasource.url=jdbc:mysql://localhost:3306/chengoj spring.datasource.username=root spring.datasource.password=yourpassword
  2. 配置Elasticsearch:在application.properties文件中添加如下内容。 properties spring.elasticsearch.rest.uris=http://localhost:9200
  3. (可选)配置Redis:在application.properties文件中添加如下内容。 properties spring.redis.host=localhost spring.redis.port=6379

启动项目

  1. 在项目根目录下执行mvn clean install编译项目。
  2. 编译成功后,执行mvn spring-boot:run启动项目。
  3. 项目启动后,通过浏览器访问http://localhost:8080

使用说明

  1. 用户注册与登录:访问/user/register注册,访问/user/login登录。
  2. 题目管理:登录后,管理员访问/question进行题目管理。
  3. 代码提交与评测:用户访问/question/submit提交代码评测。
  4. 文件上传:用户访问/file/upload上传文件。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】