基于Vue3、SpringBoot、Docker的在线评测系统。
线上地址:online-judge
前端
- 管理员可以创建、管理题目的基本信息和判题信息。
- 用户可以自由按照题目名称和标签进行搜索题目、阅读、编写并提交代码,并查看代码通过情况。
后端
- 保存用户提交的代码片段等信息,并上传到代码沙箱服务中运行,返回按照提前设定的用例输入执行后得到的执行结果、执行时间、运行内存等信息,然后与该题目提前设定的用例输出、执行时间、运行内存等信息进行比对来判断代码运行通过情况。
代码沙箱服务
- 接收后端传递的代码片段、测试的输入用例,将其代码片段和输入用例保存,创建docker容器,并在容器中对代码编译、运行,得到输出结果、执行时间、运行内存等信息,返回给后端。
前端
- Vue3
- Vuex状态管理
- Arco Design组件库
- 前端工程化:EXLint、Prettier、TypeScript
- MarkDown 富文本编辑器
- Monaco Editor 代码编辑器
- OpenAPI 前端代码生成
后端
- Spring Boot、MySQL、Redis
- Docker-Java
- MyBatis-plus
- Redission
- Knife4j
- Hutool
- 策略模式
- 工厂模式
- 代理模式
- g++
- python3
- java
- golang