AI-powered mock interview platform that simulates real interviews with voice, code, and smart feedback โ so you walk in prepared, not surprised.
Demo โข
Features โข
Tech Stack โข
Architecture โข
Getting Started โข
API Endpoints โข
Future Scope
Dashboard
Resume Analyzer
Interview Room
๐ธ Tip for recruiters: Clone + run with npm run dev in both /client and /server, or check the Getting Started section below.
๐ค AI Question Generation โ Gemini AI generates role-specific, dynamic interview questions (DSA, Core CS, System Design, HR)
๐๏ธ Real-Time Voice Transcription โ Azure AI Speech-to-Text converts your spoken answers to text live, during the interview
๐ป In-Browser Code Editor โ Monaco Editor (same as VS Code) with Judge0 API for multi-language code execution & evaluation
๐ Smart Resume Analyzer โ Upload your PDF resume; Gemini AI scores it and suggests targeted improvements
๐ Performance Analytics โ Visual dashboards showing your weak topics, score trends, and interview history using Recharts
๐ Leaderboard โ Compete with other users and track your rank across sessions
๐ AI Flashcards โ Auto-generated flashcards based on your weak areas to help you revise smarter
๐ PDF Report Export โ Download a detailed performance report for any completed interview session
๐ Secure Auth โ Firebase Authentication (Google + Email/Password) + JWT-based session management
๐ข Company-Specific Prep โ Tailored question sets based on target company interview patterns
Technology
Purpose
React 18 + Vite + TypeScript
Core UI framework
Tailwind CSS + Radix UI
Styling & accessible component primitives
React Router v7
Client-side navigation
Monaco Editor (@monaco-editor/react)
In-browser code editor (VS Code engine)
Azure AI Speech SDK
Real-time speech-to-text in browser
Firebase JS SDK
Google/Email authentication
Recharts
Performance analytics charts
Axios
HTTP client
Technology
Purpose
Node.js + Express.js + TypeScript
REST API server
MongoDB + Mongoose
Database & ODM
Firebase Admin SDK
Server-side auth token verification
Google Gemini AI API
Question generation, answer review, resume analysis
Judge0 API (via RapidAPI)
Sandboxed multi-language code execution
PDFKit
Dynamic PDF report generation
Multer
PDF resume file upload handling
JWT + bcryptjs
Session tokens & password hashing
Serverless HTTP
AWS Lambda adapter
Service
Role
AWS Lambda + API Gateway
Serverless backend deployment
Netlify
Frontend hosting
MongoDB Atlas
Cloud database
Docker
Containerized backend (Dockerfile included)
MockMate/
โโโ client/ # Frontend (React + Vite)
โ โโโ src/
โ โ โโโ api/ # Axios API call wrappers
โ โ โโโ components/ # Reusable UI components
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ pages/ # Route-level page components
โ โ โ โโโ Dashboard.tsx
โ โ โ โโโ CreateInterview.tsx
โ โ โ โโโ InterviewInterfacePage.tsx
โ โ โ โโโ InterviewDetails.tsx
โ โ โ โโโ InterviewHistory.tsx
โ โ โ โโโ ResumeAnalyzer.tsx
โ โ โ โโโ Analyzer.tsx
โ โ โ โโโ Flashcards.tsx
โ โ โ โโโ Leaderboard.tsx
โ โ โ โโโ LandingPage.tsx
โ โ โ โโโ LoginPage.tsx
โ โ โ โโโ SignupPage.tsx
โ โ โโโ types/ # TypeScript type definitions
โ โ โโโ utils/ # Helper utilities
โ โโโ .env # Client env vars (see below)
โ
โโโ server/ # Backend (Node.js + Express)
โ โโโ src/
โ โ โโโ config/ # App configuration
โ โ โโโ controllers/ # Route handler logic
โ โ โ โโโ gemini.controllers.ts # AI question gen & review
โ โ โ โโโ mockinterview.controllers.ts
โ โ โ โโโ resume.controllers.ts # PDF parsing + AI analysis
โ โ โ โโโ judge0.controllers.ts # Code execution
โ โ โ โโโ report.controllers.ts # PDF report generation
โ โ โ โโโ analytics.controllers.ts # Performance weakness detection
โ โ โ โโโ leaderboard.controllers.ts
โ โ โ โโโ learning.controllers.ts
โ โ โ โโโ user.controllers.ts
โ โ โโโ database/ # MongoDB connection
โ โ โโโ firebase/ # Firebase Admin setup
โ โ โโโ middlewares/ # Auth middleware (JWT)
โ โ โโโ models/ # Mongoose schemas
โ โ โโโ routes/ # Express route definitions
โ โ โโโ types/ # TypeScript types
โ โ โโโ utils/ # Async handler, helpers
โ โโโ Dockerfile
โ โโโ .env # Server env vars (see below)
โ
โโโ README.md
Node.js v18+
MongoDB Atlas account (or local MongoDB)
Google Gemini API key
Azure Cognitive Services account (for Speech-to-Text)
Firebase project
RapidAPI account with Judge0 subscribed
git clone https://github.com/VedantPawar05/Mockmate.git
cd Mockmate
Create a .env file in /server (see Environment Variables ):
cp .env.example .env # then fill in your values
npm run dev # Starts on http://localhost:8000
Create a .env file in /client:
cp .env.example .env # then fill in your values
npm run dev # Starts on http://localhost:5173
๐ Environment Variables
# Database
MONGO_URI = # MongoDB Atlas connection string
# Auth
JWT_SECRET = # Random secret string for JWT signing
# CORS
FRONTEND_URL = http://localhost:5173
# Google Gemini AI
GEMINI_API_KEY = # From https://aistudio.google.com/
# Firebase Admin (for server-side token verification)
FIREBASE_ACCOUNT_PROJECT_ID =
FIREBASE_ACCOUNT_CLIENT_EMAIL =
FIREBASE_ACCOUNT_PRIVATE_KEY = # Multi-line key โ wrap in quotes
# Judge0 (Code Execution via RapidAPI)
JUDGE0_API_URL = https://judge0-ce.p.rapidapi.com
JUDGE0_API_KEY = # From https://rapidapi.com/judge0-official/api/judge0-ce
JUDGE0_API_HOST = judge0-ce.p.rapidapi.com
# Backend API
VITE_API_BASE_URL = http://localhost:8000
# Azure AI Speech-to-Text
VITE_AZURE_SUBSCRIPTION_KEY = # From Azure Cognitive Services
VITE_AZURE_REGION = # e.g. eastus
# Firebase (from Firebase Console โ Project Settings)
VITE_FIREBASE_API_KEY =
VITE_FIREBASE_AUTH_DOMAIN =
VITE_FIREBASE_PROJECT_ID =
VITE_FIREBASE_STORAGE_BUCKET =
VITE_FIREBASE_MESSAGING_SENDER_ID =
VITE_FIREBASE_APP_ID =
VITE_FIREBASE_MEASUREMENT_ID =
Auth & Users โ /api/users
Method
Endpoint
Description
Auth
POST
/register
Register new user
โ
POST
/login
Login with email/password
โ
GET
/getuserdetails
Get logged-in user profile
โ
GET
/dashboard-stats
Get user's dashboard stats
โ
PUT
/edit
Update user profile
โ
POST
/logout
Logout user
โ
Mock Interviews โ /api/mockinterview
Method
Endpoint
Description
Auth
POST
/create
Create a new interview session
โ
GET
/
Get all interviews for user
โ
GET
/:id
Get interview by ID
โ
PUT
/edit/:id
Update interview session
โ
DELETE
/delete/:id
Delete interview session
โ
Method
Endpoint
Description
Auth
POST
/generatequestions
Generate role-specific interview questions
โ
POST
/generatereview
AI review & score of a submitted answer
โ
Method
Endpoint
Description
Auth
GET
/leaderboard
Get global leaderboard rankings
โ
POST
/resume/analyze
Upload PDF resume & get AI analysis
โ
POST
/execute
Execute code via Judge0
โ
GET
/reports/pdf/:sessionId
Download PDF performance report
โ
GET
/companies
Get all company interview configs
โ
GET
/companies/:companyName
Get config for specific company
โ
Learning โ /api/learning
Method
Endpoint
Description
Auth
GET
/playlist/:topic
Get learning playlist by topic
โ
POST
/progress
Save learning progress
โ
GET
/progress/:userId
Get user's learning progress
โ
DELETE
/progress/:userId/:topic
Reset progress for a topic
โ
Analytics โ /api/analytics
Method
Endpoint
Description
Auth
GET
/weakness
Get AI-analyzed weak areas from history
โ
๐ค Peer-to-Peer Mock Interviews โ Real-time collaborative interviews between two users via WebRTC
๐ง Adaptive Difficulty โ Questions that get harder/easier based on live performance signals
๐ฑ Mobile App โ React Native port for on-the-go interview prep
๐ LinkedIn Integration โ Auto-populate job role from LinkedIn profile for instant personalized prep
๐ Multilingual Support โ Azure STT + Gemini to support interviews in regional languages
๐น Video Analysis โ Webcam-based posture, eye contact, and confidence scoring using MediaPipe
๐ข Enterprise Dashboard โ For companies to run structured technical screening pipelines
๐ Streak & Notifications โ Daily practice streaks with push notifications to keep users consistent
Pull requests are welcome! Feel free to open an issue first to discuss what you'd like to change.
This project is open-source. See the LICENSE file for details.
Made with โค๏ธ by Vedant Pawar