GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - saurass/codeplayer: An online judge system for competitive programming platform, The website is hosted on http://codeplayer.ninja

BranchesTags
Open more actions menu

Latest commit

 

History

17 Commits
17 Commits

Folders and files

NameName
Last commit message
Last commit date
codeplayer-compiler-microservice
codeplayer-compiler-microservice
 
 
codeplayer-frontend
codeplayer-frontend
 
 
codeplayer-server
codeplayer-server
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
docker-stack.yml
docker-stack.yml
 
 
frontend.env
frontend.env
 
 
server.env
server.env
 
 
worker.env
worker.env
 
 

Repository files navigation

CodePlayer

An online judge system for competitive programming platform, The website is hosted on http://codeplayer.ninja

Installation

The installation has been well tested to work on Ubuntu 16.04. Issues have been reported with installation on windows.

  • Install latest version of docker in your system.
  • Please pull two images stepik/epicbox-gcc:6.3.0 and python:3.6.5-alpine using docker pull <image_name>
  • Clone this project; actually you only require the docker-stack.yml file and the three *.env files : )
  • Change the env variables in worker.env, frontend.env and server.env as per your required variables. Note the frontend service will start on port 80 only due to image.
  • Run the command in terminal docker swarm init to initialize a docker swarm.
  • Execute docker stack deploy -c docker-stack.yml cp and as easy as that.
  • All the four services will be up and running in a few minutes (depending upon your internet connectivity).
  • You can check for running service by command docker service ls
  • Any of these four running services can easily be scaled by writing docker service scale cp_<serive_name>=<number_of_replicas_required>

Features

  • Micro-service based architecture makes it super simple to scale. Docker images can be found at https://hub.docker.com/saurass
  • Untrusted code is run in one time use isolated docker container based sandboxes, which enhances security of the website.
  • Socket IO for real time status update of our submitted code.
  • Use of docker swarm for orchestration. Thus making clustering of resources and scaling of services super simple.

Services

  • The app has mainly four services running independently which can be scaled individually as per requirement.
    • Frontend - The frontend is made using ReactJS and uses Redis Client to connect with socket IO server.
    • Backend - Backed or API server is based on NodeJS. We are using MongoDB for database.
    • Compiler- Microservice - This microservice is responsible for compilation, execution and evaluation of our code. This is written in Python3 and uses docker socket API to interact with docker container and execute the code in isolated docker containers.
    • Redis server - This server is responsible to maintain submission queue and is used as adapter for socket IO server.

WorkFlow

  • The code is submitted and server pushes the corresponding submission data in Redis Queue.
  • The compiler microservice which is also connected on socket IO server, starts evaluation of code and gives real time update on status of evaluation.
  • The status is notified to client as well as the server in real time.

Contribution

The repository is open to contributions, feel free to raise issues and make contributions. If you like what we do, Please do buy us a coffee, the setup can be found at home page of http://codeplayer.ninja

About

An online judge system for competitive programming platform, The website is hosted on http://codeplayer.ninja

codeplayer.ninja

Topics

competitive-programmingdockerdockerswarmexpressmongodbnodejsonline-judgerabbitmqreactjsredissocketio

Resources

Readme
MIT license

Code of conduct

Code of conduct
Activity

Stars

14 stars

Watchers

1 watching

Forks

3 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.