https://github.com/rohit1kumar/judge-server
Judge Server API - An Online Code Compiler with Secure Code Execution using Docker & RabbitMQ
https://github.com/rohit1kumar/judge-server
judge-server judge-worker online-code-compiler
Last synced: 9 months ago
JSON representation
Judge Server API - An Online Code Compiler with Secure Code Execution using Docker & RabbitMQ
- Host: GitHub
- URL: https://github.com/rohit1kumar/judge-server
- Owner: rohit1kumar
- Created: 2023-05-24T18:23:55.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-30T06:14:47.000Z (almost 3 years ago)
- Last Synced: 2025-07-28T19:36:14.017Z (10 months ago)
- Topics: judge-server, judge-worker, online-code-compiler
- Language: JavaScript
- Homepage:
- Size: 187 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Online Code Compiler
## Description
This is a simple online code compiler that supports C++, Python, and JavaScript. It utilizes Docker to execute the code within a secure sandboxed environment.
## Architecture

It has mainly 2 components:
1. [Judger-Server](https://github.com/rohit1kumar/judge-server)- It is a NodeJS server receives code and language input from users, assigns a submission ID, and sends it to the judger-worker. It also handles user requests for code output.
2. [Judger-Worker](https://github.com/rohit1kumar/judge-worker)- It is also a NodeJS server, runs code in a secure sandbox using Docker. It temporarily stores the code and output using Redis.
Here, RabbitMQ serves as a message broker between the Judger-Server and Judger-Worker. By decoupling the components, RabbitMQ enhances scalability and ensures the seamless execution of the requests without blocking the main server, Redis store the temporary data of output of the executed code with submission ID as the key.