Git Product home page Git Product logo

gcp's Introduction

GCP

COLLABORATIVE CODING IDE , SECURED AS EXECUTING CODES IS DONE ON A DEAMON-LESS CONTAINER PODMAN , WITH CHAT AND VIDEO CALL FEATURES.

Group Coding Project

ABOUT

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.

Getting Started

PREREQUISITES TO RUN LOCALLY

  • Python (vesion >=3.5)
  • Podman Installed
  • JavaScript libraries such as ( Socket Io , Nodemon, NodeJs)

HOW TO RUN LOCALLY

  • 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 alt-text
  • 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 image
  • We also have chat box which can be dissolved if not in used else can be used to share texts or msgs image.

WHERE WE SEE IT'S USE CASES

  • 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.

MongoDB

FURTHER IMPROVEMENTS

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.

Docker

TECH STACK USED

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)

gcp's People

Contributors

rated-r-sundram avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.