Online-judge
Online-judge copied to clipboard
An Online Judge based on MERN Stack, Spring Boot and Docker.
Online-Judge
An Online-judge system based on Node and React (MERN Stack).
Features
- [x] Authentication and Authorization
- [x] Submit your code
- [x] Test your code
- [x] Results shows Time (Sec) and Memory (MB)
- [x] Verdicts
- Time Limit Exceeded (TLE)
- Memory Limit Exceeded (MLE)
- Compilation Error (CE)
- Runtime Error (RTE)
- Wrong Answer (WA)
- Accepted (AC)
- Time Limit Exceeded (TLE)
- [x] See your submissions
- [x] Filter problems based on tags
- [x] Search problems by name
- [x] Dashboard for Statistics
- [x] Create Coding Problems
- [ ] E-mail verification
- [ ] Forgot password
- [ ] Leaderboard
Supported Languages
- C
- C++ 11/14/17 (GCC)
- Java 8
- Python 3
Prerequisite
- Docker Desktop
- Node.js
Env Variables
In judge/config/config.js:
PORT = 5000
JWT_PRIVATE_KEY = <Your_JWT_Token>
BACK_SERVER_URL = <Spring_Server_URL>
Setup Locally
Make sure to install docker in your machine.
Start Docker Desktop
git clone https://github.com/meetpatel0963/Online-judge.git
cd online-judge
Client
In client/src/config/config.js:
Change BACK_SERVER_URL="http://localhost:<spring_server_port>"
Change JUDGE_URL="http://localhost:<judge_server_port>"
cd client
npm install
npm start
Server
Start Spring Boot Server
Change PATH_INIT={{Path to Server Directory}} in judge/judge.js
cd judge
mkdir submissions
npm install
cd docker
docker build -t <Image_Name> .
cd ..
npm start
Make sure to start Docker Desktop before the command npm start.
🎉 And that's it! You will now be able to visit http://localhost:3000/ URL and see your application up and running.
Snapshots
SignIn
SignUp
ProblemSet
Problem Page
Code Editor
Results
Add Problem Page
User Submissions
User Submission Modal
Dashboard Charts
Dashboard Charts
Thanks
- I'd appreciate a star if you find this helpful.