DEV Community

Rishabh Malhotra
Rishabh Malhotra

Posted on

I made google docs clone but with a twist

When I used to discuss data-structure and algorithm problems with a friend while in college (yea thank covid for closing all the colleges D:), it was a pain in the neck since both of us were coding on different computers and different code-editors, and more often than not resorted back to just using pen and paper.

I attempted to solve this problem by creating a real-time collaborative editor in which once you enter a room you just need to share the URL with a friend and he can join your room and both of you can collaborate together.

Technologies used:

  • React for the front-end of caucus.
  • NodeJS for the back-end of caucus.
  • Postgresql database for storing and retrieving leetcode questions.
  • socket.io for real-time communication.
  • convergence for handling real-time collaboration.
  • Heroku🤮(I hate Heroku) for hosting the nodejs server and Azure 🥰 for hosting the docker container.

Features

  • Real-time collaboration for practicing for coding interviews
  • All free leetcode questions to practice.
  • You can also load any question from codeforces or atcoder by pasting the problem URL
  • Real-time messaging.
  • Remote code execution in 5 different languages (C++, Java, Python, Javascript and GO. Try it live: live demo

This project is available at GitHub -

GitHub logo Rishabh-malhotraa / caucus

Realtime Collaborate Editor with Embedded Compiler

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

caucus

A Real Time Collaborative Editor with an embedded compiler
Explore the project »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgements

About The Project


Collaborative Code Editor

Product Name Screen Shot

Login Page Navigate Rooms Page
Product Name Screen Shot Product Name Screen Shot

Built With

Written in TypeScript

Getting Started

Follow the instructions to set up the project on your local machine.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • npm

    npm install npm@latest -g
    Enter fullscreen mode Exit fullscreen mode

Installation

  1. Clone the repo

    git clone https://github.com/Rishabh-malhotraa/caucus.git
    Enter fullscreen mode Exit fullscreen mode
  2. Install NPM packages

    npm install
    Enter fullscreen mode Exit fullscreen mode
  3. Start the react server

    npm run start
    Enter fullscreen mode Exit fullscreen mode
  4. Add Enviroment Variables

    REACT_APP_CLIENT_URL = https://localhost:3000
    REACT_APP_SERVER_URL = https://localhost:5000
    REACT_APP_CONVERGENCE_URL = https://localhost:8080 
    
  5. Download Docker Desktop and then download convergence omnibus from docker hub and then start the server

    docker pull convergencelabs/convergence-omnibus
    Enter fullscreen mode Exit fullscreen mode

If you liked what the project, please consider leaving a star ⭐ on the GitHub repo it means a lot.

Top comments (7)

Collapse
 
rahxuls profile image
Rahul

Rishabh the project is very amazing and best. I think if you make some slight changes and optimize it. This will be perfect SaaS app. I loved it badly.
Thinking to contribute in future.

Collapse
 
rishabhmalhotraa profile image
Rishabh Malhotra

Thanks for the kind words man, I have labeled some good-first-issue on if you want to contribute.
github.com/Rishabh-malhotraa/caucu...

It got some traction on GitHub thanks to codeforces, that's why I want to add a lot of features like a voice call and different modes like practice mode, interview mode, etc. also I was thinking of scheduling mock interviews like pramp, but right now I focusing on preparing my proposal for GSoC and all updates have been put on hold for now D:

Collapse
 
rahxuls profile image
Rahul

Hey Rishabh, I would tell you don't be tense man. This is pure SaaS and will rock on web. We can connect on twitter (@raxhul). I am really interested in this product and growing it. If you move it's hosting it would be better and also there alot bugs so that too. Also will promote this product on my various blogs on web. I am thinking to start working on the landing page.

REALLY LOVED THE PRODUCT MAN

Collapse
 
dhruvindev profile image
Dhruvin

Great project, loved it. I'll definitely contribute to the project

Collapse
 
rishabhmalhotraa profile image
Rishabh Malhotra

thank you :)

Collapse
 
seifeslimene profile image
Seif Eddine Slimene

Pretty Awesome!

Collapse
 
xsm4el profile image
Ismael Olliver OUEDRAOGO

How far have you gone since ? Also did you know that VS Code had an extension that does exactly that ? with audio/video calls, remote cursors and all