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.
| 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 |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 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 โ
โโโโโโโโโโโโโโโโโโโโโโโโ
- 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
- View all active and past interview sessions
- Create new sessions with one click
- Track total sessions completed
- Live session status indicator
- 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
- 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
| 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 |
| 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 |
| 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 |
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
// 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
}- Node.js v18+
- MongoDB Atlas account
- Clerk account (free tier works)
- Stream (GetStream.io) account (free tier works)
git clone https://github.com/prashantsaraswat1/TalentIQ.git
cd TalentIQcd server
npm installCreate 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_secretcd ..
npm installCreate .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# Terminal 1 โ Backend
cd server && npm run dev
# Terminal 2 โ Frontend
npm run devOpen http://localhost:5173 ๐
| 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 |
- 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
| Layer | Platform | Status |
|---|---|---|
| Frontend | Vercel | |
| Database | MongoDB Atlas | โ Live |
| Auth | Clerk | โ Live |
| Video/Chat | Stream SDK | โ Live |
- 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
Contributions are welcome!
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'feat: add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Prashant Saraswat Full Stack Developer | MERN Stack | Real-Time Systems | Cloud Deployment
If TalentIQ impressed you, please โญ star the repo โ it really helps!
Made with โค๏ธ and a lot of โ by Prashant Saraswat




