当前位置: 首页 > article >正文

Genuine-OJ 是一个现代化的在线评测系统(Online Judge, OJ)

Genuine-OJ 是一个现代化的在线评测系统(Online Judge, OJ),特别适用于信息学竞赛(OI)培训和编程练习。该项目由青岛中学与北京十一学校的大佬们共同开发,旨在提供一个功能强大、界面友好的在线编程评测平台。Genuine-OJ 的架构设计和实现都体现了现代 Web 开发的最佳实践,包括前后端分离、Docker 化部署等。下面详细介绍 Genuine-OJ 的主要特点和组成部分。

主要特点

  1. 前后端分离:

    • 前端: 使用 Vue.js 构建,提供了响应式的用户界面,用户体验良好。
    • 后端: 使用 Python(Django)构建,提供了强大的业务逻辑处理能力和高效的数据管理。
  2. Docker 化部署:

    • 提供了完整的 Dockerfile 和 Docker Compose 文件,支持一键部署,大大简化了安装和配置过程。
  3. 安全性:

    • 使用 Seccomp 和其他安全机制,确保用户提交的代码在安全的沙箱环境中执行,防止恶意代码对系统造成损害。
  4. 丰富的功能:

    • 题库管理: 管理员可以轻松添加、编辑和删除题目,支持多种格式的题目描述和测试数据。
    • 用户管理: 支持用户注册、登录、权限管理等功能。
    • 比赛管理: 支持创建和管理编程比赛,可以设置比赛时间和规则。
    • 评测结果: 提供详细的评测报告,包括运行时间和内存使用情况。
  5. 扩展性强:

    • 支持多种编程语言,包括但不限于 C、C++、Java、Python 等。
    • 提供了插件机制,方便开发者扩展系统功能。

项目组成

  1. 后端 (Django):

    • 项目地址: genuine-oj/backend - GitHub
    • 功能: 处理业务逻辑,提供 RESTful API 接口供前端调用,管理数据库等。
  2. 前端 (Vue.js):

    • 项目地址: genuine-oj/frontend-naive - GitHub
    • 功能: 提供用户界面,包括用户登录、题库浏览、代码提交、评测结果查看等。
  3. 判题沙箱 (Seccomp):

    • 项目地址: genuine-oj/judger - GitHub
    • 功能: 安全地执行用户提交的代码,防止恶意代码对系统造成损害。
  4. 判题服务器:

    • 项目地址: genuine-oj/judge-server - GitHub
    • 功能: 封装判题沙箱,提供更高级别的接口,方便后端调用。
  5. Docker 化部署:

    • 项目地址: genuine-oj/deploy - GitHub
    • 功能: 提供 Dockerfile 和 Docker Compose 文件,支持一键部署。

部署步骤

  1. 克隆仓库:

     bash 

    深色版本

    git clone https://github.com/genuine-oj/deploy.git
    cd deploy
  2. 修改配置文件:

    • 修改 docker-compose.yml 文件中的配置,如数据库连接信息、端口映射等。
    • 修改 .env 文件中的环境变量,如数据库用户名、密码等。
  3. 启动 Docker 容器:

     bash 

    深色版本

    docker-compose up -d
  4. 访问系统:

    • 打开浏览器,访问 http://localhost,即可看到 Genuine-OJ 的登录页面。

常见问题

  1. 前端修改后不生效:

    • 确保前端代码已经正确编译和打包。可以尝试重新构建前端项目:
       bash 

      深色版本

      cd frontend-naive
      npm install
      npm run build
  2. 数据库连接问题:

    • 检查 docker-compose.yml 和 .env 文件中的数据库配置是否正确。
    • 确保数据库容器已经成功启动并运行。
  3. 判题超时或失败:

    • 检查判题沙箱和判题服务器的日志,查看是否有错误信息。
    • 确保判题服务器的资源(CPU、内存)充足。

社区和支持

  • GitHub Issues: 如果您在使用过程中遇到任何问题,可以在 Genuine-OJ 的 GitHub 仓库 中提交 Issue,项目维护者和社区成员会尽力帮助您解决问题。
  • 文档: 项目提供了详细的文档,包括安装指南、使用手册和开发指南,帮助用户快速上手。

总结

Genuine-OJ 是一个功能强大、易于部署和维护的在线评测系统,特别适合学校和培训机构用于编程教学和竞赛。通过其现代化的架构设计和丰富的功能,Genuine-OJ 为用户提供了一个高效、安全的编程练习和评测平台。希望这些信息能帮助您更好地了解和使用 Genuine-OJ。

2


http://www.kler.cn/a/403081.html

相关文章:

  • C#桌面应用制作计算器进阶版01
  • 谁的年龄最小(结构体专题)
  • IDEA算法的详细介绍及Python实现
  • C++设计模式行为模式———中介者模式
  • Android-如何实现Apng动画播放
  • 【数据结构】【线性表】【练习】反转链表
  • 计算机毕业设计 | SpringBoot+vue汽车资讯网站 汽车购买咨询管理系统(附源码+论文)
  • Android开发实战班 -应用架构 - MVVM 架构模式
  • TCP Analysis Flags 之 TCP Dup ACK
  • delphi fmx android 离线人脸识别
  • LLaMA-Factory 上手即用教程
  • 循环结构程序设计
  • 【C++】深入理解 C++ 优先级队列、容器适配器与 deque:实现与应用解析
  • 优选算法(双指针)
  • 一篇快速上手 Axios,一个基于 Promise 的网络请求库(涉及原理实现)
  • vue3教程:快速搭建Vue3项目
  • GLM4 PyTorch模型微调最佳实践
  • 第十种Prompt 框架-MASTER
  • ES6 (MNO-eUICC) 接口中 OTA 平台通信概述
  • DTH11传感器温度湿度+esp8266+阿里云+小程序
  • 对基因列表中批量的基因进行GO和KEGG注释
  • 小程序租赁系统开发为企业提供高效便捷的租赁服务解决方案
  • Sourcetree登录GitLab账号
  • 在 CentOS 系统上直接安装 MongoDB 4.0.25
  • 基于EEMD变换的ECG心电信号去噪和心率估计matlab仿真
  • mysql如果把between and换成大于小于怎么改