Project Idea | Onsite Judge

Project Title: Onsite Judge
The idea is to provide a framework for students and instructor to host coding competition in college without any internet connection to encourage fair competition and avoid any misuse. This will also assist in reducing the technical glitches normally experienced in the contest.

Background:
The origination of an idea to make our own “Onsite Judge” can be attributed to a PC^2 error encountered by me in a specific coding competition hosted by our institution which ultimately impacted the rank list.
On further research has undertaken post that competition, it was found that PC^2 has failed repeatedly in past. This triggered a need to create a hassle-free platform for judging future coding competitions.

Objective:
The Objective of my work is to design a robust and efficient system to host coding competition in colleges without using any internet connection.



Introduction:

  • It is an onsite judge made on likes of SPOJ and Codechef, but without using any internet connection.
  • It will allow colleges with poor internet connection to host coding competition.
  • It is a web app running on college intranet connection which makes it cross-platform.
  • The only constraint is that it requires Linux to run the Judge, while submission can be made from any operating system.

The Judge currently accepts submission in following languages:

  • C
  • C++, C++14
  • Python 2, Python 3
  • Java, Java 8

Problem with the Present System:

    The present system has the following shortcomings:

  • It uses an Internet connection which sometimes makes coding competition unfair as it provides a window for students to cheat.
  • They also have several technical glitches and crashes very often, which spoils the spirit of programming.
  • Most of them don’t check for malicious codes which results in unexpected system behavior.
  • The various online systems don’t provide any platform for colleges to conduct their private coding competition for internal marking.
  • The Onsite Judge tries to overcome all these problems.

Conceptual framework:

The Onsite Judge is developed on Django Framework and uses multiprocessing to provide asynchronous submission queue.

Features:

  1. Currently, the judge allows the user to compile and test code in different languages.
  2. Submit questions in different languages and return verdict in form of AC, WA, TLE, Runtime error.
  3. Create contest, Delete contest, View Rank list.
  4. Login, Register, view submission and editorial after contest.
  5. Coordinator can upload upto 10 testcases for a particular question in contest.
  6. Added Bug-checker to check for malicious code/virus while submitting questions and uploading test cases .
  7. Provides three categories- User, Coordinator, Admin.

    • User-can view contests, submit question on contest, compile and test, view ranklist.
    • Coordinator- can add problem for particular contest with testcase and solution.
    • Admin – can create, delete contest, user account and questions.

Diagrams:



Tools Used: Used Python Full Stack to make judge.

Application:

It is designed to meet the requirements specific to contests hosted at Jaypee Institute of Information Technology, Noida but most of its components can be easily changed to meet the requirement of any other college.

This will also provide a platform for better evaluation of coding questions in internal examinations as the onsite judge will make the coding competition accessible to the students belonging to our institute only.

Github: https://github.com/chunky2808/Karmo-Onsite-Judge
Read research paper for overcoming the shortcoming of PC^2.

Note: This project idea is contributed by Paras Jain (Jaypee Institute of Information Technology, Noida) for ProGeek Cup 2.0- A project competition by GeeksforGeeks.



My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.