Skip to content

tuugbagul/collaborative-code-reviewer

Repository files navigation

Collaborative Code Reviewer

A real-time collaborative code review platform built with a microservices architecture. Multiple users can join shared rooms, write code together, analyze it with a linter, and leave comments — all in real time.

Features

  • Real-time collaborative code editing (Socket.io)
  • Python analysis via Pylint (real lint errors and warnings)
  • JavaScript analysis via custom regex rules (var, ==, console.log, debugger, etc.)
  • Live comment panel per room
  • JWT-based authentication
  • Room creation and joining via lobby page
  • Dark gradient UI with Monaco Editor

Architecture

Service Tech Port
Nginx Reverse Proxy 80
Frontend React, Monaco Editor 3006
API Gateway Express.js 3000
Auth Service Express.js, MongoDB, JWT 3001
Analysis Service FastAPI, Pylint 3007
Collaboration Service Socket.io 3003

Getting Started

Prerequisites

Setup

Create a .env file in the root directory:

PORT=3001
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
JWT_EXPIRES_IN=24h

Run with Docker

docker-compose up --build

All services start automatically. Open http://localhost:3006

To stop:

docker-compose down

Run without Docker (Manual)

Click to expand

Requires Node.js, Python 3.10+, and MongoDB.

# Auth Service
npm install && node index.js

# API Gateway
cd api-gateway && npm install && node index.js

# Analysis Service
cd analysis-service && pip install -r requirements.txt && python main.py

# Collaboration Service
cd collaboration-service && npm install && node index.js

# Frontend
cd frontend && npm install && npm start

Usage

  1. Register an account and log in
  2. On the Lobby page, create a new room or join an existing one with a Room ID
  3. Share the Room ID with teammates — they can join from the Lobby
  4. Write code in the editor (JavaScript or Python)
  5. Click Analyze Code to run the linter
  6. Leave comments in the panel on the right

About

Real-time collaborative code editor with live linting, room-based sessions, and comment panel — built with React, Socket.io, and microservices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors