Skip to content

prashantsaraswat1/TalentIQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

TalentIQ Logo

โšก TalentIQ โ€” Real-Time Collaborative Coding Platform

Code Together. Learn Together. Ace Your Interviews.

Live Demo MIT License Node.js React MongoDB Clerk


TalentIQ is a production-deployed real-time collaborative coding platform built for technical interview simulations. Interviewers and candidates connect face-to-face via HD video, code together in a live editor, and practice DSA problems โ€” all in one seamless experience.


TalentIQ Banner


๐ŸŒŸ Why This Project Stands Out

Feature Detail
๐ŸŽฅ HD Live Video + Audio Real-time video calls powered by Stream SDK for interview simulations
๐Ÿ’ป Collaborative Code Editor Syntax-highlighted live code editor with multi-language support
๐Ÿ” Clerk Auth (OAuth + MFA) Google OAuth, email/password, and multi-factor authentication
๐Ÿงฉ Practice Problems Curated DSA problems (Two Sum, Palindrome, etc.) with difficulty tags
๐Ÿ“Š Session Dashboard Track active sessions, total sessions, and live interview history
๐Ÿš€ Production Deployed Vercel (frontend) โ€” live and accessible globally

๐Ÿ“ธ Screenshots

๐Ÿ  Hero โ€” Real-Time Collaboration Landing

Homepage

๐Ÿ“Š Platform Stats & Feature Highlights

Features

๐Ÿ” Clerk Auth โ€” OAuth + Email ๐Ÿ“‹ User Dashboard โ€” Live Sessions
Auth Dashboard

๐Ÿงฉ Practice Problems โ€” DSA Problem Bank

Problems


๐Ÿ›๏ธ System Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    CLIENT (React.js + Vite)                   โ”‚
โ”‚   Clerk Auth UI โ”‚ Stream Video SDK โ”‚ Redux โ”‚ Tailwind CSS     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚ REST API + WebSocket
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  SERVER (Node.js + Express.js)                 โ”‚
โ”‚   REST Controllers โ”‚ Auth Middleware โ”‚ MongoDB Schemas        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
            โ”‚                              โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   MongoDB Atlas       โ”‚      โ”‚   Stream SDK (GetStream.io) โ”‚
โ”‚   (Sessions, Users,   โ”‚      โ”‚   Real-time Video / Audio   โ”‚
โ”‚    Problems, Recordings)โ”‚    โ”‚   Chat + WebRTC             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
            โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Clerk (Auth Layer)  โ”‚
โ”‚   OAuth, MFA, JWT     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โœจ Features

๐ŸŽ™๏ธ Real-Time Interview Room

  • HD video and audio via Stream SDK WebRTC
  • Collaborative live code editor with syntax highlighting
  • Multi-language support (JavaScript, Python, C++, Java, and more)
  • Real-time chat alongside the code editor
  • Session recording and playback support

๐Ÿ“Š Dashboard

  • View all active and past interview sessions
  • Create new sessions with one click
  • Track total sessions completed
  • Live session status indicator

๐Ÿงฉ Practice Problems

  • Curated DSA problem bank with difficulty levels (Easy / Medium / Hard)
  • Problems tagged by category (Array, String, Two Pointers, Hash Table)
  • Clean problem descriptions matching LeetCode-style format

๐Ÿ” Authentication

  • Clerk Auth with OAuth (Google), email/password
  • MFA (Multi-Factor Authentication) support
  • Secure session tokens with automatic refresh
  • Protected routes โ€” unauthenticated users redirected to login

๐Ÿ› ๏ธ Tech Stack

Frontend

Technology Purpose
React.js 18 + Vite Fast SPA with component-based UI
Tailwind CSS Utility-first dark-themed design system
Stream Video SDK WebRTC-powered HD video/audio calls
Clerk React SDK Auth UI components + session management
React Router v6 Client-side routing with protected routes
Axios HTTP client for REST API communication

Backend

Technology Purpose
Node.js + Express.js RESTful API server
MongoDB + Mongoose NoSQL database for sessions, users, problems
Clerk Backend SDK Server-side JWT verification
Stream Node SDK Server-side Stream token generation
WebSockets Real-time bidirectional communication

Cloud & Services

Service Role
MongoDB Atlas Managed cloud database
Stream SDK (GetStream.io) Real-time video/audio/chat infrastructure
Clerk Authentication-as-a-service (OAuth + MFA)
Vercel Frontend hosting & CI/CD

๐Ÿ“ Project Structure

TalentIQ/
โ”œโ”€โ”€ ๐Ÿ“‚ src/                          # React Frontend
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Interview/            # Video room, code editor, chat
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Dashboard/            # Session cards, stats
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Problems/             # DSA problem list & solver
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ Common/               # Navbar, buttons, loaders
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ pages/                    # Route-level pages
โ”‚   โ”‚   โ”œโ”€โ”€ HomePage.jsx
โ”‚   โ”‚   โ”œโ”€โ”€ DashboardPage.jsx
โ”‚   โ”‚   โ”œโ”€โ”€ InterviewRoom.jsx
โ”‚   โ”‚   โ””โ”€โ”€ ProblemsPage.jsx
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ hooks/                    # Custom React hooks
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ lib/                      # Stream & Clerk config
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ store/                    # Redux / state management
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ server/                       # Express Backend
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ controllers/
โ”‚   โ”‚   โ”œโ”€โ”€ session.controller.js    # Session CRUD
โ”‚   โ”‚   โ”œโ”€โ”€ user.controller.js       # User management
โ”‚   โ”‚   โ””โ”€โ”€ stream.controller.js     # Stream token generation
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ models/
โ”‚   โ”‚   โ”œโ”€โ”€ Session.js               # Interview session schema
โ”‚   โ”‚   โ”œโ”€โ”€ User.js                  # User profile schema
โ”‚   โ”‚   โ””โ”€โ”€ Problem.js               # DSA problem schema
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ routes/                   # Express route definitions
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ middleware/               # Clerk auth middleware
โ”‚   โ””โ”€โ”€ index.js                     # Server entry point
โ”‚
โ””โ”€โ”€ ๐Ÿ“„ README.md

๐Ÿ—„๏ธ Database Schema (Key Models)

// Session Model
{
  title,                    // Interview session title
  description,              // Session description
  status,                   // "upcoming" | "live" | "completed"
  startTime,                // Scheduled start time
  streamCallId,             // Stream SDK call reference
  participants: [ref โ†’ User],
  createdBy: ref โ†’ User,
  recordingUrl              // Cloudinary / Stream recording URL
}

// User Model
{
  clerkId,                  // Clerk external user ID
  name, email, image,
  sessionsCreated: [ref โ†’ Session],
  sessionsJoined:  [ref โ†’ Session]
}

// Problem Model
{
  title, difficulty,        // "Easy" | "Medium" | "Hard"
  category,                 // "Array", "String", "DP", etc.
  description,
  examples, constraints,
  starterCode              // Default code template
}

๐Ÿš€ Getting Started

Prerequisites

  • Node.js v18+
  • MongoDB Atlas account
  • Clerk account (free tier works)
  • Stream (GetStream.io) account (free tier works)

1. Clone the repository

git clone https://github.com/prashantsaraswat1/TalentIQ.git
cd TalentIQ

2. Setup Backend

cd server
npm install

Create server/.env:

MONGODB_URI=your_mongodb_atlas_uri
PORT=5000

# Clerk
CLERK_SECRET_KEY=sk_test_your_clerk_secret

# Stream SDK
STREAM_API_KEY=your_stream_api_key
STREAM_API_SECRET=your_stream_api_secret

3. Setup Frontend

cd ..
npm install

Create .env:

VITE_CLERK_PUBLISHABLE_KEY=pk_test_your_clerk_key
VITE_STREAM_API_KEY=your_stream_api_key
VITE_API_BASE_URL=http://localhost:5000/api

4. Run the app

# Terminal 1 โ€” Backend
cd server && npm run dev

# Terminal 2 โ€” Frontend
npm run dev

Open http://localhost:5173 ๐ŸŽ‰


๐Ÿ”Œ API Reference

Method Endpoint Auth Description
GET /api/sessions โœ… Clerk Get all sessions for user
POST /api/sessions โœ… Clerk Create new interview session
GET /api/sessions/:id โœ… Clerk Get session details
DELETE /api/sessions/:id โœ… Clerk Delete a session
POST /api/stream/token โœ… Clerk Generate Stream video token
GET /api/problems โœ… Clerk Get all practice problems
GET /api/problems/:id โœ… Clerk Get single problem
GET /api/users/me โœ… Clerk Get current user profile

โšก Technical Highlights

  • Stream SDK WebRTC โ€” sub-200ms latency video/audio for interview sessions
  • Clerk MFA โ€” enterprise-grade auth without building it from scratch
  • Real-time code sync โ€” WebSocket-powered collaborative editor
  • MongoDB schema design โ€” normalized session/user/problem relations
  • Protected routing โ€” Clerk middleware guards both frontend routes and backend APIs
  • Responsive dark UI โ€” Tailwind CSS with custom green accent design system

๐Ÿšข Deployment

Layer Platform Status
Frontend Vercel Live
Database MongoDB Atlas โœ… Live
Auth Clerk โœ… Live
Video/Chat Stream SDK โœ… Live

๐Ÿ”ฎ Future Roadmap

  • AI Mock Interviewer โ€” GPT-powered interviewer that asks questions in real-time
  • Code Execution Engine โ€” Run and test code inside the editor (Judge0 API)
  • Session Recordings Playback โ€” Review past interview recordings
  • Leaderboard โ€” Track top performers across practice problems
  • TypeScript migration โ€” End-to-end type safety
  • Docker containerization โ€” Simplified local setup and deployment
  • Mobile app โ€” React Native version for on-the-go practice

๐Ÿค Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'feat: add amazing feature'
  4. Push: git push origin feature/amazing-feature
  5. Open a Pull Request

๐Ÿ“„ License

Distributed under the MIT License. See LICENSE for more information.


๐Ÿ‘จโ€๐Ÿ’ป Author

Prashant Saraswat Full Stack Developer | MERN Stack | Real-Time Systems | Cloud Deployment

Portfolio LinkedIn GitHub Email


๐Ÿ”— Also check out my other projects

StudyNotion


If TalentIQ impressed you, please โญ star the repo โ€” it really helps!

Made with โค๏ธ and a lot of โ˜• by Prashant Saraswat

About

Real-time collaborative coding platform for technical interviews | Stream SDK, Clerk Auth, MERN Stack

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages