Skip to content

DeveHk/OJ-Project-MERN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖥️ Online Judge Platform

An online judge platform hosting coding problems and challenges. Users solve a series of coding problems. First he has to begin with registration for his accound, user can register as admin or user(member). During problem solving, they submit their solutions through the platform. Once submitted, these solutions are evaluated against hidden test cases by the platform. Based on the results of these tests, user solution submission is assigned verdict. The platform provides the infrastructure to manage and execute the DSA coding problems, ensuring fair and impartial evaluation.

📽️ Watch Demo

Project working: watch recording ▶️

🌟 Features

  • User Authentication and Role-Based Authorization: Secure login and role-based access.
  • User Dashboard: Personalized dashboard for participants.
  • Problem Creation and Management Service: Admins can create and manage problems.
  • Submission Service: Participants can submit their solutions.
  • Multiple Languages and Themes: Support for various coding languages and IDE themes.
  • Interactive Coding Workspace: Real-time coding environment.
  • Problem Filters: Search problems based on tags.
  • Validations: Ensuring the correctness of passwords and code.
  • Optimized Queries: Faster response times and reduced bandwidth consumption.

🛠️ Tech Stack

  • Core:
    • React
    • MongoDB
    • Node.js (Express)
  • Libraries:
    • ShadCN
    • TailwindCSS
    • react-hook-form
    • zod
    • zustand

🔄 Workflow

User:

  1. User logs in or registers.
  2. User navigates through problem lists, participates in contests, solves problems.
  3. User chooses a problem to solve.
  4. User submits code.
  5. Backend evaluates the code against test cases.
  6. Submissions are stored and can be accessed later.

Admin:

  1. Admin logs in or registers.
  2. Admin navigates through the dashboard.
  3. Admin can create and edit problems.
  4. Admin can change the status and test cases for the problems.
  5. Admin can host a contest and see results [Coming Soon].

🚀 Deployment

  • Backend: Containerized and deployed to AWS EC2. Link
  • Frontend: Deployed on Vercel. Link

🔧 Working On

  • Validating user email.
  • Features to host coding contests and ladders.
  • Enhancements to the user dashboard.

🌐 Future Scope

  • AI-Based RAG Model: Assist users with an AI-based model that embeds problems and user solutions. Using an LLM model, generate natural language responses to help users learn better and solve problems more efficiently.

🎨 Platform Visuals

Default Website (Light Theme)

Landing page
Figure 1: Landing page
Landing register
Figure 2: Problems Page
Landing page
Figure 3.1: Problems page
Landing register
Figure 3.2: Problems Tag Filter

Multi Theme Support Website (Dark Theme)

Landing page
Figure 1: About Page
Landing register
Figure 2: Problem page
Landing register
Figure 3.1: Login
Landing register
Figure 3.2: Register
Landing register
Figure 4: Tag Filter
Landing register
Figure 5: Problem all Submissions

Different Dashboards for multiple roles

User Dashboard
Landing page
Figure 1.1: User Profile
Landing register
Figure 1.2: User Submissions
Admin Dashboard
Landing register
Figure 2.1: Admin Problems
Landing register
Figure 2.2: Admin Create Problem
Landing register
Figure 2.3: Admin Edit Problem
Landing register
Figure 2.4: Admin Submissions of Problem

Submissions in multiple Languages

Landing page
Figure 1: C
Landing register
Figure 2: C++
Landing register
Figure 3: java
Landing register
Figure 4: Python

Supports multiple theme in code editor

Landing page
Figure 1: vs-dark
Landing register
Figure 2: cd-rose (self defined)
Landing register
Figure 3: hc-black
Landing register
Figure 4: cd-game (self defined)

Highly responsive UI

Landing page
Figure 1: Landing
Landing register
Figure 2: Side Nav
Landing register
Figure 3: Problems Page
Landing register
Figure 4.1: Admin dashboard
Landing register
igure 4.2: Admin dashboard
Landing register
igure 5: Problem Page

Releases

No releases published

Packages

No packages published