All Projects → saurass → codeplayer

saurass / codeplayer

Licence: MIT License
An online judge system for competitive programming platform, The website is hosted on http://codeplayer.co.in

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to codeplayer

cp-tool
cp-tool is an auto generator for solved problems at different online judges.
Stars: ✭ 24 (+100%)
Mutual labels:  competitive-programming, online-judge
psolving-paradigms
Common problems of dynamic programming methods and techniques, including prerequisites, for competitive programmers.
Stars: ✭ 34 (+183.33%)
Mutual labels:  competitive-programming, online-judge
Code
Macesuted's Code Repository.
Stars: ✭ 20 (+66.67%)
Mutual labels:  competitive-programming, online-judge
judge
A blazingly fast online judge/ autograder ⚖️ built with Python and the Django framework to test cases against your solution. Check out the sponsor links and help fund DomeCode.
Stars: ✭ 30 (+150%)
Mutual labels:  competitive-programming, online-judge
cats-main
Programming contest control system
Stars: ✭ 33 (+175%)
Mutual labels:  competitive-programming, online-judge
chatbot
🤖️ 基于 PyTorch 的任务型聊天机器人(支持私有部署和 docker 部署的 Chatbot)
Stars: ✭ 77 (+541.67%)
Mutual labels:  socketio
OI-Source
OI代码仓库、复习笔记、代码模板、本地Judger
Stars: ✭ 25 (+108.33%)
Mutual labels:  competitive-programming
rails-microservices-book
A guide to building distributed Ruby on Rails applications using Protocol Buffers, NATS and RabbitMQ
Stars: ✭ 23 (+91.67%)
Mutual labels:  rabbitmq
HackerRank-Solutions
This project include solutions of the problem from HackerRank which will be helpful for coding interview preparations. Subscribe for more updates 👇
Stars: ✭ 18 (+50%)
Mutual labels:  competitive-programming
rabbitmq-operator
RabbitMQ Kubernetes operator
Stars: ✭ 16 (+33.33%)
Mutual labels:  rabbitmq
amq-protocol
AMQP 0.9.1 protocol serialization and deserialization implementation for Ruby (2.0+)
Stars: ✭ 47 (+291.67%)
Mutual labels:  rabbitmq
Google-Assistant-Samsung-Smart-TV-Integration
Use Google Assistant as a remote for your Samsung Smart TV. There is no need for a Logitech Harmony device.
Stars: ✭ 26 (+116.67%)
Mutual labels:  rabbitmq
ansible-rabbitmq
Ansible role to install and configure RabbitMQ server.
Stars: ✭ 22 (+83.33%)
Mutual labels:  rabbitmq
C-plus-plus-Algorithms
Repo contains some of the most common Data Structure and Algorithm in cpp. It will be helpful in future application of Competitive Programming as well as various tech Interviews.
Stars: ✭ 19 (+58.33%)
Mutual labels:  competitive-programming
Competitive-Programming
Resources for Competitive Programming
Stars: ✭ 31 (+158.33%)
Mutual labels:  competitive-programming
aiorabbit
An AsyncIO RabbitMQ client for Python 3
Stars: ✭ 18 (+50%)
Mutual labels:  rabbitmq
ponos
An opinionated queue based worker server for node.
Stars: ✭ 85 (+608.33%)
Mutual labels:  rabbitmq
iris
Open Source Photos Platform Powered by PyTorch
Stars: ✭ 135 (+1025%)
Mutual labels:  rabbitmq
core
Microservice abstract class
Stars: ✭ 37 (+208.33%)
Mutual labels:  rabbitmq
docker-rabbitmq-ha-cluster
A docker stack to create, test and benchmark a rabbitmq cluster in high availability configuration. HAProxy, php workers, node failures, network partition, persistent messages.
Stars: ✭ 98 (+716.67%)
Mutual labels:  rabbitmq

CodePlayer

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

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.co.in

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