SlideShare a Scribd company logo
1 of 13
Open Judge
An open-source, free and easy-to-use
Programming Contest Controller
Contents
●
a) Initial Statements
– i. Overview
– ii. Motivation
– iv. Objective
●
b) Literature Survey
– i. Existing systems studying and drawback analyzing.
●
c) Analysis and Design
●
d)Implementation and Testing
●
e) Conclusion
Overview
This project “Open Judge” is a replacement for the software PC
2 (aka PCC or
Programming Contest Controller) developed by California State
University of Science, in 1989.
PC 2 (aka PCC or Programming Contest Controller) is developed first in 1989 in
DOS for
windows operating system. Over the last two decades, it had been updated, altered
with newer
features to cope up with expanding contest requirements. The last update occurred
in 2008,
which was in JAVA and required JRE (Java Runtime Environment) set up in the
operating system
to run it. Also, it is only available in Microsoft Windows operating system. It has many
more
drawbacks which will be mentioned later in this document.
Motivation
●
Programming Contest have been very popular over the world
through the last two decades
●
Number of contestants are rising overwhelmingly each year
●
Every university of the world which practices science, are now
participating.
●
Schools and high schools are now also concentrating on
programming contests for the junior students so that the early
introduction to programming can lead them to strong capability in
programming when they're going to represent their institutes in front
of the whole world.
●
These contests require a working 'system' that can manage the
contest timing, receive the submissions from the contestants,
compile the submissions and run them with judge inputs to get the
verdicts. It also needs to have a good ranking system which will
Objective
The purpose of Open Judge is to make it easy to arrange a programming
contest
with the smallest possible effort for everyone. It allows every institute to
arrange a programming contest in shortest notice imaginable.
So the main objectives are:
a) Using the web platform to build a contest controller with the help of
existing
compilers.
b) Allowing judges to set up their own problems and secret input/outputs.
c) Making it easy for the contestants to view the problems and submit.
d) Allowing it to be set up once and then used for unlimited times.
e) Allowing everyone to download and use it by making it open source and
free.
Literature Survey
Existing Contest Controllers
Currently, various contest controllers are available to use and some are also very
highly efficient and easy to use. We can list them as following:
a) PC 2 (aka PCC or Programming Contest Controller by California State University
of Science.
b) CodeMarshal, developed by Mahmudur Rahman, Muktosoft LTD.
c) LightOJ, developed by Jane Alam Jan, University of Dhaka.
d) Codeforces.
e) Codechef.
f) Topcoder.
g) UVA
h) ACM.hust.edu.cn
Analysis and Design
ContestContest
ProblemProblemUserUser
JudgeJudge
ClarificationClarification
RankRank
Belongs toBelongs to
SubmitsSubmits
Requests forRequests for
SubmissionSubmission
ForFor
HasHas
Receives and reply toReceives and reply to
Belongs toBelongs to
Belongs toBelongs to
E-R Diagram
Implementation
<?php
$time = 1500; // In Milliseconds;
$time /= 1000; // Converting to
Seconds;
$tle = 'timeout '.$time.'s ';
;lkjlkjlkjasdfasdf
$compiler = 'g++'; // For C++
source code
$path = '/home/user';
$file = 'test.cpp';
$file_name = file_name($file);
$output = 'out.txt';
$input = 'in.txt';
$error = 'error.txt';
$fault = 'fault.txt';
$return_val = '';
$gener = '';
$command = "$compiler $path/$file
-o $path/$file_name 2> $error";
exec($command); // compiling
$command = "$path/$file_name <
$input > $output 2> $fault";
$command = $tle.$command; // Adding
Time Limit to the Command
$time_start = microtime(true);
exec($command, $gener,
$return_val); //running;
$time_end = microtime(true);
$total_time = $time_end -
$time_start;
echo '<br />Time: '.
$total_time.'<br />';
echo '<br />Return Value: '.
$return_val.'<br />';
function file_name($file) {
$len = strlen($file);
$len -= 4;
$file_name = '';
for($i=0; $i<$len; ++$i) {
$file_name .= $file[$i];
}
return $file_name;
}
?>
Testing
Testing can always be performed, not only after completing the
project but also in the middle of the project. This project has
been continuously tested in every new element or plugin
addition or removal.
Several types of test has been performed over the developed
system, among them the most important ones are:
a) Unit Testing
b) Stress Testing
c) Malfunction Testing
d) Security Testing
Comparison
Future Works
●
Bulk Contestant Management
●
Bulk Judge Management
●
Special Judge Feature
●
Virtual Contest Service
●
Source Code Print Management
●
Others
Thank You

More Related Content

What's hot

Александр Куцан: "Static Code Analysis in C++"
Александр Куцан: "Static Code Analysis in C++" Александр Куцан: "Static Code Analysis in C++"
Александр Куцан: "Static Code Analysis in C++" Anna Shymchenko
 
STAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash ReproductionSTAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash ReproductionSung Kim
 
Using cyclomatic complexity to measure code complexity
Using cyclomatic complexity to measure code complexityUsing cyclomatic complexity to measure code complexity
Using cyclomatic complexity to measure code complexityJane Chung
 
IP Lab Manual for Kerala University 3 Year UG Programme
IP Lab Manual for Kerala University 3 Year UG ProgrammeIP Lab Manual for Kerala University 3 Year UG Programme
IP Lab Manual for Kerala University 3 Year UG ProgrammeSAFAD ISMAIL
 
Dissertation Defense
Dissertation DefenseDissertation Defense
Dissertation DefenseSung Kim
 
Owen_Resume May2016
Owen_Resume May2016Owen_Resume May2016
Owen_Resume May2016Owen C
 

What's hot (7)

Александр Куцан: "Static Code Analysis in C++"
Александр Куцан: "Static Code Analysis in C++" Александр Куцан: "Static Code Analysis in C++"
Александр Куцан: "Static Code Analysis in C++"
 
STAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash ReproductionSTAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash Reproduction
 
Using cyclomatic complexity to measure code complexity
Using cyclomatic complexity to measure code complexityUsing cyclomatic complexity to measure code complexity
Using cyclomatic complexity to measure code complexity
 
IP Lab Manual for Kerala University 3 Year UG Programme
IP Lab Manual for Kerala University 3 Year UG ProgrammeIP Lab Manual for Kerala University 3 Year UG Programme
IP Lab Manual for Kerala University 3 Year UG Programme
 
Dissertation Defense
Dissertation DefenseDissertation Defense
Dissertation Defense
 
Owen_Resume May2016
Owen_Resume May2016Owen_Resume May2016
Owen_Resume May2016
 
Spoorthy_Resume
Spoorthy_ResumeSpoorthy_Resume
Spoorthy_Resume
 

Similar to Open Judge - An open-source, free and easy-to-use Programming Contest Controller

cbse 12 computer science IP
cbse 12 computer science IPcbse 12 computer science IP
cbse 12 computer science IPD. j Vicky
 
IRJET - Code Compiler Shell
IRJET -  	  Code Compiler ShellIRJET -  	  Code Compiler Shell
IRJET - Code Compiler ShellIRJET Journal
 
cbse 12 computer science investigatory project
cbse 12 computer science investigatory project  cbse 12 computer science investigatory project
cbse 12 computer science investigatory project D. j Vicky
 
cbse 12 computer science investigatory project
cbse 12 computer science investigatory project  cbse 12 computer science investigatory project
cbse 12 computer science investigatory project D. j Vicky
 
Neha Arora_Resume
Neha Arora_ResumeNeha Arora_Resume
Neha Arora_ResumeNeha Arora
 
Good Security Starts with Software Assurance - Software Assurance Market Plac...
Good Security Starts with Software Assurance - Software Assurance Market Plac...Good Security Starts with Software Assurance - Software Assurance Market Plac...
Good Security Starts with Software Assurance - Software Assurance Market Plac...Phil Agcaoili
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Updatejamieayre
 
James e owen resume detailed jan 2-16
James e owen resume detailed jan 2-16James e owen resume detailed jan 2-16
James e owen resume detailed jan 2-16James Owen
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementationthe_wumberlog
 
Estimation techniques and risk management
Estimation techniques and risk managementEstimation techniques and risk management
Estimation techniques and risk managementPurushottam Basnet
 
Deploying and Monitoring Heterogeneous Machine Learning Applications with Cli...
Deploying and Monitoring Heterogeneous Machine Learning Applications with Cli...Deploying and Monitoring Heterogeneous Machine Learning Applications with Cli...
Deploying and Monitoring Heterogeneous Machine Learning Applications with Cli...Databricks
 
CIS 512 discussion post responses.CPUs and Programming Pleas.docx
CIS 512 discussion post responses.CPUs and Programming Pleas.docxCIS 512 discussion post responses.CPUs and Programming Pleas.docx
CIS 512 discussion post responses.CPUs and Programming Pleas.docxmccormicknadine86
 
Parallel Computing - Lec 6
Parallel Computing - Lec 6Parallel Computing - Lec 6
Parallel Computing - Lec 6Shah Zaib
 
Online examination documentation
Online examination documentationOnline examination documentation
Online examination documentationWakimul Alam
 

Similar to Open Judge - An open-source, free and easy-to-use Programming Contest Controller (20)

cbse 12 computer science IP
cbse 12 computer science IPcbse 12 computer science IP
cbse 12 computer science IP
 
IRJET - Code Compiler Shell
IRJET -  	  Code Compiler ShellIRJET -  	  Code Compiler Shell
IRJET - Code Compiler Shell
 
Resume
ResumeResume
Resume
 
cbse 12 computer science investigatory project
cbse 12 computer science investigatory project  cbse 12 computer science investigatory project
cbse 12 computer science investigatory project
 
cbse 12 computer science investigatory project
cbse 12 computer science investigatory project  cbse 12 computer science investigatory project
cbse 12 computer science investigatory project
 
vyshnavi
vyshnavivyshnavi
vyshnavi
 
ShobhaResume
ShobhaResumeShobhaResume
ShobhaResume
 
Neha Arora_Resume
Neha Arora_ResumeNeha Arora_Resume
Neha Arora_Resume
 
Good Security Starts with Software Assurance - Software Assurance Market Plac...
Good Security Starts with Software Assurance - Software Assurance Market Plac...Good Security Starts with Software Assurance - Software Assurance Market Plac...
Good Security Starts with Software Assurance - Software Assurance Market Plac...
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
 
Sudhakar resume_latest
Sudhakar  resume_latest Sudhakar  resume_latest
Sudhakar resume_latest
 
James e owen resume detailed jan 2-16
James e owen resume detailed jan 2-16James e owen resume detailed jan 2-16
James e owen resume detailed jan 2-16
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
 
resume
resumeresume
resume
 
Estimation techniques and risk management
Estimation techniques and risk managementEstimation techniques and risk management
Estimation techniques and risk management
 
All experiment of java
All experiment of javaAll experiment of java
All experiment of java
 
Deploying and Monitoring Heterogeneous Machine Learning Applications with Cli...
Deploying and Monitoring Heterogeneous Machine Learning Applications with Cli...Deploying and Monitoring Heterogeneous Machine Learning Applications with Cli...
Deploying and Monitoring Heterogeneous Machine Learning Applications with Cli...
 
CIS 512 discussion post responses.CPUs and Programming Pleas.docx
CIS 512 discussion post responses.CPUs and Programming Pleas.docxCIS 512 discussion post responses.CPUs and Programming Pleas.docx
CIS 512 discussion post responses.CPUs and Programming Pleas.docx
 
Parallel Computing - Lec 6
Parallel Computing - Lec 6Parallel Computing - Lec 6
Parallel Computing - Lec 6
 
Online examination documentation
Online examination documentationOnline examination documentation
Online examination documentation
 

Recently uploaded

What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 

Recently uploaded (20)

What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 

Open Judge - An open-source, free and easy-to-use Programming Contest Controller

  • 1. Open Judge An open-source, free and easy-to-use Programming Contest Controller
  • 2. Contents ● a) Initial Statements – i. Overview – ii. Motivation – iv. Objective ● b) Literature Survey – i. Existing systems studying and drawback analyzing. ● c) Analysis and Design ● d)Implementation and Testing ● e) Conclusion
  • 3. Overview This project “Open Judge” is a replacement for the software PC 2 (aka PCC or Programming Contest Controller) developed by California State University of Science, in 1989. PC 2 (aka PCC or Programming Contest Controller) is developed first in 1989 in DOS for windows operating system. Over the last two decades, it had been updated, altered with newer features to cope up with expanding contest requirements. The last update occurred in 2008, which was in JAVA and required JRE (Java Runtime Environment) set up in the operating system to run it. Also, it is only available in Microsoft Windows operating system. It has many more drawbacks which will be mentioned later in this document.
  • 4. Motivation ● Programming Contest have been very popular over the world through the last two decades ● Number of contestants are rising overwhelmingly each year ● Every university of the world which practices science, are now participating. ● Schools and high schools are now also concentrating on programming contests for the junior students so that the early introduction to programming can lead them to strong capability in programming when they're going to represent their institutes in front of the whole world. ● These contests require a working 'system' that can manage the contest timing, receive the submissions from the contestants, compile the submissions and run them with judge inputs to get the verdicts. It also needs to have a good ranking system which will
  • 5. Objective The purpose of Open Judge is to make it easy to arrange a programming contest with the smallest possible effort for everyone. It allows every institute to arrange a programming contest in shortest notice imaginable. So the main objectives are: a) Using the web platform to build a contest controller with the help of existing compilers. b) Allowing judges to set up their own problems and secret input/outputs. c) Making it easy for the contestants to view the problems and submit. d) Allowing it to be set up once and then used for unlimited times. e) Allowing everyone to download and use it by making it open source and free.
  • 6. Literature Survey Existing Contest Controllers Currently, various contest controllers are available to use and some are also very highly efficient and easy to use. We can list them as following: a) PC 2 (aka PCC or Programming Contest Controller by California State University of Science. b) CodeMarshal, developed by Mahmudur Rahman, Muktosoft LTD. c) LightOJ, developed by Jane Alam Jan, University of Dhaka. d) Codeforces. e) Codechef. f) Topcoder. g) UVA h) ACM.hust.edu.cn
  • 7. Analysis and Design ContestContest ProblemProblemUserUser JudgeJudge ClarificationClarification RankRank Belongs toBelongs to SubmitsSubmits Requests forRequests for SubmissionSubmission ForFor HasHas Receives and reply toReceives and reply to Belongs toBelongs to Belongs toBelongs to
  • 9. Implementation <?php $time = 1500; // In Milliseconds; $time /= 1000; // Converting to Seconds; $tle = 'timeout '.$time.'s '; ;lkjlkjlkjasdfasdf $compiler = 'g++'; // For C++ source code $path = '/home/user'; $file = 'test.cpp'; $file_name = file_name($file); $output = 'out.txt'; $input = 'in.txt'; $error = 'error.txt'; $fault = 'fault.txt'; $return_val = ''; $gener = ''; $command = "$compiler $path/$file -o $path/$file_name 2> $error"; exec($command); // compiling $command = "$path/$file_name < $input > $output 2> $fault"; $command = $tle.$command; // Adding Time Limit to the Command $time_start = microtime(true); exec($command, $gener, $return_val); //running; $time_end = microtime(true); $total_time = $time_end - $time_start; echo '<br />Time: '. $total_time.'<br />'; echo '<br />Return Value: '. $return_val.'<br />'; function file_name($file) { $len = strlen($file); $len -= 4; $file_name = ''; for($i=0; $i<$len; ++$i) { $file_name .= $file[$i]; } return $file_name; } ?>
  • 10. Testing Testing can always be performed, not only after completing the project but also in the middle of the project. This project has been continuously tested in every new element or plugin addition or removal. Several types of test has been performed over the developed system, among them the most important ones are: a) Unit Testing b) Stress Testing c) Malfunction Testing d) Security Testing
  • 12. Future Works ● Bulk Contestant Management ● Bulk Judge Management ● Special Judge Feature ● Virtual Contest Service ● Source Code Print Management ● Others