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