littlebot
Published on 2025-04-09 / 3 Visits
0

【源码】基于Spring Boot + Docker的编程题目在线评测系统

项目简介

本项目是一个基于Spring Boot和Docker的编程题目在线评测系统,分为前台和后台两部分。前台支持管理员创建与管理题目,用户可搜索、阅读题目并编写提交代码;后台能依据管理员设定的测试用例,在自主实现的代码沙箱中对代码进行编译、运行及判断输出是否正确,且代码沙箱可作为独立服务供其他开发者使用。

项目的主要特性和功能

前台功能

  • 题目管理:管理员可创建、编辑和删除题目。
  • 题目搜索:用户可搜索题目并查看详细信息。
  • 代码提交:用户编写代码提交后系统自动评测。

后台功能

  • 代码沙箱:支持多种编程语言的代码编译和运行。
  • 自动评测:根据测试用例自动评测用户提交的代码。
  • 权限管理:通过注解和AOP实现权限校验。
  • 日志记录:记录每个请求的相关日志及耗时。

其他功能

  • Redis缓存:配置Redis缓存提升系统性能。
  • Elasticsearch集成:使用Elasticsearch提高题目搜索效率。
  • 定时任务:支持定时同步帖子数据到Elasticsearch等任务。

安装使用步骤

环境准备

  1. Java环境:安装Java 8或更高版本。
  2. Docker:安装用于运行代码沙箱。
  3. MySQL:安装用于存储题目和用户数据。
  4. Redis:安装用于缓存数据。
  5. Elasticsearch:安装用于题目搜索。

项目构建

  1. 复制项目:(此处文档未提供复制命令)
  2. 导入项目:使用IDE(如IntelliJ IDEA或Eclipse)导入。
  3. 配置文件:修改application.yml,配置数据库、Redis、Elasticsearch连接信息。
  4. 构建项目: bash mvn clean install

运行项目

  1. 启动Spring Boot应用: bash java -jar target/oj-backend.jar
  2. 启动Docker容器:按项目文档启动所需容器。
  3. 访问系统:打开浏览器,访问http://localhost:8080进入前台。

使用说明

  1. 管理员登录:用管理员账号登录创建和管理题目。
  2. 用户注册和登录:用户注册登录后搜索题目并提交代码。
  3. 查看评测结果:提交代码后在系统查看评测结果。

其他配置

  • 定时任务:按需配置定时同步帖子数据到Elasticsearch。
  • 权限管理:按需配置权限,确保特定角色用户执行相应操作。

下载地址

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