- Build a platform that remotely runs and compiles user submitted code for a programming problem securely and judges if the code is correct/wrong
- Provided access to users to keep track of submitted code by maintaining Leaderboard and history of submissions
- Used Docker and Sandboxing techniques to make online judge more secure
- Used Poling and Queue to handle multiple requests
- Deployed and can be used by many users by Horizontal Scaling
- You can visit Live site here: Online Judge
- Navigate to client directory and install all dependencies for client side code using command :
npm installand then runnpm startto run react on PORT 3000 - Navigate to the server directory and install the dependencies using the command
npm install - To run the server you must have
DockerandRedisversion greater than or equal to2.8.18installed on your PC - If you are using Windows, install WSL for using
redis-serverand useDocker-Desktopfor usingDocker - Server also uses
MongoDB, either you can use mongodb-local or mongodb-atlas - To use mongodb-atlas create a
.envfile and define a key namedDB_URLand its value will be your atlas URL. To use mongodb-local no need to defineDB_URLin.env - Server uses cookies to handle authentication, which uses
JWT_SECRETwhich is also defined in the.envfile - After all these steps you are all set to run the server. Use the command
npm start. The server will start on PORT 5000