This commit is contained in:
parent
961275255e
commit
1262a57a5e
59
README.md
59
README.md
|
@ -3,36 +3,37 @@
|
||||||
基于前后端分离,分布式架构的在线测评平台(hoj)
|
基于前后端分离,分布式架构的在线测评平台(hoj)
|
||||||
|
|
||||||
- 前端:
|
- 前端:
|
||||||
- 技术以Vue为主,element-ui为主要框架,网站风格样式模仿qdoj
|
- [x] 技术以Vue为主,element-ui为主要框架,网站风格样式模仿qdoj
|
||||||
- 支持手机端,响应式布局
|
- [x] 支持手机端,响应式布局
|
||||||
- 以CodeMirror作为在线代码编辑器
|
- [x] 以CodeMirror作为在线代码编辑器
|
||||||
- 以Mavon-Editor作为富文本编辑器
|
- [x] 以Mavon-Editor作为富文本编辑器
|
||||||
- 支持用户头像上传,可选择性获取用户Codeforces分数
|
- [x] 支持用户头像上传,可选择性获取用户Codeforces分数
|
||||||
- 定时获取例如Codeforces等其它知名OJ的近期比赛数据
|
- [x] 定时获取例如Codeforces等其它知名OJ的近期比赛数据
|
||||||
- 当前支持HDU的Virtual Judge(远程虚拟判题)与题目获取
|
- [x] 当前支持HDU的Virtual Judge(远程虚拟判题)与题目获取
|
||||||
- 题目支持特别判题
|
- [x] 题目支持特别判题
|
||||||
- 题目支持可选择性去除提交代码的末尾空白符(会影响CE判定)
|
- [x] 题目支持可选择性去除提交代码的末尾空白符(会影响CE判定)
|
||||||
- 题目支持可选择性允许用户查看各个测试点结果(状态,运行时间,运行空间,OI题目的测试点得分),暂不支持测试点数据公开。
|
- [x] 题目支持可选择性允许用户查看各个测试点结果(状态,运行时间,运行空间,OI题目的测试点得分),暂不支持测试点数据公开。
|
||||||
- 管理后台支持题目数据以ZIP上传或手动输入上传
|
- [x] 管理后台支持题目数据以ZIP上传或手动输入上传
|
||||||
- 管理后台支持监控服务系统的状态及各判题服务的状态
|
- [x] 管理后台支持监控服务系统的状态及各判题服务的状态
|
||||||
- 管理后台支持动态修改网站配置,例如邮件系统配置,数据库配置等
|
- [x] 管理后台支持动态修改网站配置,例如邮件系统配置,数据库配置等
|
||||||
- 比赛支持封榜,支持ACM与OI模式
|
- [x] 比赛支持封榜,支持ACM与OI模式
|
||||||
- 比赛支持私有赛(需要密码才可查看与提交),保护赛(每个用户都可查看,提交需要密码),公开赛(每个用户都可查看与提交)三种模式
|
- [x] 比赛支持私有赛(需要密码才可查看与提交),保护赛(每个用户都可查看,提交需要密码),公开赛(每个用户都可查看与提交)三种模式
|
||||||
- 用户提交失败时可重新提交,管理员支持提交重判与比赛题目所有提交重判
|
- [x] 用户提交失败时可重新提交,管理员支持提交重判与比赛题目所有提交重判
|
||||||
- ......
|
- [ ] ......
|
||||||
- 后端:
|
- 后端:
|
||||||
- Web框架技术以Springboot为主
|
- [x] Web框架技术以Springboot为主
|
||||||
- 以Nacos为分布式注册中心及分布式配置中心,支持配置文件动态刷新,支持判题服务Ribbon的负载均衡
|
- [x] 以Nacos为分布式注册中心及分布式配置中心,支持配置文件动态刷新,支持判题服务Ribbon的负载均衡
|
||||||
- 以Mybatis-Plus为数据库中间件,负责数据实体类与数据库数据的转化与获取。
|
- [x] 以Mybatis-Plus为数据库中间件,负责数据实体类与数据库数据的转化与获取。
|
||||||
- 以Jsoup为爬虫框架,负责远程虚拟OJ的题目获取及提交结果获取,同时定时获取各用户的Codeforces分数以及其它知名OJ的近期比赛。
|
- [x] 以Jsoup为爬虫框架,负责远程虚拟OJ的题目获取及提交结果获取,同时定时获取各用户的Codeforces分数以及其它知名OJ的近期比赛。
|
||||||
- 以Shiro为安全框架,支持用户角色权限管理,支持token刷新
|
- [x] 以Shiro为安全框架,支持用户角色权限管理,支持token刷新
|
||||||
- 以redis的发布订阅者作为判题服务的消息提醒,以此调用判题服务
|
- [x] 以redis的发布订阅者作为判题服务的消息提醒,以此调用判题服务
|
||||||
- 后端分为数据后台服务(DataBackup)及判题服务(JudgeServer)
|
- [x] 后端分为数据后台服务(DataBackup)及判题服务(JudgeServer)
|
||||||
1. 数据后台服务:负责提供接口,提供相关数据给前端等
|
1. 数据后台服务:负责提供接口,提供相关数据给前端等
|
||||||
2. 判题服务:只负责获取数据后台服务传输过来的判题的提交,调用VJ判题或调用判题机(Go-Judge)进行评测,将对应结果写回数据库
|
2. 判题服务:只负责获取数据后台服务传输过来的判题的提交,调用VJ判题或调用判题机(Go-Judge)进行评测,将对应结果写回数据库
|
||||||
- 判题机:
|
- 判题机:
|
||||||
- 目前支持HDU的VJ判题
|
- [x] 支持HDU的VJ判题
|
||||||
- 以HttpAPI的形式调用Go-Jugde(高性能可复用的判题沙盒)判题安全沙盒进行提交程序的评测(调用线程池多线程跑评测)
|
- [ ] 支持Codefoces的VJ判题
|
||||||
|
- [x] 以HttpAPI的形式调用Go-Jugde(高性能可复用的判题沙盒)判题安全沙盒进行提交程序的评测(调用线程池多线程跑评测)
|
||||||
- 数据库
|
- 数据库
|
||||||
- Mysql
|
- Mysql
|
||||||
- 缓存中间件
|
- 缓存中间件
|
||||||
|
@ -120,7 +121,7 @@
|
||||||
|
|
||||||
![spingcloud-Alibaba.png](https://cdn.jsdelivr.net/gh/HimitZH/CDN/images/spingcloud-Alibaba.png)
|
![spingcloud-Alibaba.png](https://cdn.jsdelivr.net/gh/HimitZH/CDN/images/spingcloud-Alibaba.png)
|
||||||
|
|
||||||
> 一些网站截图
|
# 三、网站部分截图
|
||||||
|
|
||||||
![hoj1](https://cdn.jsdelivr.net/gh/HimitZH/CDN/images/hoj1.png)
|
![hoj1](https://cdn.jsdelivr.net/gh/HimitZH/CDN/images/hoj1.png)
|
||||||
|
|
||||||
|
@ -142,7 +143,7 @@
|
||||||
|
|
||||||
![hojmb2](https://cdn.jsdelivr.net/gh/HimitZH/CDN/images/hojmb2.png)
|
![hojmb2](https://cdn.jsdelivr.net/gh/HimitZH/CDN/images/hojmb2.png)
|
||||||
|
|
||||||
**Special Judge Example**
|
#四、特判程序例子
|
||||||
|
|
||||||
```c++
|
```c++
|
||||||
#include<iostream>
|
#include<iostream>
|
||||||
|
@ -202,7 +203,7 @@ int spj(int user_output, FILE *output){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**附加:**
|
# 五、附加:
|
||||||
|
|
||||||
[数据库表内容及API文档]("https://gitee.com/himitzh0730/hoj/tree/master/sql&setting")
|
[数据库表内容及API文档]("https://gitee.com/himitzh0730/hoj/tree/master/sql&setting")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue