Skip to content

mabhishek-dev/realtime-code-interview-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time Code Interview Platform (CodeMeet)

React Node.js Express MongoDB

Clerk TanStack Query Inngest Stream Judge0

A full-stack real-time code interview platform for conducting one-on-one technical interviews with integrated video calling, chat, and code execution.


Live Demo

View Live Demo

⚠️ Note:
Hosted on Render (free tier). Initial load may take 30–60 seconds to start.


Tech Stack

Frontend

  • React
  • Tailwind CSS + DaisyUI
  • TanStack Query
  • Clerk (authentication UI + session handling)
  • Stream Video + Chat (client-side SDK)
  • Monaco Editor

Backend

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • Clerk (authentication, user management, and webhooks)
  • Stream SDK (server-side)
  • Inngest

Services

  • Judge0 – runs user code and returns output/errors
  • Clerk – authentication and user management
  • Stream – video calling and in-session chat
  • Inngest – background jobs for syncing users with Stream and MongoDB, and cleanup on deletion

Features

Authentication

  • Clerk-based authentication
  • User creation and deletion via webhooks
  • Background synchronization handled by Inngest

Dashboard

  • Active sessions
  • Live sessions
  • Recent sessions
  • Total sessions

Session System

  • Create and join interview sessions
  • One-on-one session model
  • Host-controlled session lifecycle

Problems

  • Curated set of 150 coding problems
  • Solve without creating a session
  • Includes descriptions, examples, and constraints

Real-Time Communication

  • One-on-one video calls
  • Audio and camera controls
  • Real-time messaging
  • Supports text, images, and GIFs via /giphy
  • Screen sharing
  • Reactions

Coding Environment

  • Monaco Editor
  • Supports JavaScript, Python, Java, C++, C, and C#
  • Code execution powered by Judge0
  • Output and error display

Project Structure

realtime-code-interview-platform/
│
├── backend/
│   └── src/
│       ├── controllers/
│       ├── lib/
│       ├── middleware/
│       ├── models/
│       ├── routes/
│       └── server.js
│
├── frontend/
│   └── src/
│       ├── api/
│       ├── components/
│       ├── data/
│       ├── hooks/
│       ├── lib/
│       └── pages/
│
├── screenshots/
└── package.json

Environment Variables

Create a .env file in each project root:


Backend

  • backend/.env (beside src)
PORT=your_port
DB_URL=your_mongodb_connection_string
NODE_ENV=development_or_production

CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key

INNGEST_EVENT_KEY=your_inngest_event_key
INNGEST_SIGNING_KEY=your_inngest_signing_key

STREAM_API_KEY=your_stream_api_key
STREAM_API_SECRET=your_stream_api_secret

CLIENT_URL=your_frontend_url

Frontend

  • frontend/.env (beside src)
VITE_API_URL=your_backend_url/api
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
VITE_STREAM_API_KEY=your_stream_api_key

Setup Instructions

1. Clone the repository

git clone https://github.com/mabhishek-dev/realtime-code-interview-platform.git
cd realtime-code-interview-platform

2. Install dependencies

cd backend
npm install
cd ../frontend
npm install

3. Run the application

Open two terminals:

Backend

cd backend
npm run dev

Frontend

cd frontend
npm run dev

Screenshots

Home Page

Home

Login / Signup Page

Login

Dashboard Page

Dashboard

Problems Page

Problems

Problem Page

Problem

Session Page

Session

Session Page with Chat

Session Chat


License

This project is licensed under the MIT License.

About

A MERN stack real-time code interview platform supporting one-to-one technical interviews, featuring a coding environment, video calling and chat via Stream, secure authentication and user management with Clerk, background job processing using Inngest, and code execution powered by Judge0.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages