Skip to content

jals413/CodeRoyale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeRoyale

CodeRoyale is an online judge platform where users can login, access a list of problems, solve them, and receive verdicts on their solutions. The platform is built with Next.js, ensuring a modern and efficient user experience.

Table of Contents

  1. Description
  2. Features
  3. How to Use
  4. Technologies Used
  5. Setup Locally
  6. Architecture Overview
  7. Database and ER Diagram
  8. How to Contribute
  9. Links
  10. Contributors
  11. License

Description

CodeRoyale is a web application designed to provide a seamless experience for users to solve programming problems and receive automated verdicts. It leverages a microservice architecture for scalability and robustness.

Features

  • Online Judge: Users can login and solve programming problems, receiving automated verdicts.
  • Microservice Architecture:
    • User Management Server: Built with Node.js, handles CRUD operations on users.
    • Code Execution Server: Built with Go, executes code in a sandbox environment and provides verdicts.
  • Scalability: Capable of handling up to 1000 concurrent users.
  • Upcoming Features: Contest feature will be available soon.
  • Next.js: A React framework for building fast and user-friendly static and dynamic web applications.
  • TypeScript: Ensures robust and error-free code.
  • Tailwind CSS: Provides utility-first CSS for rapid UI development.
  • Vercel: Deployment platform for modern web projects.

How to Use

To start the development server, run:

npm run dev

Open http://localhost:3000 in your browser to see the application.

Technologies Used

  • Next.js
  • Node.js
  • Go
  • TypeScript
  • Tailwind CSS
  • Vercel
  • MongoDB

Setup Locally

To set up the project locally, follow these steps:

  1. Clone the repository:
    git clone https://github.com/Low4ey/CodeRoyale.git
  2. Navigate to the project directory:
    cd CodeRoyale
  3. Install dependencies:
    npm install
  4. Start the development server:
    npm run dev

Architecture Overview

Architecture Diagram

Architecture Diagram

Components

  1. Frontend (Next.js)

    • User Interface
    • Problem Listings
    • Submission Forms
    • User Authentication
  2. Backend

    • User Management Service (Node.js)
      • Handles CRUD operations for users
    • Code Execution Service (Go)
      • Executes user code in a sandbox environment
      • Returns verdicts based on execution results
    • Database (MongoDB)
      • Stores user data, problems, submissions, test cases, etc.
  3. APIs

    • RESTful APIs for communication between services

Database and ER Diagram

ER Diagram

ER Diagram

The database consists of several interconnected schemas:

  • User Schema: Manages user information and authentication.
  • Problem Schema: Stores problems with details like title, content, tags, and difficulty.
  • Submission Schema: Tracks user submissions, including code and status.
  • TestCase Schema: Contains test cases for each problem.
  • ProblemSetter Schema: Manages problem setters' details and approvals.
  • Editorial Schema: Stores editorial content for problems.

How to Contribute

We welcome contributions! To contribute:

  1. Fork the Repository: Create a fork of this repository.
  2. Create a Branch: Create a new branch for your feature or bug fix.
  3. Make Changes: Implement your changes in the new branch.
  4. Create a Pull Request: Submit a pull request with a detailed description of your changes.

Issues

If you encounter any issues or have suggestions, please create an issue on the Issues page.

Pull Requests

We encourage you to submit pull requests for any improvements or fixes. Make sure to follow the project's coding guidelines and provide detailed descriptions of your changes.

Links

Contributors

License

This project is open-source and available under the MIT License.

About

An online coding Judge with 5+ languages supported

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published