All Projects → HimitZH → HOJ

HimitZH / HOJ

Licence: MIT License
⚡🔥Hcode Online Judge(HOJ)🔥⚡:基于SpringCloud与Vue前后端分离,分布式架构的在线测评平台OJ (An open source online judge system base on SpringBoot, Springcloud Alibaba and Vue.js !)

Programming Languages

java
68154 projects - #9 most used programming language
Vue
7211 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to HOJ

Lamp Cloud
lamp-cloud 基于Jdk11 + SpringCloud + SpringBoot的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
Stars: ✭ 4,125 (+5966.18%)
Mutual labels:  springboot, nacos
Onemall
芋道 mall 商城,基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。
Stars: ✭ 5,312 (+7711.76%)
Mutual labels:  springboot, nacos
hanzo-cloud
SpringCloud(Hoxton.SR5) + SpringBoot(2.3.0.RELEASE)的 SaaS型微服务后端脚手架。授权中心开发完毕。文档地址:https://www.kancloud.cn/hanzo/hanzo
Stars: ✭ 15 (-77.94%)
Mutual labels:  springboot, nacos
Springcloud
基于SpringCloud2.1的微服务开发脚手架,整合了spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway等。服务治理方面引入elasticsearch、skywalking、springboot-admin、zipkin等,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上。持续更新中
Stars: ✭ 6,997 (+10189.71%)
Mutual labels:  springboot, nacos
hustoj
Popular Open Source Online Judge based on PHP/C++/MySQL/Linux for ACM/ICPC and NOIP training, with easy installation. 开源OJ系统
Stars: ✭ 2,773 (+3977.94%)
Mutual labels:  oj, onlinejudge
OpenJudger
A lightweight⚡high performance💪universal🍭program judger, support multiple languages, special judge and SQL judge💡轻量高性能的程序评测核心, 易于扩展和二次开发, 支持多编程语言, SPJ和SQL评测
Stars: ✭ 63 (-7.35%)
Mutual labels:  oj, onlinejudge
Gpmall
【咕泡学院实战项目】-基于SpringBoot+Dubbo构建的电商平台-微服务架构、商城、电商、微服务、高并发、kafka、Elasticsearch
Stars: ✭ 4,241 (+6136.76%)
Mutual labels:  springboot, nacos
BLumiaOJ
A HUSTOJ compatible Online Judge system.
Stars: ✭ 37 (-45.59%)
Mutual labels:  oj, onlinejudge
skycloud-base
🔥springcloud脚手架,配置中心(apollo/nacos) 注册中心(consul/nacos) 分布式事物(seata) 调用链(skywalking) 日志(ELK)监控(prometheus与grafana) 等,适合学习与快速开发使用
Stars: ✭ 80 (+17.65%)
Mutual labels:  springboot, nacos
taotao-cloud-project
微服务开发脚手架,包括大数据模块、微服务模块、前端模块。基于Spring Cloud Alibaba的微服务架构。提供技术框架的基础能力的封装,减少开发工作,只关注业务,包含了工作以来的工作总结和技术沉淀
Stars: ✭ 76 (+11.76%)
Mutual labels:  springboot, nacos
yiying-parent
在线电影,基于分布式微服务架构,技术架构有SpringBoot、SpringCoud、nacos、dubbo、mybatis-plus、Druid,采用前后端分离方式进行开发,实现自定义视频上传、解码、存储、点播
Stars: ✭ 48 (-29.41%)
Mutual labels:  springboot, nacos
primo
primo轮子中心,为开发效率翻滚。(Java、Spring)一些自动生成代码的插件,缓存、限流、接口等快速接入的中间件也会逐渐弄起来
Stars: ✭ 74 (+8.82%)
Mutual labels:  springboot
canal-client
spring boot canal starter 易用的canal 客户端 canal client
Stars: ✭ 130 (+91.18%)
Mutual labels:  springboot
Java Note
后端研发——笔记
Stars: ✭ 54 (-20.59%)
Mutual labels:  nacos
compose-pay
🔱 HA distributed payment gateway. 高可用分布式支付网关/支付前置/支付系统/微信/支付宝
Stars: ✭ 21 (-69.12%)
Mutual labels:  springboot
spring-boot-microservice-best-practices
Best practices and integrations available for Spring Boot based Microservice in a single repository.
Stars: ✭ 139 (+104.41%)
Mutual labels:  springboot
spring-security-mybatis-demo
A simple demo for Spring Security with Mybatis .
Stars: ✭ 48 (-29.41%)
Mutual labels:  springboot
smart-cloud-examples
基于springcloud的脚手架(smart-cloud)示例,支持服务合并部署与拆分部署、接口加解密签名、日志数据脱敏、接口数据mock、接口文档自动生成、请求幂等校验、接口日志&&sql日志切面打印、分表分库分布式事务等
Stars: ✭ 23 (-66.18%)
Mutual labels:  springboot
spring-security-passwordless
Passwordless authentication example application using Spring Boot and Spring Security
Stars: ✭ 112 (+64.71%)
Mutual labels:  springboot
poj
an online judge in python3 and django
Stars: ✭ 24 (-64.71%)
Mutual labels:  oj

Hcode Online Judge(HOJ)

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

一、前言

基于前后端分离,分布式架构的在线测评平台(hoj),前端使用vue,后端主要使用springboot,redis,mysql,nacos等技术,支持HDU、POJ、Codeforces(包括GYM)、AtCoder、SPOJ的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、nacos的密码

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
2021-12-09 美化比赛排行榜,增加外榜、打星队伍、关注队伍的支持 Himit_ZH
2022-01-01 增加公开训练和公开训练(题单) Himit_ZH
2022-01-04 增加交互判题、重构judgeserver的三种判题模式(普通、特殊、交互) Himit_ZH
2022-01-29 重构remote judge,增加AtCoder、SPOJ的支持 Himit_ZH
2022-02-19 修改首页前端布局和题目列表页 Himit_ZH
2022-02-25 支持PyPy2、PyPy3、JavaScript V8、JavaScript Node、PHP Himit_ZH

五、部分截图

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

首页页面

首页

首页英文

在这里插入图片描述

站内消息系统

站内消息系统

站内消息系统

题目列表页

题目列表页

题目详情页

题目详情页

训练列表页

训练列表页

训练题目列表页

训练题目列表页

比赛列表页

比赛列表页

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

比赛详情首页

比赛详情页

比赛题目列表页

比赛题目列表

比赛排行榜

  • ACM比赛

比赛排行榜

  • OI比赛

    oi排行榜

提交列表页

在这里插入图片描述

排行榜

排行榜

公共讨论区

公共讨论区

评论组件

评论组件

个人首页

个人首页

个人设置页

个人设置

管理后台首页

管理后端

部分手机端显示

手机端

评论区

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].