Giter Club home page Giter Club logo

simplefanc / voj Goto Github PK

View Code? Open in Web Editor NEW
90.0 1.0 8.0 2.47 MB

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

License: MIT License

Java 97.00% HTML 0.69% JavaScript 2.32%
microservice mybatis-plus mysql oj online-judge redis spring-boot spring-cloud springcloudalibaba java17

voj's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.