Giter Club home page Giter Club logo

onlinejudge's Introduction

简体中文 | English


如果觉得对您有帮助或者对该产品感兴趣,请您给点一个 Star,谢谢!

Java WebSite Spring Boot Spring Cloud Spring Cloud Alibaba MySQL Vue License Github Star

SDUOJ 是一款开源在线评测系统(Online Judge, OJ)

→ 查看文档


多业务场景

评测模板、一题多面、虚拟评测、国际赛制(ICPC/OI/IOI),广泛适用于实验训练、学生测试、赛事举办等场景

分布式架构

基于微服务设计,模块细分更适合业务迭代,分布式架构为高并发、高容错、高可用提供支持

容器级交付

提供 Docker 镜像,公有云或物理机,均可一键部署,一键扩缩容,以应对不同的流量场景和评测压力

概览

  • 基于 Docker,公有云或物理机,均可一键部署!
  • 前后端分离,分布式微服务架构,可单独对某个服务动态扩缩容以应对不同场景的流量压力!
  • 评测机的多核平台调度方案,单点评测、多点评测,按需配置!
  • 多种国际赛制支持(ICPC/OI/IOI)!
  • 评测模板,可自定义添加多语言支持!更有进阶模式支持数据结构课设、汇编语言实验、操作系统课设等个性化评测场景!
  • 一题多面,同一道题目,可有多个题面!可支持中文、英文、俄文等多语言!可支持复杂、精炼、变形题面等多形式!
  • Markdown & HTML 题面支持,随意创作丰富多彩的题面!
  • 动态评测,提交后每个评测点实时返回评测结果!
  • 多评测点,单独赋分,动态调整测试点的顺序,直接选取测试点作为题面样例点!
  • 虚拟评测,支持世界上多个知名 OJ 系统的远程提交,让训练数据沉淀到一方系统,为未来传承宝贵的数据资产!

项目仓库

仓库 描述
SDUOJ/OnlineJudge 产品主仓库、文档、Issue Tracker
SDUOJ/sduoj-server 后端代码仓库
SDUOJ/sduoj-web 用户前端代码仓库
SDUOJ/sduoj-manage 管理员前端代码仓库
SDUOJ/sduoj-judger 评测机代码仓库
SDUOJ/sduoj-sandbox 安全沙箱代码仓库
SDUOJ/sduoj-deploy 部署代码仓库,含 Docker Compose 脚本

网站截图

用户使用手册

更多截图,点击展开

搭建指南

架构图:

如何基于 Docker Compose 快速部署?

浏览器支持

For Vue frontend:

  • Modern browsers (chrome, firefox) 和 Internet Explorer 10+.

For React frontend:

  • Microsoft Edge (85+), Google Chrome (85+), Mozilla Firefox (79+), Apple Safari (13.4+), Internet Explorer is not supported

Star History

Star History Chart

技术团队


zhangt2333
Leader, Backend

yhf2000
Leader, Frontend

jesHrz
Leader, Sandbox

koi2000
Honorary MBR.

HYLazy
Honorary MBR.

zhaoyifan0528
Honorary MBR.

OldAtaraxia
Honorary MBR.

zhr2001
Honorary MBR.

sys16384
Honorary MBR.

GeneLiuXe
Honorary MBR.

suxb201
Honorary MBR.

Xrvitd
Honorary MBR.

开源许可

基于 GNU Affero General Public License v3.0 开源协议。

onlinejudge's People

Contributors

geneliuxe avatar yhf2000 avatar zhangt2333 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

onlinejudge's Issues

deploy failed

Describe the bug
Login failed
I tried to restart many times, but the problem still arose

Environment:

OS: Ubuntu 20.04
CPU: [6 Core]
RAM: [8 GB]
Disk: [900 GB]
Docker Version: [20.10.5]
Docker-Compose Version: [1.28.5]

Additional context

QQ截图20210320232713

feat: more complete support for ICPC competitions

  1. 增加比赛账号生成机制:
    • 支持在 oj 内部生成临时账号,默认生成的账号在一个 group 中,nickname 显示为全队的个人信息。
    • 支持更多的用户信息字段:学校,所在机房位置等。
  2. 增加滚榜功能:
  3. 增加发放任务功能:
    • 提供气球订阅机器人的服务,为比赛创建志愿者用户权限,可以接受全部的 第一次 AC,题目通过,打印材料发放等消息推送。
    • 提供抢占式的工作模式,用户需要手动点击接取某一个发放任务,在完成发放后,点击发放完成。如果接取的某个任务已经被别人接取,则自动刷新当前列表,提供最新的可接取的信息。
  4. 增加打印功能:
    • 增加网页端的提交打印任务的接口(限制总行数与字符数,限制打印请求的频率),显示历史提交的打印信息与当前的打印状态。
    • 增加客户端,接取并完成打印任务(打印的材料要写明是谁的,位置在哪)。
  5. 增加问答与推送机制:
    • 参赛选手可以向裁判发出疑问,以聊天的形式呈现(选手区域可以点击打开聊天框进行答疑)。
    • 裁判可以以聊天的形式,进行答疑(对于一场比赛,裁判区域可以显示若干的聊天信息,类似于QQ)。
    • 裁判可以通过全局消息的方式,向选手推送统一的消息(前端需要长期保持 ws 链接,或使用定时的轮训机制)。
  6. 支持外榜功能,可以在比赛中提供外榜,供外部人员观看。
  7. 提供榜单解封时间设定的功能,在比赛结束后,设定一个榜单解封的时间,以便于进行滚榜。
  8. 提供榜单的收藏与筛选功能,支持收藏特定的队伍,并可以通过输入信息,检索相关的队伍。

Register Failed

Describe the bug
Register failed.
The admin failed to add new users.

To Reproduce

  1. Go to Register page
  2. Finish inputing the information
  3. Click on 'register'
  4. See error


Environment:

  • OS: Ubuntu 20.04
  • CPU: [6 Core]
  • RAM: [8 GB]
  • Disk: [900 GB]
  • Docker Version: [20.10.0]
  • Docker-Compose Version: [1.27.4]

how to use tags

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
how to use tags?

Deploy failed. Insufficient server resources

执行 docker-compose -f sduoj-deploy/example/pseudo-distributed-ip.yaml up 后,一开始正常运行,
后来出现

sduoj-filesys      | Host  sduoj-nacos:8848 not yet available...
sduoj-user         | Host  sduoj-nacos:8848 not yet available...
sduoj-gateway      | Host sduoj-nacos:8848 not yet available...
sduoj-submit       | Host  sduoj-nacos:8848 not yet available...
sduoj-auth         | Host  sduoj-nacos:8848 not yet available...
sduoj-problem      | Host  sduoj-nacos:8848 not yet available...
sduoj-websocket    | Host  sduoj-nacos:8848 not yet available...
sduoj-contest      | Host  sduoj-nacos:8848 not yet available...
sduoj-gateway      | Host sduoj-nacos:8848 not yet available...
sduoj-judger       | Host sduoj-nacos:8848 not yet available...
sduoj-filesys      | Host  sduoj-nacos:8848 not yet available...
sduoj-user         | Host  sduoj-nacos:8848 not yet available...
sduoj-problem      | Host  sduoj-nacos:8848 not yet available...
sduoj-websocket    | Host  sduoj-nacos:8848 not yet available...
sduoj-submit       | Host  sduoj-nacos:8848 not yet available...
sduoj-contest      | Host  sduoj-nacos:8848 not yet available...
sduoj-auth         | Host  sduoj-nacos:8848 not yet available...
sduoj-judger       | Host sduoj-nacos:8848 not yet available...
sduoj-filesys      | Host  sduoj-nacos:8848 not yet available...
sduoj-gateway      | Host sduoj-nacos:8848 not yet available...
sduoj-user         | Host  sduoj-nacos:8848 not yet available...
sduoj-contest      | Host  sduoj-nacos:8848 not yet available...
sduoj-judger       | Host sduoj-nacos:8848 not yet available...
sduoj-submit       | Host  sduoj-nacos:8848 not yet available...
sduoj-auth         | Host  sduoj-nacos:8848 not yet available...
sduoj-websocket    | Host  sduoj-nacos:8848 not yet available...
sduoj-gateway      | Host sduoj-nacos:8848 not yet available...
sduoj-problem      | Host  sduoj-nacos:8848 not yet available...
sduoj-filesys      | Host  sduoj-nacos:8848 not yet available...
sduoj-user         | Host  sduoj-nacos:8848 not yet available...
sduoj-gateway      | Host sduoj-nacos:8848 not yet available...
sduoj-websocket    | Host  sduoj-nacos:8848 not yet available...
sduoj-judger       | Host sduoj-nacos:8848 not yet available...
sduoj-auth         | Host  sduoj-nacos:8848 not yet available...

然后无法成功搭建

Is GPL v3.0 license enough?

Since this is an online web service, malicious developers could compile and run this project without sharing the source code he has changed, while not against GPL v3.0.

You should use AGPL v3.0 to stop others doing evil things.

feat: support for online IM

在一些场景中都存在即时通讯的需求:

  1. 在考试/比赛过程中进行问答
  2. 在考试/比赛过程中,统一推送要修改的信息

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.