All Projects → hzxie → Voj

hzxie / Voj

Licence: gpl-3.0
A cross-platform online judge system based on Spring MVC framework and ActiveMQ.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Voj

Xbin Store
模仿国内知名B2C网站,实现的一个分布式B2C商城 使用Spring Boot 自动配置 Dubbox / MVC / MyBatis / Druid / Solr / Redis 等。使用Spring Cloud版本请查看
Stars: ✭ 2,140 (+455.84%)
Mutual labels:  mybatis, spring-mvc, activemq
Dubbo2.5 Spring4 Mybastis3.2 Springmvc4 Mongodb Redis
dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis整合
Stars: ✭ 123 (-68.05%)
Mutual labels:  mybatis, spring-mvc, activemq
Highdsa
2018年本科毕设项目,已更新所有开发和部署文档。基于Dubbo、SSM、Shiro、ELK、ActiveMQ、Redis等实现的一套高可用、高性能、高可扩展的分布式系统架构,实现可支持业务的基础公共服务,API使用Restful风格对外暴露。已经实现的包括:发送邮件服务、FastDFS文件存储服务、ELK实时日志查询服务、Redis缓存服务、Mybatis数据库、阿里短信推送、Goeasy消息推送、Druid监控、ActiveMQ消息队列、shiro权限认证、cas单点登录、权限配置web系统、移动端后台系统。持续更新中......
Stars: ✭ 385 (+0%)
Mutual labels:  mybatis, spring-mvc, activemq
Albert
这个是我个人网站的项目,欢迎贡献代码,力求能够应用到实际工作中java相关的大多数技术栈。有兴趣请Star一下,非常感谢。qq交流群:587577705 这个项目将不断地更新!生产环境:
Stars: ✭ 168 (-56.36%)
Mutual labels:  mybatis, spring-mvc, activemq
vacomall
☀️☀️ 基于 dubbo 实现的分布式电商平台。
Stars: ✭ 42 (-89.09%)
Mutual labels:  activemq, mybatis, spring-mvc
Java-CMS-Framework-Base jeesite.com
Java管理后台快速开发SSM框架_优化版-JDK1.8 spring,springMVC,MyBatis,mysql,shiro,redis,ehcache
Stars: ✭ 21 (-94.55%)
Mutual labels:  mybatis, spring-mvc
gobang04
五子棋社区,前后端完全分离,SSM框架,CORS跨域访问,SSO单点登录,Bootstrap界面,RESTful构架风格,Netty即时通信,Token口令授权,Web端与客户端通信。异步请求,面向接口编程。
Stars: ✭ 14 (-96.36%)
Mutual labels:  mybatis, spring-mvc
DIMS
🐟 数据库系统原理课程设计,Drug Inventory Management System,基于 SSM 框架的医院药品库存管理系统。
Stars: ✭ 49 (-87.27%)
Mutual labels:  mybatis, spring-mvc
Quick4j
Use quick4j build simple,fast,ahead and flexible JVM-based systems and applications.
Stars: ✭ 358 (-7.01%)
Mutual labels:  mybatis, spring-mvc
crowd-admin
crowd-admin是一个基于Spring,Shiro,Redis/ehcache,Mybatis的通用后台权限管理系统,这里推荐本人另一个基于sprinboot的单点登录系统
Stars: ✭ 51 (-86.75%)
Mutual labels:  activemq, mybatis
JavaEE
🔥⭐️👍框架(SSM/SSH)学习笔记
Stars: ✭ 33 (-91.43%)
Mutual labels:  mybatis, spring-mvc
Ssm booksystem
ssm demo,ssm详细教程,SSM简明教程:简单的十步教你搭建人生第一个SSM框架[ SSM框架整合教程(spring+spring mvc+mybatis+redis+maven+idea+bootstrap) ]
Stars: ✭ 355 (-7.79%)
Mutual labels:  mybatis, spring-mvc
SpringBootDataSourceMutil
spring-boot、Spring MVC、Mybatis、JTA实现多数据源动态切换,读写分离,加入Retry重试机制
Stars: ✭ 19 (-95.06%)
Mutual labels:  mybatis, spring-mvc
pighelper
🐷基于Hybrid+SSM的养猪信息化管理平台,该平台实现了对实时新闻,猪价的爬虫获取,以及各类养殖账单的增删改查等等。该项目适配了移动端界面,最终通过Hybrid混合式App开发技术打包成App,安装在移动端使用
Stars: ✭ 25 (-93.51%)
Mutual labels:  mybatis, spring-mvc
Spring Boot Demo
spring boot demo 是一个Spring Boot、Spring Cloud的项目示例,根据市场主流的后端技术,共集成了30+个demo,未来将持续更新。该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户密码设计)、actuator(服务监控)、cloud-config(配置中心)、cloud-gateway(服务网关)等模块
Stars: ✭ 323 (-16.1%)
Mutual labels:  mybatis, spring-mvc
SSMBlogv2
基于 Spring + Springmvc + Mybatis + Bootstrap + w3.css + ajax 的个人响应式博客
Stars: ✭ 26 (-93.25%)
Mutual labels:  mybatis, spring-mvc
Efo
EFO是一个基于SpringBoot和Vue构建的文件分享系统,包括文件的上传与下载,文件的权限管理,远程文件管理等功能。
Stars: ✭ 327 (-15.06%)
Mutual labels:  mybatis, spring-mvc
Yan
使用Maven构建,整合Dubbo+Zookeeper+SpringMVC+Spring+MyBatis+Redis支持分布式的高效率便捷开发框架
Stars: ✭ 293 (-23.9%)
Mutual labels:  mybatis, spring-mvc
Zheng
基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。
Stars: ✭ 16,163 (+4098.18%)
Mutual labels:  mybatis, activemq
Manong Ssm
基于SSM框架的Java电商项目
Stars: ✭ 306 (-20.52%)
Mutual labels:  mybatis, spring-mvc

Verwandlung Online Judge

Version: 0.2.0 (Released on August 30, 2018)

Build Status Build status Coverage Status Docker Automated build Language grade: Java Total alerts

Official Website | Tech Support | Change Log

Update: Verwandlung Online Judge now supports Docker. You can use Verwandlung Online Judge with ONLY 4 bash commands.

docker pull zjhzxhz/voj.web
docker pull zjhzxhz/voj.judger
docker run -d --name voj.web -p 8080:8080 zjhzxhz/voj.web
docker run -d --name voj.judger --link voj.web zjhzxhz/voj.judger

Tell me more about [email protected]


Introduction

It is a cross-platform online judge system based on Spring MVC Framework.

The application used following open-source projects:

The Origin of Verwandlung

In 2011, LinkedIn Inc. released a message queue named Kafka. It's implemented in Scala and open-sourced.

In 2012, Alibaba Inc. released a message queue named MetaQ, which is based on Kafka. It's implemented in Java.

MetaQ stands for Metamorphosis, which is a famous literature written by the author Franz Kafka.

As the message queue is one of the important components in the application, so I named the application Verwandlung, which is the German name of Metamorphosis.

Architecture

The application contains two components:

  • Web Application
  • Judger (Support both Windows and Linux)

The architecture can be described as the figure below.

Software-Architecture

As you see, Verwandling Online Judge supports multiple judgers. The judgers communicate with the web application through ActiveMQ.


Getting Started

System Requirements

Hardware Requirements

  • CPU: 2.0 GHz or faster 32-bit (x86) or 64-bit (x64) processor

For Web Application (including Database and Message Queue):

  • RAM: 2.0 GB RAM on Windows, 1.0 GB RAM on Linux.

For Judger:

  • RAM: 1.0 GB RAM on Windows, 512 MB RAM on Linux.

Software Requirements

For Web Application (including Database and Message Queue):

For Judger:

Installation

Docker Releases (Recommended)

Now you can easily use Verwandlung Online Judge with Docker.

See the installation instructions here.

Binary Releases

  • Web Application: 0.2.0
  • Judger (Windows, 64 Bit): 0.2.0
  • Judger (Linux, 64 Bit): 0.2.0

Source Releases

NOTE:

  • Maven 3+ and GCC 4.8+ with POSIX thread model is required.
  • Make sure mvn (Maven), g++ and make are added to the PATH.

After download source code from this repository, run following commands from a terminal:

For Web Application:

cd web
mvn package -DskipTests

If the build is successful, the terminal will display a message as following:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.168 s
[INFO] Finished at: 2015-11-26T13:20:09+08:00
[INFO] Final Memory: 24M/210M
[INFO] ------------------------------------------------------------------------

And you'll get a package named voj.web.war in the target folder.

For Judger:

Windows:

cd %JAVA_HOME%\include\win32
copy jawt_md.h  ..
copy jni_md.h  ..

cd judger
mvn package -DskipTests

Linux:

cd $JAVA_HOME/include/linux
cp jawt_md.h jni_md.h ..

cd SOURCE_CODE_PATH/judger
mvn package -DskipTests

If the build is successful, the terminal will display a message as following:

[INFO] Executing tasks

jni:
     [echo] Generating JNI headers
     [exec] mkdir -p target/cpp
     [exec] g++ -c -std=c++11 -Wall -fPIC -I ... -o target/cpp/Judger.Core.Runner.o
[INFO] Executed tasks
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.432 s
[INFO] Finished at: 2015-11-26T13:22:46+08:00
[INFO] Final Memory: 81M/513M
[INFO] ------------------------------------------------------------------------

And you'll get a package named voj.judger.jar in the target folder.

Configuration

Setup the ActiveMQ

To reduce the memory of ActiveMQ, you can edit activemq.xml in ACTIVEMQ_HOME\conf.

Please find following content in this file, and change it to proper values that suitable for your servers.

<systemUsage>
    <systemUsage>
        <memoryUsage>
            <!-- Change this value -->
            <memoryUsage limit="128 mb" />
        </memoryUsage>
        <storeUsage>
            <!-- Change this value -->
            <storeUsage limit="4 gb"/>
        </storeUsage>
        <tempUsage>
            <!-- Change this value -->
            <tempUsage limit="4 gb"/>
        </tempUsage>
    </systemUsage>
</systemUsage>

Setup the Web Application

Create a database in MySQL, import voj.sql.

Edit the values in /WEB-INF/classes/voj.properties of the file voj.web.war.

You can open it with archive manager software such as WinRAR.

After then, you can copy this file voj.web.war to TOMCAT_HOME/webapps.

IMPORTANT: For Windows users, please edit server.xml of your Tomcat configuration:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
    redirectPort="8443" useBodyEncodingForURI="true">
</Connector>

Setup the Judger

Edit the values in /voj.properties of the file voj.judger.jar.

You can run the judger using following command :

Windows:

javaw -jar voj.judger.jar

Linux:

sudo java -jar voj.judger.jar

Important:

If you are using Linux, please run following commands using root:

# Shutdown and Kill process is not allowed for non-root user
chmod 700 /sbin/init
chmod 700 /sbin/poweroff
chmod 700 /usr/bin/pkill

Contribution

We're glad that you want to improve this project.

  • We NEED TRANSLATORS for multi-language support(English and Chinese have supported).
  • You can report bugs here.
  • You can also create a pull request if you can fix the bug.
  • If you want to add features to the project, please tell us in the issues page before developing.

Thanks for your corporation.

License

This project is open sourced under GNU GPL v3.

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].