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.
- 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.
- 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.
This project is available at GitHub -
Table of Contents
About The Project
Collaborative Code Editor
Written in TypeScript
Follow the instructions to set up the project on your local machine.
This is an example of how to list things you need to use the software and how to install them.
npm install npm@latest -g
Clone the repo
git clone https://github.com/Rishabh-malhotraa/caucus.git
Install NPM packages
Start the react server
npm run start
Add Enviroment Variables
REACT_APP_CLIENT_URL = https://localhost:3000 REACT_APP_SERVER_URL = https://localhost:5000 REACT_APP_CONVERGENCE_URL = https://localhost:8080
Download Docker Desktop and then download convergence omnibus from docker hub and then start the server
docker pull convergencelabs/convergence-omnibus
If you liked what the project, please consider leaving a star ⭐ on the GitHub repo it means a lot.