项目简介
本项目是一个基于Spring Boot + Spring Cloud Alibaba微服务 + Docker + RabbitMQ + Vue 3的编程算法题目在线评测系统。用户能在该系统中选择题目、编写并提交代码进行评测,系统会依据用户提交的代码以及出题人预设的题目输入和输出用例,进行代码编译、运行,并判断代码运行结果的正确性。
项目的主要特性和功能
主要特性
- 权限校验:对用户权限进行校验,确保不同操作由有相应权限的用户执行。
- 代码沙箱:构建隔离、安全的环境运行用户代码,避免代码藏毒影响系统,同时限制用户程序占用资源。
- 判题规则:通过题目用例比对来验证结果。
- 任务调度:利用消息队列执行判题,合理分配服务器资源,让用户按顺序依次判题。
主要功能
- 题目模块:管理员可创建、删除、修改和管理题目,用户和管理员都能搜索题目、在线做题并提交题目代码,系统使用消息队列防止判题服务执行时间过长,用死信队列处理判题失败的题目。
- 用户模块:支持用户注册、登录,管理员可进行用户管理,采用令牌桶限流算法,使用Redisson实现分布式限流,限制用户每秒只能提交一次题目。
- 判题模块:能判断提交判题结果是否正确,处理内存溢出、安全性、超时等错误,通过代码沙箱执行代码并返回执行信息,还提供独立的开放接口。
安装使用步骤
- 若已下载本项目的源码文件,下载的文件包含
brainstorming-backend
、brainstorming-code-sandbox
、brainstorming-frontend-react
。 - 使用IDEA代码编辑器打开项目,等待依赖下载完成。
- 修改配置文件
application.yaml
中的信息,例如数据库、Redis、RabbitMQ等相关配置。 - 修改完成后,通过
ShierApplication
程序运行项目。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】