A scalable and secure microservices-based code assessment platform designed to:
- Detect plagiarism
- Execute untrusted code safely
- Evaluate coding submissions in real-time
- Support large-scale usage for colleges, coding contests, and hiring platforms
The platform is engineered for high performance, security, and maintainability using modern distributed backend architecture.
Each component is independently deployable, scalable, and communicates over gRPC for extremely low-latency performance.
- Executes untrusted code inside isolated Docker sandboxes
- Protects against infinite loops, memory exploits, fork bombs, etc.
- Supports multiple programming languages
Users receive immediate execution output and detailed submission history.
Supports multiple similarity-checking techniques:
- Token-based similarity
- AST structural comparison
- Custom rule-based heuristics
- Student β submit solutions, view results, track history
- Instructor / Admin β manage questions & test cases, monitor analytics
- Handles 1000+ concurrent users
- Achieves <300ms average API response time using gRPC + caching
| Layer | Technologies |
|---|---|
| Frontend | React.js, Axios, Bootstrap |
| Backend | Java, Spring Boot, Spring Security, gRPC, JPA |
| Service Discovery | Eureka Server |
| API Gateway | Spring Cloud Gateway |
| Config Server | Spring Cloud Config |
| Database | MySQL |
| Cache | Redis |
| Code Execution | Judge0, Docker Sandbox |
| Build Tools | Maven |
| Others | Lombok, ModelMapper |
Backend/
βββ ApiGateway/
βββ AuthService/
βββ ConfigServer/
βββ EurekaServer/
βββ JudgeGrpcWrapper/
βββ QuestionManagement/
βββ SubmissionService/
βββ TestCaseService/
βββ UserHistoryManagement/
βββ judge0-v1.13.1/ (Optional local Judge0 instance)
(Add your Architecture.png below this section)
+------------------------------+
| React Frontend |
+-------------+----------------+
|
v
+------------------------------+
| API Gateway |
+-------------+----------------+
|
+----------+-------------+
| |
v v
+--------+ +---------------+
| Auth | <------> | User History |
|Service | | Management |
+--------+ +---------------+
+-----------------+ +-------------------+
| Question Mgmt | | Submission Service |
+-----------------+ +-------------------+
+-------------------------------------+
| Test Case Service |
+-------------------------------------+
+-------------------------------------+
| Judge0 gRPC Wrapper (Docker) |
+-------------------------------------+
+-------------------------------------+
| Eureka Server + Config Server |
+-------------------------------------+
Handles:
- User registration & login
- JWT authentication
- Role-based access control
Manages:
- Adding, updating & deleting questions
- Difficulty tagging
- Question metadata
Stores:
- Public test cases
- Hidden (private) evaluation test cases
Responsible for:
- Sending code to JudgeGrpcWrapper
- Matching output with test cases
- Returning results to users
A gRPC wrapper around Judge0 that:
- Executes code in Docker
- Applies CPU/memory/time limits
- Prevents malicious behavior
Stores:
- Submission history
- Execution status
- Time analysis
- Verdict reports (AC, WA, TLE, MLE, RE, CE)
cd Backend/ConfigServer
mvn spring-boot:run
cd Backend/EurekaServer
mvn spring-boot:run
Repeat:
cd Backend/<ServiceName>
mvn spring-boot:run
docker pull judge0/judge0
docker run -d -p 2358:2358 judge0/judge0
(Or use your custom JudgeGrpcWrapper)
cd Frontend
npm install
npm start
- Student submits code
- SubmissionService receives request
- Sends to JudgeGrpcWrapper
- Wrapper sends to Judge0 sandbox
- Execution result returned
- Stored in UserHistory
- Sent back to frontend
- Handles 1000+ concurrent users
- Achieves <300ms avg response time
- Horizontally scalable microservice design
- JWT authentication
- Role-based authorization
- Docker-based sandbox execution
- Input validation
- Optional throttling / rate limiting
- AI-driven plagiarism detection (ML-based similarity scoring)
- Leaderboards & competitive programming mode
- WebSocket real-time updates
- Admin analytics dashboard (graphs, insights)
Contributions are welcome! Feel free to open issues or submit pull requests.
Shrihari Kulkarni
Backend Developer | Microservices | Cloud | ML
π GitHub: https://github.com/shrihari7396
π LinkedIn: https://www.linkedin.com/in/shrihari-kulkarni-467767299/