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

【源码】基于Spring Boot和Docker的在线编程判题系统

项目简介

本项目实现了一个在线的编程语言判题系统,应用形式分为单体应用和SpringCloud微服务。系统单独实现了编译代码的代码沙箱功能,能确保代码在安全的环境中执行。

项目的主要特性和功能

代码沙箱

  • 支持Java、C++、Golang和JavaScript等多种编程语言的代码执行。
  • 通过词法树对代码进行安全性检查,防止执行危险操作。
  • 利用Docker容器执行代码,保证环境隔离和安全性。

判题服务

  • 依据不同的编程语言,采用不同的判题策略进行代码评判。
  • 通过消息队列实现异步判题,提升系统响应速度。

用户管理

  • 支持用户注册、登录和注销功能。
  • 区分普通用户和管理员角色,管理员可管理题目和用户。

题目管理

  • 管理员能够创建、编辑和删除题目。
  • 用户可提交代码进行评判,系统返回评判结果。

文件管理

  • 支持用户上传和下载文件,如头像、代码文件等。
  • 使用腾讯云对象存储(COS)存储文件,保障文件的安全性和可靠性。

安装使用步骤

环境准备

  • 安装JDK 1.8或更高版本的Java环境。
  • 安装Docker并启动Docker服务。
  • 安装MySQL数据库,创建相应的数据库和用户。
  • 安装并启动RabbitMQ消息队列服务。

复制项目

bash cd yueoj

配置文件

修改application.yml文件,配置数据库连接、RabbitMQ连接、COS存储等相关信息。

启动项目

  • 启动单体应用: bash mvn spring-boot:run
  • 启动微服务:分别启动各个微服务模块,如yoj-backend-code-sandboxyoj-backend-judge-service等。

访问系统

打开浏览器,访问http://localhost:8080,进入在线编程判题系统。

用户登录

使用默认管理员账号登录: - 用户名: Admin - 密码: 12345678

下载地址

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