Skip to content

Online code editor and compiler with real time collaboration

Notifications You must be signed in to change notification settings

ostrich-egg/CodeRoom

 
 

Repository files navigation

Code Room is an unbelievably fast online code editor and compiler which allows you for real time collaboration.

Features

  • Multi-language Support: Compile code in multiple programming languages.
  • Monaco Editor: Enjoy the same code editing experience as in VS Code, with features like indentation, syntax highlighting, and IntelliSense.
  • Real-time Collaboration: Code together with others in real-time.
  • Integrated Chat: Communicate seamlessly with your fellow collaborators.
  • Supported Language : JavaScript, Python, C++

Get Started

Ensure NodeJS and MySQL is installed on your machine

git clone <link of this repo>
cd CodeRoom

To start React App

npm install
npm run dev

To start server

cd server
npm install
npm start

On you favourite browser

http://localhost:5173/

voilà! You are ready to swing.

Under the hood

  • React In front end
  • Nodejs and Express server on backend
  • MySQL for Database Management
  • Tailwind for Style
  • Password Encryption using bcrypt hashing
  • Authentication using JWT, with ft. like OTP using NodeMailer.
  • Monaco Editor for code IntelliSense and edit
  • Language specific compiler for code compilation using docker
  • (Language - Compiler) = Javascript - Nodejs(runtime), Python - python3, C++ - gcc
  • Socket.io for websocket (Real time communication)
  • Terniary Operator

Before you Start

  • Server is running on port : 5001

Make sure your .env file inside server directory looks something like this:

#For MYSQL Database
DB_HOST = localhost
DB_USER = root
DB_PASS = <your password>
DB_NAME = users
DB_TABLE_NAME = userstable

#For OTP Database
DB_OTP_TABLE_NAME = otpverification
OTP_EMAIL_SENDER = <me@gmail.com>

#For OTP Nodemailer
OTP_APP_PASSWORD = <Application password>
OTP_EXPIRY = 5* #In mins

#For json web token
JWT_SECRET = <IHaveNoSecrets>
JWT_LIFETIME = '1hr'


#For docker setup
PYTHON_TAG = 'sha256:cf2c...'
JS_TAG = 'sha256:cfa2266c...'
CPP_TAG = 'sha256:2321d3c...'



How to Setup Docker

-Build an docker image, "docker build <path where dockerfile is present>"
-Copy the image tag of particular image
-Paste it in the .env file located inside server directory

Developers

Ostrich-egg
Adarsha
Pranaya-sht
XGPher35

This is Third semister project.

About

Online code editor and compiler with real time collaboration

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 95.1%
  • Dockerfile 2.5%
  • CSS 2.1%
  • HTML 0.3%