{"id":27075879,"url":"https://github.com/mesh2509/realtime_collaborative_document_editing_app","last_synced_at":"2025-07-13T23:08:52.938Z","repository":{"id":286165437,"uuid":"960582697","full_name":"Mesh2509/Realtime_Collaborative_Document_Editing_App","owner":"Mesh2509","description":"This app leverages React.js on the frontend and Nest.js, on the backend along with WebSockets Gateway to provide a seamless real-time collaborative document editing experience. Users can collaborate simultaneously on documents, seeing changes instantly with robust real-time synchronization.","archived":false,"fork":false,"pushed_at":"2025-04-04T17:48:12.000Z","size":665,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T20:14:26.843Z","etag":null,"topics":["mongoose","nextjs-backend","nextjs-microservices","nextjs-mongoose","nodejs","reacthooks","tailwindcss","websocket","websocket-api"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mesh2509.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-04T17:25:33.000Z","updated_at":"2025-04-04T19:13:45.000Z","dependencies_parsed_at":"2025-04-04T18:43:01.879Z","dependency_job_id":null,"html_url":"https://github.com/Mesh2509/Realtime_Collaborative_Document_Editing_App","commit_stats":null,"previous_names":["mesh2509/realtime_collaborative_document_editing_app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Mesh2509/Realtime_Collaborative_Document_Editing_App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mesh2509%2FRealtime_Collaborative_Document_Editing_App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mesh2509%2FRealtime_Collaborative_Document_Editing_App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mesh2509%2FRealtime_Collaborative_Document_Editing_App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mesh2509%2FRealtime_Collaborative_Document_Editing_App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mesh2509","download_url":"https://codeload.github.com/Mesh2509/Realtime_Collaborative_Document_Editing_App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mesh2509%2FRealtime_Collaborative_Document_Editing_App/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265218750,"owners_count":23729528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mongoose","nextjs-backend","nextjs-microservices","nextjs-mongoose","nodejs","reacthooks","tailwindcss","websocket","websocket-api"],"created_at":"2025-04-06T00:18:18.559Z","updated_at":"2025-07-13T23:08:52.919Z","avatar_url":"https://github.com/Mesh2509.png","language":"TypeScript","readme":"\nINTRODUCTION -\n--------------------------------------------------------------------------------------------------------\nIn today's interconnected world, seamless collaboration on documents among multiple users is \nessential for productivity and efficiency. The Real-Time Collaborative Document Editor is a \ncutting-edge application designed to facilitate simultaneous editing of shared documents by \nmultiple users in real time. This project harnesses the power of modern web technologies, \nincluding NestJS for the backend, WebSocket for real-time communication, and robust \nauthentication mechanisms to ensure data security and user privacy\n\n\nKEY-FEATURES -\u003e\n--------------------------------------------------------------------------------------------------------\n\n  1. Real-Time Collaboration\n  2. Document \u0026 users management\n  3. Identification/mapping of websocket client with database user\n  4. Authentication \u0026 Authorization\n  5. Conflict Resolution\n  6. Persistence\n  7. Maintaining DTO’s (Data Transfer Object)\n  8. Class-Validator \u0026 Class-Transformer\n\nTECHNOLOGY STACK  -\u003e\n--------------------------------------------------------------------------------------------------------\n\n  1. Frontend : ReactJS, state management(ContextAPI), TailwindCSS\n  2. Backend : NestJS, WebSockets Gateway, Socket.io-client, Mongoose, Mongo-Atlas, JWT(JSON web token - HMAC with SHA-256), Typescript\n\nPROJECT STRUCTURE -\u003e\n--------------------------------------------------------------------------------------------------------\n\nRealtime-collaborative-doc-editor/\n│\n├── src/\n│ ├── app.module.ts // Main module\n│ ├── document/ // Document module\n│ │ ├── document.controller.ts // Document controller\n│ │ ├── document.service.ts // Document service\n│ │ ├── document.entity.ts // Document entity (Mongoose)\n│ │ └── document.module.ts // Document module definition\n│ │\n│ ├── auth/ // Authentication module\n│ │ ├── auth.controller.ts // Auth controller (login, register)\n│ │ ├── auth.service.ts // Auth service (JWT authentication)\n│ │ └── auth.module.ts // Auth module definition\n│ │ └── jwt.strategy.ts \n│ │ └── guards\n│ │ ├── jwt-guards.auth.ts // JWT guard for authentication\n│ │\n│ ├── user/ // User module\n│ │ ├── user.controller.ts // User controller\n│ │ ├── user.service.ts // User service\n│ │ ├── user.entity.ts // User entity (Mongoose)\n│ │ └── user.module.ts // User module definition\n│ ├── socket.gateway.ts // WebSocket gateway\n│ │\n│ └── main.ts // Entry point for the application\n├── .env // Environment variables\n└── package.json // Project dependencies and scripts\n\n\n\nPROJECT SNAPSHOTS -\u003e\n--------------------------------------------------------------------------------------------------------\n\n\n\n![Screenshot (19)](https://github.com/tikhepooja11/Realtime-collaborative-document-editing-app/assets/47672660/4e9c93d3-9b8d-4170-8683-41b3c9cdf44d)\n\n\n![Screenshot (21)](https://github.com/tikhepooja11/Realtime-collaborative-document-editing-app/assets/47672660/d8d46bcc-af22-40d3-964e-707766b51522)\n\n\n![Screenshot (22)](https://github.com/tikhepooja11/Realtime-collaborative-document-editing-app/assets/47672660/37f102ba-e5d4-4083-8b7f-660db28e2cb9)\n\n\n![Screenshot (26)](https://github.com/tikhepooja11/Realtime-collaborative-document-editing-app/assets/47672660/bec637a6-c544-4f26-877b-5cd6dc594647)\n\n\n![Screenshot (28)](https://github.com/tikhepooja11/Realtime-collaborative-document-editing-app/assets/47672660/ee8a2558-3320-40be-9f96-b40d3f5e2c16)\n\n\n![Screenshot (33)](https://github.com/tikhepooja11/Realtime-collaborative-document-editing-app/assets/47672660/b7bea3c8-584d-4247-924f-dbe96bc2bd24)\n\n\n![Screenshot (35)](https://github.com/tikhepooja11/Realtime-collaborative-document-editing-app/assets/47672660/179da481-b196-410e-a4ce-d56cd1b43442)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmesh2509%2Frealtime_collaborative_document_editing_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmesh2509%2Frealtime_collaborative_document_editing_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmesh2509%2Frealtime_collaborative_document_editing_app/lists"}