OJ(Online Judge) 在线判题系统 是一种在编程竞赛中用来测试参赛程序的在线系统,主要使用于日常练习
必须实现的功能:
-
能够编译并执行代码
-
使用预设的数据对这些程序进行测试
-
提交的代码在受限的环境下运行
-
需要捕获程序输出,与标准答案进行比较后返回结果
-
通过判断不同的结果,给用户反馈
本项目是为了校内自建OJ所编写的,可以实现以下几个功能
-
用户鉴权(包括:登录、注册、鉴权、修改个人信息、修改密码、找回密码)
-
题目及测试数据存储(包括:题目题面存储、题目标签分类、测试数据组)
-
评测机(包括:评测机api、编译代码、执行程序、沙盒限制、实时的内存时间监控、对结果与标准答案的比对)
-
管理面板(包括:对各个题目、测试数据、评测记录等的增删改查)
-
附加功能(包括:整洁的题面打印功能、扩展性极高的评测机、方便快捷的部署、分布式的评测机设计)
-
Python 3.8
-
Django 3.2
-
django-mdeditor 0.1.20
-
requests 2.26.0
-
psutil 5.9.0
-
解压源代码压缩包
-
进入 myoj 文件夹,打开命令提示符
-
执行pip install -r requirements.txt 以安装依赖
-
执行python manage.py runserver 以运行网站
-
初始超级用户为admin密码:123456
-
进入judger_machine目录
-
执行pip install -r requirements.txt 以安装依赖
-
打开judgertap.py 文件第4行更换成自己的网站地址
-
执行python judgertap.py以运行评测机
注:评测机可以在不同的机器上运行多台,以快速处理评测任务
初始超级用户为admin密码:123456