Giter Club home page Giter Club logo

poj's Introduction

poj

POJ is an online judge. I couldn't think of a better name.

It is written in Python3 and Django. It uses Docker and Celery for submission evaluation. Docker makes sure each submission is run in a seperate container, while Celery makes it all asynchronous. The message broker we're using for Celery here is redis.

The front-end uses Semantic UI.

Any pull requests would be welcome!

Setup

Clone the repository

git clone https://github.com/paramsingh/poj.git

cd into the cloned directory and setup a new virtualenv there

cd poj/
virtualenv .

Activate the newly created virtualenv and install all the required dependencies in it using pip

source bin/activate
pip install -r requirements.txt

Install docker for your distribution and create an image named 'poj' using the dockerfile in 'poj/docker'

cd docker
docker build -t poj .

Create a new database.

python3 manage.py migrate

Create an admin user

python3 manage.py createsuperuser

Run the development server, the redis server, the celery worker and scheduler, each in a different terminal.

python3 manage.py runserver
redis-server
celery -A poj worker -l info
celery -A poj beat -l info

The site should be accessible at localhost:8000/judge.

poj's People

Contributors

ferbncode avatar paramsingh 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

poj's Issues

Runtime Error

  File "/Users/narendraomprakash/Downloads/poj/venv/lib/python3.8/site-packages/django/contrib/auth/models.py", line 4, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "/Users/narendraomprakash/Downloads/poj/venv/lib/python3.8/site-packages/django/contrib/auth/base_user.py", line 49, in <module>
    class AbstractBaseUser(models.Model):
RuntimeError: __class__ not set defining 'AbstractBaseUser' as <class 'django.contrib.auth.base_user.AbstractBaseUser'>. Was __classcell__ propagated to type.__new__?

Why use Docker?

I am curious as to why you have used Docker. As far I can see, you are using to set up up a environment with dependencies 'gcc' and 'g++' and since these are already trivial task on linux machine, what does docker exactly achieve?

Another query that I have is related to functioning of Docker. Since it uses Linux Kernel features, does it work on different Linux OS like Debian and Fedora in the same way considering that Fedora uses yum instead of apt?

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.