FrontEnd code of a Remote Code Executor
Report Bug
·
Request Feature
This is the FrontEnd code of a Remote Code Executor. This is a project assigned by the Coding forum of my college and is similar to the Online IDEs of websites like CodeChef and Leetcode.
Salient Features:
- Code Sanitisation
- An individual Docker Container is created for every code posted on the API, so no code interferes with any other code
- All Async code so that the server can handle multiple requests without error
- Socket has been implemented along with rooms for seperate users so that the server can handle multiple users in multiple rooms
- Keeping it simple, there is not need for signup or login, you can jump in and start coding
- Timeouts and max memory have been implemented so that no code takes up too much of the server's time
- Implemented SwaggerUI as an API Sandbox so anyone can explore endpoints and familiarize themselves with the server
- Timeout to prevent the user from spamming the run code button and triggering a DoS attack
- Adequate toasts have been implemented so that anyone in the room is alerted if anyone joins or leaves
- No duplicate usernames are allowed
- In case a user loses internet, he will be taken back to the Join Page, and will be prompted to login again
- Completely responsive so people on mobile can use this RCE as well.
To get a local copy up and running follow these simple steps.
- npm
npm install npm@latest -g
- yarn
npm install -g yarn
- Clone the repo
git clone https://github.com/rajatmaheshwari2512/remote-code-frontend
- Install NPM packages
npm install
- Or using yarn
yarn install
- To run the React App with npm
npm start
- To run the React App with yarn
yarn start
- It is important to note that you will have to setup environment variables to the appropriate endpoints, should you deploy this locally or somewhere else
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Rajat Maheshwari - [email protected]
Project Link: https://github.com/rajatmaheshwari2512/remote-code-frontend
Site Link: SwaggerUI Link
Main Site Link: FrontEnd UI
- This project is currently deployed on an EC2 Instance provided by AWS