This project is a microservices-based Online Judge system designed to manage coding problems, user submissions, and code evaluations at scale. The architecture promotes modularity, scalability, and ease of maintenance.
- 🌐 Live Project: View Deployed App
- 📁 GitHub Repository: GitHub - Dev Project
- 🎥 Demo Video: Loom
- Acts as a single entry point for all frontend requests.
- Routes API calls to corresponding backend services.
- Handles user registration, login
- Stores and serves coding problems and sample test cases.
- Accepts submissions and stores results.
- Sends submissions to the Evaluator Service.
- Receives results and updates the database.
- Executes code submissions in a secure sandbox environment.
- Returns execution results to the Submission Service.
- Continuously polls Submission Service for results.
- Displays verdict and output back to the frontend.
- Provides UI for users to interact with the system.
- Communicates with API Gateway.
- Frontend sends request to API Gateway.
- Gateway routes request to User, Problem, or Submission Service.
- Submission Service sends the code to Evaluator Service.
- Evaluator runs the code and returns result.
- Evaluator polls Submission Service and updates the UI.
- Backend: Node.js, Express
- Frontend: React / Next.js,Monaco
- Database: MongoDB
- Containerization: Docker
- Code Execution: Docker-based sandbox
