Go to file
Himit_ZH 69fb8bf0f9 fix bug 2021-11-28 14:18:39 +08:00
docs 修复backend的bug(事务失效、数据上传问题)和judgeserver对java编译的修正 2021-11-24 20:03:14 +08:00
hoj-springboot fix bug 2021-11-28 14:18:39 +08:00
hoj-vue add training module api 2021-11-28 11:05:33 +08:00
judger 增加对GYM题目的Vjudge支持 2021-11-06 23:25:42 +08:00
sqlAndsetting add training module api 2021-11-28 11:05:33 +08:00
LICENSE 判题调度逻辑2.0解决并发问题 2021-04-15 23:31:30 +08:00
README.md 更新文档 2021-11-07 11:00:33 +08:00

README.md

Hcode Online JudgeHOJ

Java Spring Boot SpringCloud Alibaba MySQL Redis Nacos Vue QQ Group 598587305

一、前言

基于前后端分离分布式架构的在线测评平台hoj前端使用vue后端主要使用springbootredismysqlnacos等技术支持HDU、POJ、Codeforces包括GYM的vjudge判题同时适配手机端、电脑端浏览拥有讨论区与站内消息系统。

在线Demo 在线文档 Github&Gitee仓库地址 QQ群
https://hdoi.cn https://www.hcode.top/docs https://github.com/HimitZH/HOJ https://gitee.com/himitzh0730/hoj 598587305

注意:

  1. 建议使用Centos8以上或Ubuntu16.04以上的操作系统不然判题机judgeserver可能无法正常启动。
  2. 服务器配置尽可能使用2核4G以上保证服务的正常启动与运行。
  3. 尽量不要使用突发性能或共享型的云服务器实例,有可能造成评测时间计量不准确。
  4. 有任何部署问题或项目bug请发issue或者加QQ群。
  5. 如果要对本项目进行商业化请在页面底部的Powered by指向HOJ本仓库地址顺便点上star收藏本项目对开发者的支持谢谢。

二、部署

部署文档:基于docker-compose部署

具体请看部署文档已安装docker和docker-compose的可以执行以下命令快速部署

注意:

1. 正式部署请自行修改配置不要使用默认配置例如mysql或redis的密码

2. 如果已经为了测试而使用默认配置启动来部署,建议删掉当前文件夹,重新执行以下部署流程,修改默认配置

git clone https://gitee.com/himitzh0730/hoj-deploy.git && cd hoj-deploy && cd standAlone

vim .env # 建议执行这一步,对默认配置进行修改。

docker-compose up -d

根据网速情况,大约十到二十分钟即可安装完毕,全程无需人工干预。

docker ps # 查看当前运行的容器状态
  1. 大概初始化启动需要一至两分钟当看到所有的容器的状态status都为UPhealthy就代表 OJ 已经启动成功。

    注意可能初始化过程中访问网页会出现服务器异常此为正常现象因为容器还在初始化中请耐心等待容器状态为up和healthy大概需要1~2分钟

  2. 默认超级管理员账号与密码:root / hoj123456

    部署成功后登录root账号进入后台http://ip/admin/conf修改邮箱配置新用户才可以正常注册因为账号注册与密码等修改操作需要通过邮件发送验证码邮箱配置可以自行百度开启使用例如QQ邮箱提供的POP3/SMTP服务

    Host: smtp.qq.com
    Port: 465
    Username: qq邮箱账号
    Password: 开启SMTP服务后生成的随机授权码
    

三、更新

请在docker-compose.yml当前文件夹下执行docker-compose pull拉取最新镜像,然后重新docker-compose up -d即可。

四、上线日记

时间 内容 更新者
2020-10-26 正式开发 Himit_ZH
2021-04-10 首次上线测试 Himit_ZH
2021-04-15 判题调度2.0解决并发问题 Himit_ZH
2021-04-16 重构解耦JudgeServer判题逻辑添加部署文档 Himit_ZH
2021-04-19 加入rsync实现评测数据同步修复一些已知的BUG Himit_ZH
2021-04-24 加入题目模板,修改页面页脚 Himit_ZH
2021-05-02 修复比赛后管理员重判题目导致排行榜失效的问题 Himit_ZH
2021-05-09 添加公共讨论区,题目讨论区,比赛评论 Himit_ZH
2021-05-12 添加评论及回复删除,讨论举报,调整显示时间。 Himit_ZH
2021-05-16 完善权限控制,讨论管理员管理,讨论删除与编辑更新。 Himit_ZH
2021-05-22 更新docker-compose一键部署修正部分bug Himit_ZH
2021-05-24 判题调度乐观锁改为悲观锁 Himit_ZH
2021-05-28 增加导入导出题目,增加用户页面的最近登录,开发正式结束,进入维护摸鱼 Himit_ZH
2021-06-02 大更新完善补充前端页面修正判题等待超时时间修补一系列bug Himit_ZH
2021-06-07 修正特殊判题增加前台i18n Himit_ZH
2021-06-08 添加后台i18n,路由懒加载 Himit_ZH
2021-06-12 完善比赛赛制,具体请看在线文档 Himit_ZH
2021-06-14 完善后台管理员权限控制恢复CF的vjudge判题 Himit_ZH
2021-06-25 丰富前端操作增加POJ的vjudge判题 Himit_ZH
2021-08-14 增加spj对使用testlib的支持 Himit_ZH
2021-09-21 增加比赛打印功能、账号限制功能 Himit_ZH
2021-10-05 增加站内消息系统——评论、回复、点赞、系统通知的消息,优化前端。 Himit_ZH
2021-10-06 美化比赛排行榜增加对FPS题目导入的支持 Himit_ZH

五、部分截图

以下截图页面均支持中英文国际化,点击底部的转换即可全网站转换,包括后台管理,同时浏览器会记住本次选择的语言

首页页面

首页

首页英文

在这里插入图片描述

站内消息系统

站内消息系统

站内消息系统

题目列表页

题目列表页

题目详情页

题目详情页

比赛列表页

比赛列表页

比赛以西南科技大学某届新生赛截图为例

比赛详情首页

比赛详情页

比赛题目列表页

比赛题目列表

比赛排行榜

比赛排行榜

提交列表页

在这里插入图片描述

排行榜

排行榜

公共讨论区

公共讨论区

评论组件

评论组件

个人首页

个人首页

个人设置页

个人设置

管理后台首页

管理后端

部分手机端显示

手机端

评论区