Giter Club home page Giter Club logo

simplefanc / voj Goto Github PK

View Code? Open in Web Editor NEW
80.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

voj's People

Contributors

simplefanc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

voj's Issues

无法判题

您好,我按照您提供的文档使用docker单体部署,发现无法判题,前端一直显示" Pending",查看后台数据库,status是"5"(系统错误:STATUS__SYSTEM_ERROR),请问如何排查此问题呢?
image

部署问题

部署以后,Docker中的MySQL无法启动,一直显示服务器错误,也重启不了。

voj-mysql容器warning

1689677569352

在服务正常运行后,voj-mysql的容器内输出信息如上图所示。

请问这问题有什么解决的好办法呢?

SQL缺失

; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'c.contest_admin_visible' in 'field list'

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.