项目简介
本项目是一个在线编程判题系统,利用Python脚本和模块构建,借助Docker实现环境部署。系统具备用户管理、问题管理、提交管理等功能,同时使用Redis进行缓存处理,提供RESTful API接口,还具备XSS过滤功能以保障数据安全。
项目的主要特性和功能
- 用户管理:支持创建、更新和删除用户账户,管理用户权限和角色。
- 问题管理:可创建、编辑和删除问题,管理问题的标签、难度、规则类型等属性。
- 提交管理:处理用户代码提交,包括创建提交、获取提交列表、检查提交存在性和重新评判提交等。
- 缓存处理:采用Redis作为缓存后端,提升系统响应速度和性能。
- API接口:提供RESTful API,方便前端与后台进行数据交互。
- 管理命令:提供Django管理命令,用于初始化用户账户、重置用户密码等管理任务。
- 数据安全:具备序列化器和验证器确保数据的安全性和正确性,提供XSS过滤功能防止跨站脚本攻击。
安装使用步骤
环境准备
Linux环境
- 安装必要的依赖:
bash sudo apt-get update && sudo apt-get install -y vim python3-pip curl git pip3 install --upgrade pip pip install docker-compose
- 安装Docker:
国内用户使用脚本一键安装:
sudo curl -sSL https://get.daocloud.io/docker | sh
国外用户使用脚本一键安装:sudo curl -sSL get.docker.com | sh
详细步骤参照: https://docs.docker.com/install/
Windows环境
Windows下的安装仅供体验,勿在生产环境使用。如有必要,请使用虚拟机安装Linux并将OJ安装在其中。以下教程仅适用于Win10 x64下的 PowerShell
。
1. 安装Windows的Docker工具。
2. 右击右下角Docker图标,选择Settings进行设置。
3. 选择 Shared Drives
菜单,之后勾选你想安装OJ的盘符位置(例如勾选D盘),点击 Apply
。
4. 输入Windows的账号密码进行文件共享。
5. 安装 Python
、pip
、git
、docker-compose
,安装方法自行搜索。
开始安装
- 请选择磁盘空间富余的位置,运行下面的命令:
bash
- 启动服务:
bash docker-compose up -d
根据网速情况,大约5到30分钟就可以自动搭建完成,全程无需人工干预。等命令执行完成,然后运行 docker ps -a
,当看到所有的容器的状态没有 unhealthy
或 Exited (x) xxx
就代表OJ已经启动成功。
使用系统
通过浏览器访问服务器的HTTP 80端口或者HTTPS 443端口,就可以开始使用了。后台管理路径为/admin
, 安装过程中自动添加的超级管理员用户名为 root
,密码为 rootroot
, 请务必及时修改密码。
定制
2.0版将一些常用设置放到了后台管理中,您可以直接登录管理后台对系统进行配置,而无需进行代码改动。若需要对系统进行修改或二次开发,请参照各模块的README,修改完成后需自行构建Docker镜像并修改docker-compose.yml
。
遇到问题
请参照: http://opensource.qduoj.com/ 。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】