Real time peer programming platform to solve coding problems in multiple supported languages, edit fellow programmers' code, chat and share code through WhatsApp.
- Light/dark mode toggle
- Secure Login/Signup system using
auth0
- Secured password-based rooms for peers to collaborate
- Users can create/join multiple rooms
- Real time code editing, running with periodic auto save feature
- Support for multiple programming languages, font size and code editor theme, along with error and output to debug the code.
- Built in real-time chat along with timestamps, dedicated to a room
- Code sharing through WhatsApp using
Twilio
Find a short demo of the running project here
- Clone the project
git clone https://github.com/SubhradeepSS/code_collaborator
-
Create accounts in CockroachDB, Twilio and auth0
-
Navigate to the
server
folder from project root by
cd server
- create a
config.js
file and enter your credentialsmodule.exports = { accountSid: "<YOUR TWILIO ACCOUNT SID>", authToken: "<YOUR TWILIO AUTHTOKEN>", username: "<YOUR COCKROACHDB USERNAME>", password: "<YOUR COCKROACHDB CLUSTER PASSWORD>", host: "<YOUR COCKROACHDB HOST>", port: <PORT NO FOR COCKROACHDB>, database: "<YOUR COCKROACHDB CLUSTER NAME>.<COCKROACHDB DATABASE NAME>", cert_path: "<LOCAL PATH FOR CERTIFICATE DOWNLOADED FROM COCKROACHDB>" }
- Install all npm packages
npm i
- Run local dev server
npm run dev
- Navigate to
socket
folder from root of project by
cd socket
- Install packages
npm i
- Run dev server
npm build npm run dev2
- Navigate to
frontend
from root of project by
cd frontend
- Install packages
npm i
- Run local server
npm build npm run dev
- Open http://localhost:3000/ and the project will open
- Add audio chat
- Collaborative drawing board like jamboard
- Sharing code through other platforms like Slack, Discord etc.
- Integrating better code formatting and styling in code editor
- Convert website to Desktop app
- Adding unit and integration tests
Any contributions made to the project are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request