All Projects → vijos → Vj4

vijos / Vj4

Licence: agpl-3.0
The online judge service with millions of submissions, since 2005.

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Vj4

Notebook
🍎 笔记本
Stars: ✭ 381 (-11.4%)
Mutual labels:  mongodb
Spruce
A social networking platform made using Node.js and MongoDB
Stars: ✭ 399 (-7.21%)
Mutual labels:  mongodb
Run Aspnetcore Microservices
Microservices on .Net platforms which used Asp.Net Web API, Docker, RabbitMQ, MassTransit, Grpc, Ocelot API Gateway, MongoDB, Redis, PostgreSQL, SqlServer, Dapper, Entity Framework Core, CQRS and Clean Architecture implementation. Also includes Cross-Cutting concerns like Implementing Centralized Distributed Logging with Elasticsearch, Kibana and SeriLog, use the HealthChecks with Watchdog, Implement Retry and Circuit Breaker patterns with Polly and so on.. See Microservices Architecture and Step by Step Implementation on .NET Course w/ discount->
Stars: ✭ 406 (-5.58%)
Mutual labels:  mongodb
Sleepy.mongoose
[Archive] A REST interface for MongoDB - This Repository is NOT a supported MongoDB product
Stars: ✭ 386 (-10.23%)
Mutual labels:  mongodb
Adapt authoring
A server-based user interface for authoring eLearning courses using the Adapt framework.
Stars: ✭ 395 (-8.14%)
Mutual labels:  mongodb
Compass
The GUI for MongoDB.
Stars: ✭ 402 (-6.51%)
Mutual labels:  mongodb
Parse Server
API server module for Node/Express
Stars: ✭ 19,165 (+4356.98%)
Mutual labels:  mongodb
Octblog
Yet another blog system powered by Flask and MongoDB
Stars: ✭ 421 (-2.09%)
Mutual labels:  mongodb
Stackoverflow Clone
This project is a simplified a full stack clone of Stackoverflow.
Stars: ✭ 395 (-8.14%)
Mutual labels:  mongodb
Play Reactivemongo
🍃 ReactiveMongo plugin for Playframework
Stars: ✭ 411 (-4.42%)
Mutual labels:  mongodb
Egg Mongoose
Stars: ✭ 386 (-10.23%)
Mutual labels:  mongodb
Micronaut Microservices Poc
Very simplified insurance sales system made in a microservices architecture using Micronaut
Stars: ✭ 394 (-8.37%)
Mutual labels:  mongodb
Mquery
Expressive MongoDB query builder
Stars: ✭ 409 (-4.88%)
Mutual labels:  mongodb
Shell
Infrastructure Management Shell - Linux
Stars: ✭ 381 (-11.4%)
Mutual labels:  mongodb
Real Time Stock Market Prediction
In this repository, I have developed the entire server-side principal architecture for real-time stock market prediction with Machine Learning. I have used Tensorflow.js for constructing ml model architecture, and Kafka for real-time data streaming and pipelining.
Stars: ✭ 414 (-3.72%)
Mutual labels:  mongodb
Mongo
The MongoDB Database
Stars: ✭ 20,883 (+4756.51%)
Mutual labels:  mongodb
Spring Samples For All
spring、spring-boot、spring-cloud 常用整合用例
Stars: ✭ 401 (-6.74%)
Mutual labels:  mongodb
Mongo Express
Web-based MongoDB admin interface, written with Node.js and express
Stars: ✭ 4,403 (+923.95%)
Mutual labels:  mongodb
Mongolass
Elegant MongoDB driver for Node.js.
Stars: ✭ 421 (-2.09%)
Mutual labels:  mongodb
Tutorial
Java全栈知识架构体系总结
Stars: ✭ 407 (-5.35%)
Mutual labels:  mongodb

vj4

Next generation of Vijos, built with asyncio on Python 3.


Overview

  • Problem Categories and Tags
  • Solution Sharing & Voting
  • Online Coding and Testing (a.k.a. Scratchpad Mode)
  • Discussions & Comments
  • Trainings
  • Contests (ACM & OI)
  • Dynamic Ranking System
  • Real-time Status Updates
  • Online Judge as a Service (a.k.a. Domain): create your own OJ website without dev-ops!
  • Management UI
  • Sandboxed & Distributed Judging: see jd4, winjudge and windows-container
  • Secure (we are also CTF players)
  • Modern Architecture & User Interface

Usage

Pre-built docker package

There is pre-built docker package at vijos/vj4. This is maintained by @moesoha. Source code is available at https://github.com/vijos/vj4-docker.

Manual build

Prerequisites

Install requirements

In the root of the repository, where requirements.txt and package.json locates:

python3 -m pip install -r requirements.txt
yarn

You don't need root privilege to run yarn. It installs stuffs in the project directory. We recommend using Node 10.

You may want to use tuna if you are in China.

Some requirements may need Python.h. In Debian/Ubuntu you can use

apt install python3-dev

to resolve this.

IP Geo-Location

To enable IP geo-location translation, you need to follow the instruction on MaxMind GeoLite2 to obtain a GeoLite2 City Database, unzip it, and put it in the project root directory with the filename GeoLite2-City.mmdb.

You may also want to install libmaxminddb for higher performance.

Development

In the root of the repository:

yarn build   # or: yarn build:watch
python3 -m vj4.server --debug

Set --listen (default: http://127.0.0.1:8888) to listen on a different address.

As an intuitive example, you may want to add a super administrator and a problem to start:

alias pm="python3 -m"
pm vj4.model.user add -1 icebox 12345 [email protected]
pm vj4.model.user set_superadmin -1
pm vj4.model.adaptor.problem add system "Dummy Problem" "# It *works*" -1 1000   # you can also use web UI

You need to run these scripts on a regular basis to maintain correct RP and ranks for all users:

pm vj4.job.rp recalc_all
pm vj4.job.rank run_all

Watch and Restart

Frontend source codes can be recompiled automatically by running:

yarn build:watch

However you need to manually restart the server for server-side code to take effect.

Production

yarn build:production
python3 -m vj4.server --listen=unix:/var/run/vj4.sock
  • Set --listen (default: http://127.0.0.1:8888) to listen on a different address.
  • Set --prefork (default: 1) to specify the number of worker processes.
  • Set --ip-header (default: '') to use IP address in request headers.
  • Set --url-prefix (default: https://vijos.org) to set URL prefix.
  • Set --cdn-prefix (default: /) to set CDN prefix.
  • Set --smtp-host, --smtp-user, --smtp-password, and --mail-from to specify a SMTP server.
  • Set --db-host (default: localhost) and/or --db-name (default: test) to use a different database.

Better to use a reverse proxy like Nginx or h2o.

Judging

To enable vj4 to judge, at least one judge user and one judge daemon instance are needed.

  • Use following commands to create a judge user:
alias pm="python3 -m"
pm vj4.model.user add -2 judge 123456 [email protected]
pm vj4.model.user set_judge -2

Use jd4

Use HydroJudge

Notes

Have fun!

Maximum line width: 100

Indentation: 2 spaces

JavaScript Style Guide

No commercial use, except get permission from us.

References

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