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
- 前端源码:https://github.com/simplefanC/voj-vue
- 判题沙箱:https://github.com/criyle/go-judge
项目文档地址: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 部署