Skip to content

savirsingh/volcano-judge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Volcano Judge logo

Volcano Judge

A minimalistic & user-friendly competitive programming online judge.

Volcano Judge is an easy-to-use online judge and contest hosting system. You can see a live demo at https://volcanojudge.pythonanywhere.com.

Note that I built this judge as a learning project and it is not necessarily secure or efficient. However, it can be used by school clubs or small organizations looking for a simple solution to host fun programming competitions or events.

Features

  • Support for Python and C++:
    • Python is sandboxed and available by default for all problems.
    • C++ is not sandboxed/secure. It is available by default for contests and Volcano Judge can compile & run C++ programs, however, enabling C++ will make the system vulnerable to attacks (note that the C++ code will be isolated from the main directory when running, and safety measures have been enabled to reduce the risk of vulnerabilities).
    • Authors can add custom time limits to all problems, and Volcano Judge will kill processes after the limit is exceeded.
  • Easy-to-understand grading:
    • Simple & instantaneous feedback when users submit their code.
    • Enable custom checking & feedback on problems (e.g. a character limit on submissions for code golf style problems).
    • View all feedback codes at https://volcanojudge.pythonanywhere.com/about
  • Minimalistic Design:
    • Volcano Judge features a simple Bootstrap-powered design.
  • Email Verification:
    • Built-in email verification for all users, via the admin's Gmail business account.
  • Simple Comment System:
    • Users can comment on all problem objects and can vote on comments authored by other users.
  • Announcement/News System:
    • Staff can publish important updates, such as contest announcements. These will be visible on the user dashboard.
  • Support for HTML & Latex Problem Statements:
    • When writing problem statements, approved authors may use HTML and Latex for math, tables, images, etc.
  • Simple & Extensible Rating System:
  • Syntax Highlighting & Autocompletion for Both Python & C++:
    • Volcano Judge integrates the Ace Editor for syntax highlighting & autocompletion.
    • The code editor serves as a working browser-based IDE, with the problem statement visible to the user as they write their code.

Screenshots

Simple & Appealing Dashboard Interface

image

Informative Contest Pages

image

Problem Statement Visible While Writing Code, & Syntax Highlighting + Autocompletion

image

Enable Dark Mode for Late-Night Competitive Programming Sessions

image

User Rankings by Total Points

image

Interact With Others in the Comments

image

Rich Problem Statements With Support for Latex & HTML

image

Easy-to-use Admin Interface for Uploading Problems, Publishing Announcements, and Hosting Contests

image

Usage

Volcano Judge features support for grading solutions in Python 3 and C++. These languages should be installed on the machine being used as the server and the grader will make use of version installed.

Installation

After cloning this repository, run

python server.py

Now, visit http://127.0.0.1:5000. Your clone of Volcano Judge will be running there.

Contact

Direct any questions you have about Volcano Judge to [email protected].