Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/am4nn/online-judge-project

A MERN-Based Website that remotely runs and compiles user submitted code for a programming problem securely and judges if the code is correct/wrong
https://github.com/am4nn/online-judge-project

aws-ec2-ubuntu docker expressjs javascript mern-stack mongoatlas mui nodejs polling reactjs redis redux redux-toolkit server webdevelopment

Last synced: about 7 hours ago
JSON representation

A MERN-Based Website that remotely runs and compiles user submitted code for a programming problem securely and judges if the code is correct/wrong

Awesome Lists containing this project

README

        

# Online-Judge | Online-Coding-Platform | (MERN-Based Website)

- 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](https://oj.amanarya.com)

## Run Online-Judge Locally

- Navigate to client directory and install all dependencies for client side code using command : `npm install` and then run `npm start` to run react on [PORT 3000](https://localhost:3000)
- Navigate to the server directory and install the dependencies using the command `npm install`
- To run the server you must have `Docker` and `Redis` version greater than or equal to `2.8.18` installed on your PC
- If you are using Windows, install WSL for using `redis-server` and use `Docker-Desktop` for using `Docker`
- Server also uses `MongoDB`, either you can use mongodb-local or mongodb-atlas
- To use mongodb-atlas create a `.env` file and define a key named `DB_URL` and its value will be your atlas URL. To use mongodb-local no need to define `DB_URL` in `.env`
- Server uses cookies to handle authentication, which uses `JWT_SECRET` which is also defined in the `.env` file
- After all these steps you are all set to run the server. Use the command `npm start`. The server will start on [PORT 5000](https://localhost:5000)