Skip to content

Commit

Permalink
add interactive judge and Reconstruct judge mode
Browse files Browse the repository at this point in the history
  • Loading branch information
HimitZH committed Jan 4, 2022
1 parent 994b05e commit 67fe2ef
Show file tree
Hide file tree
Showing 48 changed files with 2,211 additions and 1,090 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

## 一、前言

基于前后端分离,分布式架构的在线测评平台(hoj),前端使用vue,后端主要使用springboot,redis,mysql,nacos等技术,**支持HDU、POJ、Codeforces(包括GYM)的vjudge判题,同时适配手机端、电脑端浏览,拥有讨论区与站内消息系统,支持私有训练、公开训练(题单),还有完善的比赛功能(打星队伍、关注队伍、外榜)。**
基于前后端分离,分布式架构的在线测评平台(hoj),前端使用vue,后端主要使用springboot,redis,mysql,nacos等技术,**支持HDU、POJ、Codeforces(包括GYM)的vjudge判题,同时适配手机端、电脑端浏览,拥有讨论区与站内消息系统,支持私有训练、公开训练(题单),还有完善的判题模式(普通测评、特殊测评、交互测评)和完善的比赛功能(打星队伍、关注队伍、外榜)。**

| 在线Demo | 在线文档 | Github&Gitee仓库地址 | QQ群 |
| :--------------------------------: | :-------------------------------------------------------: | :----------------------------------------------------------: | :-------: |
Expand Down Expand Up @@ -98,6 +98,7 @@ docker ps # 查看当前运行的容器状态
| 2021-10-06 | 美化比赛排行榜,增加对FPS题目导入的支持 | Himit_ZH |
| 2021-12-09 | 美化比赛排行榜,增加外榜、打星队伍、关注队伍的支持 | Himit_ZH |
| 2022-01-01 | 增加公开训练和公开训练(题单) | Himit_ZH |
| 2022-01-04 | 增加交互判题、重构judgeserver的三种判题模式(普通、特殊、交互) | Himit_ZH |

## 五、部分截图

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ module.exports = context => config({
collapsable: true,
children: [
'use/import-problem',
'use/judge-mode',
'use/testcase',
'use/training',
'use/contest',
Expand All @@ -97,8 +98,7 @@ module.exports = context => config({
'use/notice-announcement',
'use/discussion-admin',
'use/update-fe',
'use/close-free-cdn',
'use/spj'
'use/close-free-cdn'
]
},
],
Expand Down
Binary file added docs/docs/.vuepress/public/wxpay.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 9 additions & 2 deletions docs/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ features:
details: 判题使用 cgroup 隔离用户程序,网站权限控制完善
- title: 多样化
details: 独有自身判题服务,同时支持其它知名OJ题目的提交判题
footer: MIT Licensed | Copyright © 2022.01.01 @Author Himit_ZH QQ Group:598587305
footer: MIT Licensed | Copyright © 2022.01.04 @Author Himit_ZH QQ Group:598587305
---

[![Java](https://img.shields.io/badge/Java-1.8-informational)](http://openjdk.java.net/)
Expand All @@ -32,7 +32,7 @@ footer: MIT Licensed | Copyright © 2022.01.01 @Author Himit_ZH QQ Group:598587
[![Vue](https://img.shields.io/badge/Vue-2.6.11-success)](https://cn.vuejs.org/)
[![QQ Group 598587305](https://img.shields.io/badge/QQ%20Group-598587305-blue)](https://qm.qq.com/cgi-bin/qm/qr?k=WWGBZ5gfDiBZOcpNvM8xnZTfUq7BT4Rs&jump_from=webapi)

Hcode Online Judge (HOJ) : 基于前后端分离,分布式架构的在线测评平台(hoj),前端使用vue,后端主要使用springboot,redis,mysql,nacos等技术,**支持HDU、POJ、Codeforces(包括GYM)的vjudge判题,同时适配手机端、电脑端浏览,拥有讨论区与站内消息系统,支持私有训练、公开训练(题单),还有完善的比赛功能(打星队伍、关注队伍、外榜)。**
Hcode Online Judge (HOJ) : 基于前后端分离,分布式架构的在线测评平台(hoj),前端使用vue,后端主要使用springboot,redis,mysql,nacos等技术,**支持HDU、POJ、Codeforces(包括GYM)的vjudge判题,同时适配手机端、电脑端浏览,拥有讨论区与站内消息系统,支持私有训练、公开训练(题单),还有完善的判题模式(普通测评、特殊测评、交互测评)和完善的比赛功能(打星队伍、关注队伍、外榜)。**

[Github 仓库](https://github.com/HimitZH/HOJ)
[Gitee 仓库](https://gitee.com/himitzh0730/hoj)
Expand All @@ -48,3 +48,10 @@ Hcode Online Judge (HOJ) : 基于前后端分离,分布式架构的在线测
QQ: [372347736](https://wpa.qq.com/msgrd?v=3&uin=372347736&site=qq&menu=yes)
HOJ交流群: [598587305](https://qm.qq.com/cgi-bin/qm/qr?k=WWGBZ5gfDiBZOcpNvM8xnZTfUq7BT4Rs&jump_from=webapi)

## 支持我们

**如果您觉得hoj好用,想要支持一下开发者,项目的开发与维护需要资金,欢迎进行捐助。**

**可以微信扫下方二维码支持一波,不必在乎多少,尽自己能力支持即可。**

![wxpy](/docs/wxpay.png)
3 changes: 2 additions & 1 deletion docs/docs/introducition/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ HOJ,全称 Hcode Online Judge,是基于(springcloud+vue)前后端分离
- 支持ACM、OI题目及比赛,比赛拥有外榜、打星队伍、关注队伍等功能
- 拥有讨论区、题目讨论、比赛讨论、同时拥有站内消息系统
- 支持私有训练、公开训练(题单)
- 支持testlib的SPJ
- 支持testlib的特殊判题
- 支持交互判题
- 多样:支持自身题目数据评测,也支持其它知名OJ(HDU、Codeforces、POJ)题目的爬取与提交
:::

Expand Down
108 changes: 59 additions & 49 deletions docs/docs/use/import-problem.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,55 +44,65 @@

```json
{
// 题目支持的语言如下,可多可少
"languages": ["C", "C++", "Java", "Python3", "Python2", "Golang", "C#"],
"samples": [
{
"input": "1.in",
"output": "1.out",
//"score": 10 // 如果是oi题目需要给测试点加得分
},
{
"input": "2.in",
"output": "2.out",
//"score": 10 // 如果是oi题目需要给测试点加得分
}
],
"tags": ["测试题","测试"], // 题目标签,一般不超过三个
"problem": {
"auth": 1, // 1 公开赛
"author": "admin", // 题目上传的作者,请使用用户名
"isRemote": false, // 均为非VJ题目,不用修改
"problemId": "HOJ-1010", // 题目的展示id
"description": "", // 题目的描述,支持markdown语法
"source": "", // 题目来源
"title": "", // 题目标题
"type": 0, // 0为ACM题目,1为OI题目
"timeLimit": 1000, // 时间限制 单位是ms
"memoryLimit": 256, // 空间限制 单位是mb
"input": "", // 题目的输入描述
"output": "", // 题目的输出描述
"difficulty": 0, // 题目难度,1为简单,2为中等,3为困难
"examples": "", // 题目的题面样例,格式为<input>输入</input><output>输出</output><input>输入</input><output>输出</output>
"ioScore": 100, // OI题目总得分,与测试点总分一致
"codeShare": true, // 该题目是否允许用户共享其提交的代码
"hint": "", // 题目提示
"isRemoveEndBlank": true, // 评测数据的输出是否自动去掉行末空格
"openCaseResult": true, // 是否允许用户看到各个评测点的结果
// "spjLanguage:"C" // 特殊判题的程序代码语言
// "spjCode":"" // 特殊判题的代码
},
"isSpj": false, // 是否为特殊判题
"codeTemplates": [
{
"code": "", // 模板代码
"language": "C" // 模板代码语言
},
{
"code": "", // 模板代码
"language": "C++"// 模板代码语言
}
]
"judgeMode":"default", // 普通判题:default, 特殊判题:spj, 交互判题:interactive
// 题目支持的语言如下,可多可少
"languages": ["C", "C++", "Java", "Python3", "Python2", "Golang", "C#"],
"samples": [
{
"input": "1.in",
"output": "1.out",
//"score": 10 // 如果是oi题目需要给测试点加得分
},
{
"input": "2.in",
"output": "2.out",
//"score": 10 // 如果是oi题目需要给测试点加得分
}
],
"tags": ["测试题","测试"], // 题目标签,一般不超过三个
"problem": {
"auth": 1, // 1 公开赛
"author": "admin", // 题目上传的作者,请使用用户名
"isRemote": false, // 均为非VJ题目,不用修改
"problemId": "HOJ-1010", // 题目的展示id
"description": "", // 题目的描述,支持markdown语法
"source": "", // 题目来源
"title": "", // 题目标题
"type": 0, // 0为ACM题目,1为OI题目
"timeLimit": 1000, // 时间限制 单位是ms
"memoryLimit": 256, // 空间限制 单位是mb
"input": "", // 题目的输入描述
"output": "", // 题目的输出描述
"difficulty": 0, // 题目难度,1为简单,2为中等,3为困难
"examples": "", // 题目的题面样例,格式为<input>输入</input><output>输出</output><input>输入</input><output>输出</output>
"ioScore": 100, // OI题目总得分,与测试点总分一致
"codeShare": true, // 该题目是否允许用户共享其提交的代码
"hint": "", // 题目提示
"isRemoveEndBlank": true, // 评测数据的输出是否自动去掉行末空格
"openCaseResult": true, // 是否允许用户看到各个评测点的结果
// "spjLanguage:"C" // 特殊判题的程序代码语言
// "spjCode":"" // 特殊判题的代码
},
"codeTemplates": [
{
"code": "", // 模板代码
"language": "C" // 模板代码语言
},
{
"code": "", // 模板代码
"language": "C++"// 模板代码语言
}
],
// 用户程序的额外库文件 key:文件名,value:文件内容,如果没有请去掉
"userExtraFile":{
"testlib.h":"code",
"stdio.h":"..."
},
// 特殊或交互程序的额外库文件 key:文件名,value:文件内容,如果没有请去掉
"judgeExtraFile":{
"testlib.h":"code",
"stdio.h":"..."
}
}
```

Expand Down
Loading

0 comments on commit 67fe2ef

Please sign in to comment.