Skip to content

πŸš€ MERN Interview Platform - features section: πŸš€ Features:🎬 Interview Video Library, πŸ’» Code Viewer, πŸ” Clerk Authentication, βš™οΈ Inngest Workflow Integration, ⚑ Fast Vite + React Frontend, 🎨 Tailwind CSS UI, πŸ—„οΈ Node.js + Express + MongoDB Backend, πŸ“± Fully Responsive Design.

Notifications You must be signed in to change notification settings

Brahmajyot/interview-coder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

52 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘¨β€πŸ’» Interview Coder Master Your Technical Interviews. A full-stack, real-time technical interview platform featuring HD video calls, a collaborative code editor, and secure end-to-end encryption.

πŸš€ Features πŸŽ₯ HD Video & Audio: Crystal clear calls powered by GetStream.io.

πŸ’» Collaborative Code Editor: Real-time syntax highlighting for JavaScript and Python using Monaco Editor.

⚑ Live Synchronization: See what the other person types instantly (with debouncing optimization).

▢️ Code Compiler: Run code directly in the browser via the Piston API.

πŸ”’ End-to-End Encryption: Optional AES encryption ensures code is unreadable without a shared secret key.

πŸ–₯️ Screen Sharing: Built-in screen sharing for architecture diagrams or debugging.

πŸ’Ύ Auto-Save History: Interviews are saved to MongoDB for later review.

πŸ—£οΈ Text-to-Speech: Accessibility feature to read code aloud using the Web Speech API.

πŸ” Secure Authentication: Seamless login and user management via Clerk.

πŸ”„ Event-Driven Architecture: Robust user synchronization between Clerk and Database using Inngest.

πŸ› οΈ Tech Stack Frontend Framework: React.js (Vite)

Styling: Tailwind CSS

Icons: Lucide React

Editor: Monaco Editor

Encryption: CryptoJS

Backend (Serverless) Runtime: Node.js (Express on Vercel Functions)

Database: MongoDB Atlas (Mongoose)

Events: Inngest (Webhooks & Background Jobs)

Services Auth: Clerk

πŸ“‚ Project Structure

interview-coder/ β”œβ”€β”€ api/ # Vercel Serverless Functions (Backend) β”‚ β”œβ”€β”€ index.js # Express API Entry point β”‚ β”œβ”€β”€ inngest.js # Inngest Event Handler β”‚ └── token.js # Stream Token Generator β”œβ”€β”€ backend/ β”‚ └── src/ β”‚ β”œβ”€β”€ controllers/ # Logic for saving interviews β”‚ β”œβ”€β”€ lib/ # DB connection & Stream client β”‚ β”œβ”€β”€ models/ # Mongoose Schemas (User, Interview) β”‚ └── routes/ # Express Routes β”œβ”€β”€ frontend/ β”‚ └── src/ β”‚ β”œβ”€β”€ components/ # StreamProvider & UI Components β”‚ β”œβ”€β”€ pages/ # Home & MeetingRoom β”‚ └── api/ # Compiler API logic └── vercel.json # Vercel Routing Configuration

⚑ Getting Started

  1. Clone the Repository

git clone https://github.com/your-username/interview-coder.git cd interview-coder

  1. Install Dependencies This project uses a monorepo-style structure. You need to install dependencies in the Root and the Frontend.

Root (Backend): npm install

Frontend: npm install --prefix frontend

  1. Environment Variables

--- Backend Secrets ---

MONGODB_URI=your_mongodb_connection_string CLERK_SECRET_KEY=sk_test_... STREAM_API_SECRET=your_stream_secret INNGEST_SIGNING_KEY=your_inngest_signing_key INNGEST_EVENT_KEY=your_inngest_event_key

--- Shared Configuration ---

CLIENT_URL=http://localhost:5173 # Change to your Vercel URL in production STREAM_API_KEY=your_stream_public_key

--- Frontend (Vite) Secrets ---

VITE_CLERK_PUBLISHABLE_KEY=pk_test_... VITE_STREAM_API_KEY=your_stream_public_key VITE_CLIENT_URL=http://localhost:5173 # Change to your Vercel URL in production

  1. Run Locally Start the Frontend: npm run dev --prefix frontend

Start the Backend: node backend/src/server.js (Note: For local development of Inngest and Webhooks, use the Inngest Dev Server).

πŸš€ Deployment This project is optimized for Vercel.

Push code to GitHub.

Import project into Vercel.

Override Build Settings:

Build Command: cd frontend && npm install && npm run build

Output Directory: frontend/dist

Install Command: npm install

Add Environment Variables in Vercel Dashboard.

Deploy!

🀝 Contributing Contributions are welcome!

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.

πŸ“„ License Distributed under the MIT License. See LICENSE for more information.

Built with ❀️ by Jyoti Dev

Video/Audio: Stream Video SDK

Compiler: Piston API

About

πŸš€ MERN Interview Platform - features section: πŸš€ Features:🎬 Interview Video Library, πŸ’» Code Viewer, πŸ” Clerk Authentication, βš™οΈ Inngest Workflow Integration, ⚑ Fast Vite + React Frontend, 🎨 Tailwind CSS UI, πŸ—„οΈ Node.js + Express + MongoDB Backend, πŸ“± Fully Responsive Design.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published