项目简介
本项目是一个基于Spring Boot和Docker的编程题目在线评测系统,分为前台和后台两部分。前台支持管理员创建与管理题目,用户可搜索、阅读题目并编写提交代码;后台能依据管理员设定的测试用例,在自主实现的代码沙箱中对代码进行编译、运行及判断输出是否正确,且代码沙箱可作为独立服务供其他开发者使用。
项目的主要特性和功能
前台功能
- 题目管理:管理员可创建、编辑和删除题目。
- 题目搜索:用户可搜索题目并查看详细信息。
- 代码提交:用户编写代码提交后系统自动评测。
后台功能
- 代码沙箱:支持多种编程语言的代码编译和运行。
- 自动评测:根据测试用例自动评测用户提交的代码。
- 权限管理:通过注解和AOP实现权限校验。
- 日志记录:记录每个请求的相关日志及耗时。
其他功能
- Redis缓存:配置Redis缓存提升系统性能。
- Elasticsearch集成:使用Elasticsearch提高题目搜索效率。
- 定时任务:支持定时同步帖子数据到Elasticsearch等任务。
安装使用步骤
环境准备
- Java环境:安装Java 8或更高版本。
- Docker:安装用于运行代码沙箱。
- MySQL:安装用于存储题目和用户数据。
- Redis:安装用于缓存数据。
- Elasticsearch:安装用于题目搜索。
项目构建
- 复制项目:(此处文档未提供复制命令)
- 导入项目:使用IDE(如IntelliJ IDEA或Eclipse)导入。
- 配置文件:修改
application.yml
,配置数据库、Redis、Elasticsearch连接信息。 - 构建项目:
bash mvn clean install
运行项目
- 启动Spring Boot应用:
bash java -jar target/oj-backend.jar
- 启动Docker容器:按项目文档启动所需容器。
- 访问系统:打开浏览器,访问
http://localhost:8080
进入前台。
使用说明
- 管理员登录:用管理员账号登录创建和管理题目。
- 用户注册和登录:用户注册登录后搜索题目并提交代码。
- 查看评测结果:提交代码后在系统查看评测结果。
其他配置
- 定时任务:按需配置定时同步帖子数据到Elasticsearch。
- 权限管理:按需配置权限,确保特定角色用户执行相应操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】