The project "Online Judge" is a comprehensive platform aimed at combating the limited awareness and participation in competitive programming among our college community. This project was conceived with the goal of fostering motivation among students to improve and establish a competitive programming culture that is currently lacking in our college.
- User Registration and Authentication:
- The platform supports authentication mechanisms to verify user credentials and ensure secure access.
- Modern and Intuitive Design:
- The UI of Online Judge GNDEC boasts a modern and visually appealing design.
- The overall layout and styling are carefully crafted to provide an intuitive and seamless user experience.
* Dark-Light mode for IDE.
- Problem Submission:
- Users can submit their code solutions for different programming problems on our IDE.
- The platform supports multiple programming languages: C, C++, Java & Python.
- Users can provide input for their code and receive output results.
- Automated Test Case Checking:
- The platform has an automated test case checking system to evaluate the correctness of code submissions.
- Test cases are provided for each problem, and the platform compares the output generated by the submitted code against the expected output.
- The system provides feedback to users on the success or failure of their code execution.
- Contest Participation:
- Users can participate in coding contests organized on the platform.
- The platform tracks the progress and scores of participants during the contest.
- Contest standings and rankings are updated in real-time.
- Code Evaluation and Compilation:
- The platform has a code evaluation and compilation system to execute submitted code. The system compiles the code using the selected programming language and checks for syntax errors.
- The platform provides compile-time error messages to users for code corrections.
- Leaderboard and Ranking:
- The platform maintains a leaderboard and ranking system to display the performance of users.
- Users can view their rankings based on contest participation, problem solving, and overall performance in each Contest.
(This Guide is only tested on MacOS/Linux)
This guide will walk you through the installation process for the OnlineJudge_GNDEC project. Please make sure you have the following prerequisites installed on your system:
- HTML-CSS
- JavaScript, NodeJS
- MySQL
- C/C++ Compiler (G++)
- Java Development Kit (JDK)
- Python (version 3.6 or higher)
- Node.js (version 14 or higher)
- Open a terminal on your system/IDE.
- Change to the directory where you want to clone the project.
- Run the following command to clone the repository:
git clone https://github.com/anorangefalcon/OnlineJudge_GNDEC.git - Change to the project directory:
cd OnlineJudge_GNDEC- Install the Node.js dependencies by running the following command:
npm install- Ensure that MySQL is installed and running on your system.
- Create a new MySQL database for the project. You can use the following SQL commands:
-- Create the onlinejudge database
CREATE DATABASE onlinejudge;
-- Use the onlinejudge database
USE onlinejudge;
-- Create the demousers table
CREATE TABLE demousers (
email VARCHAR(255) PRIMARY KEY,
password VARCHAR(255)
);
-- Create contest1 table
CREATE TABLE contest1 (
email VARCHAR(255) PRIMARY KEY,
ques1 INT DEFAULT 0,
ques2 INT DEFAULT 0,
ques3 INT DEFAULT 0,
ques4 INT DEFAULT 0,
ques5 INT DEFAULT 0,
ques6 INT DEFAULT 0,
FOREIGN KEY (email) REFERENCES demousers(email)
);- Open the server/app.js file and update MySQL connection with your MySQL database credentials.
- Ensure that suitable compilers/interpreters are installed on your system for C, C++, Python and Java.
- G++ recommended for C & C++.
- Start the application by running the following command:
npm start- Open a web browser and navigate to http://localhost:3000 to access the OnlineJudge_GNDEC application.
That's it! You have successfully installed and set up the OnlineJudge_GNDEC project. You can now start using it for online judging.
If you would like to contribute to this project, please follow these guidelines:
- Fork the repository on GitHub.
- Clone your forked repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them.
- Push your changes to your forked repository.
- Submit a pull request detailing your changes.