simplefanC / voj

Virtual Online Judge(VOJ)是基于微服务架构的高性能在线评测系统。拥有本地判题服务,同时支持其它知名 OJ (HDU、POJ...) 的远程判题。采用现阶段流行技术实现,采用 Docker 容器化部署。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Virtual Online Judge(VOJ)

Java Spring Boot Spring Cloud Spring Cloud Alibaba MySQL Redis Vue

简介

VOJ 是基于微服务、前后端分离的高性能在线评测系统。采用现阶段流行技术实现,采用 Docker 容器化部署。

概览

  • 基于 Docker,真正一键部署
  • 前后端分离,模块化编程
  • 微服务,支持分布式判题
  • 拥有本地判题服务,同时支持其它知名 OJ (HDU、POJ、Codeforces、AtCoder...) 的远程判题
  • ACM/OI 两种比赛模式、完善的比赛功能(打星队伍、关注队伍、外榜)
  • 完善的判题模式(普通测评、特殊测评、交互测评)
  • 支持私有训练、公开训练(题单)
  • 更细致的权限划分,超级管理员、题目管理员、普通管理员各司其职
  • 丰富的可视化图表,一图胜千言
  • 支持 Template Problem,可以添加函数题甚至填空题
  • 多语言支持:C, C++, Java, Python, C#GoLang
  • Markdown & LaTeX 支持

项目源码

项目文档

项目文档地址:https://github.com/simplefanC/voj/wiki

项目结构

voj
├── voj-common -- 工具类及通用代码
├── voj-backend -- 业务服务模块
└── voj-judger -- 评测服务模块

技术选型

技术 说明 官网
Spring Boot 容器+MVC框架 https://spring.io/projects/spring-boot
Spring Cloud 微服务框架 https://spring.io/projects/spring-cloud
Spring Cloud Alibaba 微服务框架 https://spring.io/projects/spring-cloud-alibaba
MyBatis-Plus ORM框架 https://baomidou.com
Druid 数据库连接池 https://github.com/alibaba/druid
Redis 分布式缓存 https://redis.io
Shiro 认证和授权框架 https://shiro.apache.org
JWT JWT登录支持 https://github.com/jwtk/jjwt
Hibernator-Validator 验证框架 http://hibernate.org/validator
EasyExcel JAVA解析Excel工具 https://github.com/alibaba/easyexcel
PageHelper MyBatis物理分页插件 https://github.com/pagehelper/Mybatis-PageHelper
Hutool Java工具类库 https://github.com/looly/hutool
Lombok 简化对象封装工具 https://github.com/rzwitserloot/lombok
Swagger-UI 文档生成工具 https://github.com/swagger-api/swagger-ui
Nginx 静态资源服务器 https://www.nginx.com
Docker 应用容器引擎 https://www.docker.com

部署

快速部署:基于 Docker Compose 部署

部署仓库:https://github.com/simplefanC/voj-deploy

About

Virtual Online Judge(VOJ)是基于微服务架构的高性能在线评测系统。拥有本地判题服务,同时支持其它知名 OJ (HDU、POJ...) 的远程判题。采用现阶段流行技术实现,采用 Docker 容器化部署。

License:MIT License


Languages

Language:Java 97.0%Language:JavaScript 2.3%Language:HTML 0.7%