/Online-Judge

An Online Coding Compiler cum Judge. The code explanation and the UI is explained by me on the YouTube the link to which is attached herewith: https://youtu.be/JIBSh5-p6Xg?si=bX6lfmpQ-mT_wJHw

Primary LanguageJavaScript

Online Coding Judge System

Introduction

Welcome to the Online Coding Judge System! This platform is designed to evaluate programming skills in a robust and scalable manner. It caters to developers, students, and professionals preparing for coding interviews or competitions.

Features [As of what is planned]

  • User Authentication and Authorization

    • Sign up, login, and password management.
    • Role-based access control (users, administrators).
  • Problem Management

    • Create, edit, and categorize coding problems.
    • Support for multiple programming languages.
  • Code Submission and Evaluation

    • Real-time code editor with syntax highlighting.
    • Code submission and automatic evaluation.
    • Test case management (public and private test cases).
  • Leaderboard and Scoring

    • User rankings based on problem-solving performance.
    • Detailed scoring and feedback for each submission.
  • Contests and Challenges

    • Create and manage coding contests.
  • Discussion Forum

    • Community discussion for each problem.
  • User Profiles

    • Track user progress and achievements.
    • Display statistics.

System Architecture

  • Frontend:

    • Technology: React.js
    • Axios to connect to the API endpoints
  • Backend:

    • Technology: Node.js / Django / Flask
    • RESTful API for communication with the frontend.
    • Thunder Client to check for the API functioning
    • Authentication: JWT / OAuth2 - Google, Github
  • Code Execution Engine:

    • Containerization: Docker for isolated execution environments.
    • Language support: Python, Java, C++, JavaScript, etc.
  • Database:

    • NoSQL based MongoDB for user data, problem statements, and submissions.
  • Notification System:

    • Email and SMS notifications.
    • In-app notifications for submission status and contest updates.
  • Analytics and Reporting:

    • User activity tracking.
    • Performance reports and insights.

Future Enhancements

  • Additional language support and advanced problem types.
  • Enhanced analytics and machine learning integration for personalized feedback.
  • Security: Sandboxing to prevent malicious code execution.
  • Time-bound challenges with live leaderboards.
  • Moderation tools for administrators.

For any queries, please contact me at [ipranavprashant@gmail.com].