Coder Social home page Coder Social logo

devang2304 / collaborativecodeeditor Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 435 KB

Collaborative Code Editor is an online real-time code editing platform designed to enhance pair programming by allowing multiple developers to simultaneously view and edit code files in a distributed environment.

Java 44.72% HTML 6.44% JavaScript 37.90% CSS 10.93%
mongodb reactjs spring-boot websocket

collaborativecodeeditor's Introduction

Collaborative Code Editor

Introduction:

Collaborative Code Editor is an online real-time code editing platform designed to enhance pair programming by allowing multiple developers to simultaneously view and edit code files in a distributed environment. This platform eliminates the need for manual file sharing and provides a seamless editing experience, fostering productivity and code quality.

Features:

  • Real-time code editing: Multiple users can edit code simultaneously, and changes are instantly visible to others.
  • Pair programming support: Facilitates collaborative coding sessions, enhancing problem-solving and code quality.
  • Room-based document management: Each document is identified by a unique RoomID, enabling users to join the same room and collaborate on specific projects.
  • Persistent storage: Code changes are saved in a MongoDB cloud instance, ensuring data persistency even after user logouts.

Tech Stack:

  • SpringBoot (JAVA): Backend server for document management, user authentication, and WebSocket communication.
  • WebSockets: Enables real-time communication between clients and the server.
  • MongoDB: NoSQL database for persistent storage of code documents.
  • ReactJS: Frontend framework for building a responsive and interactive user interface.
  • CodeMirror: ReactJS code editor component with features like line gutters, syntax highlighting, and autocompletion.

System Design:

system design2

  1. Client-Server Architecture: Utilizes a versatile architecture for independent information transfer and easy data management on the server.
  2. SpringBoot Server: Manages document creation, retrieval, and WebSocket initialization. Handles client-server interactions for document updates.
  3. WebSocket Integration: Facilitates real-time communication between clients and the server, enabling synchronized code editing.
  4. MongoDB Document Store: Stores code documents, ensuring data persistency across sessions.

Backend Implementation:

  • Endpoints:
    • app.get('/roomID'): Checks and creates a new RoomID if not present in the database.
  • WebSocket Server: Handles client-side socket events (project_write, project_get, project_save) and server-side events (connect, disconnect, connected_to_Room).

Frontend Implementation:

  • User Interface:
    • Built with ReactJS to provide an intuitive and responsive experience for users.
  • CodeMirror Integration: Utilizes CodeMirror for the code editor component, offering features such as line gutters, syntax highlighting, and autocompletion.

Contributors:

Feel free to contribute, report issues, and enhance the Collaborative Code Editor platform.

collaborativecodeeditor's People

Contributors

devang2304 avatar devangvartakspit avatar swastikverma 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.