Skip to content

The AlgoArena Online Judge is a professional platform for developers, offering prompt code feedback, meticulous test case evaluation, and efficient error highlighting. With tools for tracking execution time and memory usage, it's ideal for honing coding skills.

Notifications You must be signed in to change notification settings

Pulkit1822/Algo-Arena

Repository files navigation

Algo Arena

Project Overview

Algo Arena is a comprehensive platform for competitive programming and algorithm development. It provides a user-friendly interface for users to solve problems based on Data Structures and Algorithms (DSA). The platform includes a frontend for problem listings, problem details, code submission, and result display, as well as an online judge system that evaluates submitted code against test cases and provides instant feedback on correctness.

Technologies Used

  • Frontend:

    • HTML: For structuring the web pages.
    • CSS: For styling the web pages.
    • JavaScript: For adding interactivity to the web pages.
    • Tailwind CSS: For utility-first CSS framework to style the application.
    • Vite: For fast and optimized development build.
  • Backend:

    • Python: The primary programming language used for the backend.
    • Django: A high-level Python web framework used to build the online judge system.
    • SQLite: A lightweight database used for storing user submissions and problem data.
    • Bootstrap: A CSS framework used for styling the web pages.
    • Monaco Editor: A code editor that provides a rich coding experience for users.

Key Features

  • Code Submission and Execution: Users can submit their code through a web interface and execute it on the platform.
  • Test Case Evaluation: The platform evaluates the submitted code against predefined test cases, providing instant feedback on its correctness.
  • Custom Input Support: Users can input custom test cases to further test their solutions.
  • Execution Time Tracking: Utilizes Django's template language to display execution time alongside the output.
  • Memory Usage Monitoring: Tracks memory usage using the tracemalloc module to help users optimize their code.
  • Error Suggestions: Provides suggestions for fixing errors in the code by highlighting the particular section where the mistake is located.
  • User Experience Enhancement: Utilizes Bootstrap CSS and jQuery to improve the appearance and functionality of the platform's HTML template.
  • Result Display: Upon execution, users are presented with a screen indicating whether their code passed all test cases or not.
  • Monaco Editor: Implemented the Monaco editor for better Python language readability and an enhanced code editing experience.
  • Dark Mode: Added a dark mode facility for reducing eye strain and improving usability in low-light environments.
  • Responsive UI: Enhanced the UI to be more responsive, providing a better experience on various devices.

Setup and Run Locally

To set up and run the entire project locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/Pulkit1822/Algo-Arena.git
    cd Algo-Arena
  2. Frontend Setup:

    cd Frontend
    npm install
    npm start
  3. Backend Setup:

    cd ../Online\ Judge/OnlineCompiler
    pip install -r requirements.txt
    python manage.py migrate
    python manage.py runserver
  4. Open the application in your browser:

    http://localhost:3000 (Frontend)
    http://localhost:8000 (Backend)

Contribution Guidelines

We welcome contributions to the Algo Arena project. To contribute, follow these steps:

  1. Fork the repository: Click on the "Fork" button at the top right corner of the repository page.

  2. Clone your forked repository:

    git clone https://github.com/your-username/Algo-Arena.git
    cd Algo-Arena
  3. Create a new branch:

    git checkout -b feature-branch
  4. Make your changes: Implement your changes and commit them with a meaningful commit message.

  5. Push your changes:

    git push origin feature-branch
  6. Create a pull request: Go to the original repository and create a pull request from your forked repository.

Thank you for contributing to Algo Arena!


💡 Explore Sponsorship Options

To support this project, explore sponsorship options available for this repository, as every contribution counts and your support will greatly benefit its development 😊


Results 📝

Here are my scores: Result

Here are the updated sections with the new changes and features added:


Workflow Screenshots 📸

Workflow Workflow Workflow Workflow Workflow Workflow Workflow Workflow Workflow

Project Presentation 📊

For a more in-depth overview of the project, check out the presentation created specifically for demonstrating this project at my college. Click here to view the presentation ↗️.

Please note that the major change #2 has been implemented in October 2024, so it has not been included in the presentation.

Contribution 🫱🏻‍🫲🏼👥

If you have a better solution or want to suggest improvements, feel free to open an issue or submit a pull request. Contributions are always welcome!

Team Members 👥

  • Anant Krishna
  • Pulkit Kumar Mathur
  • Sandip
  • Tanya Barsainya

Feedback 📝

If you have any feedback, suggestions, or encounter any issues while using the platform, please don't hesitate to open an issue on GitHub. Your input is invaluable and helps us improve the platform for everyone.


portfolio    Linkedin Logo    Gmail logo    Instagram Logo    Pinterest Logo    Twitter Logo   

Happy learning and coding!


If you find this repository useful, don't forget to star it! ⭐️

Written by Pulkit

About

The AlgoArena Online Judge is a professional platform for developers, offering prompt code feedback, meticulous test case evaluation, and efficient error highlighting. With tools for tracking execution time and memory usage, it's ideal for honing coding skills.

Topics

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages