COLLABORATIVE CODING IDE , SECURED AS EXECUTING CODES IS DONE ON A DEAMON-LESS CONTAINER PODMAN , WITH CHAT AND VIDEO CALL FEATURES.
This project was intented to bring ease and productivity among multiple users working on the same coding project, We have created a sychronous platform removing redundancy by incorporating OPERATIONAL TRANSROMATION Algorithm allowing multiple users to simulatenously edit and yet maintaing a version which is same across user.
To further esclate the cohesity among users and to provide scope for real time discussions and communications we have faciliated the users with features such as chats and Video Calls.
NOTE : This project is yet to be deployed at the moment so please follow the steps in the "HOW TO RUN LOCALLY " section to run it locally on your system.
- Python (vesion >=3.5)
- Podman Installed
- JavaScript libraries such as ( Socket Io , Nodemon, NodeJs)
- Clone the repo locally and open in VSCOde or any other IDE.
- Run createimage.sh to create the desired image to be used in the project.
- run the command npm start ( ENSURE THAT THE PORT WE HAVE ALLOCATED IS FREE ELSE USE A CUSTOM PORT USING npm start <#port> .
- The landing page looks something like this
- Now if you want to create a link for others to join click on create link else enter the link and join the collaborative environment.
- The coding environment looks like this
- We also have chat box which can be dissolved if not in used else can be used to share texts or msgs
.
- The best use cases for it can be people from an organization or from different backgrounds contributing and collaboarating remotely without the actual need for physical interactions.
- We have tried to provide the real time interaction features like chat and Video Call so that the scope of productive discussion and interaction is always there.
- The safety of clients system is taken care of by running the code snippets on containers and not their actual systems preventing the system from malicious codes.
- Not limited just to a synchronous text editor each user can run the code at any moment he wihses and gets the output on his system.
The project uses MongoDB as a database. Install MongoDB
- Foremost deploying this project, which is a big challenge considering the diverse tech stack used.
- Implementing some sort of social media connect features so user can discuss the project beforehand starting it.
- More attractive coding are and code features such as autocomplete snippets, boilerplates etc.
The project uses Podman containers to run the user provided source files.
- FRONTEND ( HTMl, CSS, JAVASCRIPT)
- SOCKET IO for synchronous chats and code
- PYTHON
- PODMAN CONTAINERS
- BASH
- Libraries for OT ( OPERATIONAL TRANSFORMATION)