A comprehensive web application that helps you prepare for technical interviews using AI-generated questions, real-time speech recognition, advanced proctoring, and intelligent evaluation powered by Google Gemini AI.
Will upload soon
interviewMockerVideo.mp4
AI Interview Mocker is a professional interview preparation platform that simulates real interview conditions with advanced features designed to help you succeed:
|
|
|
|
- β¨ Completely Free - No hidden costs or premium tiers
- π¨ Modern UI/UX - Beautiful dark/light modes with smooth transitions
- π Blazing Fast - Built on Next.js 15 with App Router
- π± Fully Responsive - Works perfectly on desktop, tablet, and mobile
- οΏ½ Privacy First - Your data is secure with Clerk authentication
- π No Installation - Works in any modern browser
- β‘ Real-Time - Instant feedback and evaluation
- π Track Progress - Monitor improvement over time
|
|
|
User Input β AI Generation β Interview Setup
β β β
Job Details β 5 Questions β Proctoring Check
- Input: Job position, description, experience level
- Processing: Gemini AI generates 5 custom questions
- Output: Questions with expected answers
- Quality: Contextual, relevant, and challenging
- Variety: Mix of technical, behavioral, and situational
Webcam β β Microphone β β Screen Share β β Fullscreen β β Start
- Webcam: Live preview with mirror mode for natural appearance
- Microphone: Audio level indicator to ensure clear recording
- Screen Sharing: Validates full monitor (rejects window/tab selection)
- Fullscreen: Automatic entry on interview start with enforcement
- All Required: Interview won't start until all checks pass
Question Display:
- Current question number (e.g., "Question 1 of 5")
- Question text in large, readable font
- Expected answer reference (for preparation)
- Progress bar showing completion
Recording Interface:
- "Start Speaking" button (triggers fullscreen + recording)
- Real-time transcript display
- Speaking indicator (visual pulse effect)
- 50-second countdown timer with color transitions
- "Stop" button to end recording early
- "Save Answer" button (enabled when transcript ready)
Fullscreen Enforcement:
- Monitors fullscreen status every 2 seconds
- Shows warning modal immediately on exit
- Tracks exit count (1/3, 2/3, 3/3)
- "Re-Enter Fullscreen" button in modal
- Auto-redirects to dashboard after 3 violations
User Speech β Transcript β Correction β Evaluation β Results
β β β β β
Voice Input β Text β Grammar Fix β AI Score β Feedback
Step 1: Speech to Text
- Browser Web Speech API
- Real-time transcription
- Supports multiple languages
- Handles pauses and corrections
Step 2: Grammar Correction
- API:
/api/correct - Model: Gemini with retry logic
- Fixes: Spelling, grammar, punctuation
- Preserves: Meaning and technical terms
Step 3: AI Evaluation
- API:
/api/answers - Model: Gemini with multi-model fallback
- Scores: 4 categories (0-10 scale each)
- Output: JSON with detailed feedback
Scoring Categories:
-
Technical Accuracy (0-10)
- Correctness of technical concepts
- Use of proper terminology
- Accuracy of explanations
-
Completeness (0-10)
- Coverage of all aspects
- Depth of explanation
- Examples and scenarios
-
Clarity & Communication (0-10)
- Structured response
- Clear articulation
- Logical flow
-
Relevance (0-10)
- Answers the question asked
- Stays on topic
- Provides practical value
Overall Grade:
- 90-100%: A+ (Excellent)
- 85-89%: A (Outstanding)
- 80-84%: B+ (Very Good)
- 75-79%: B (Good)
- 70-74%: C+ (Satisfactory)
- 60-69%: C (Acceptable)
- Below 60%: D (Needs Improvement)
Overall Performance:
- Total score percentage
- Letter grade with visual badge
- Color-coded performance indicator
- Comparison with previous attempts
Detailed Breakdown:
- Category-wise scores with progress bars
- Strengths summary
- Areas for improvement
- Specific suggestions for each answer
Question-by-Question Review:
- Original question
- Your answer (corrected version)
- Expected answer reference
- AI evaluation feedback
- Improvement tips
- Key takeaways
- Framework: Next.js 15 (App Router)
- UI Library: React 19
- Styling: Tailwind CSS
- Components: shadcn/ui
- Icons: Lucide React
- Forms: React Hook Form
- API: Next.js API Routes
- Database: PostgreSQL (Neon Serverless)
- ORM: Drizzle ORM
- Authentication: Clerk
- AI Model: Google Gemini 1.5 Flash
- Speech Recognition: Web Speech API (react-speech-recognition)
- Video: react-webcam
- Screen Sharing: Screen Capture API
- Notifications: react-hot-toast
- Platform: Vercel (recommended)
- Database: Neon PostgreSQL
- CDN: Vercel Edge Network
ai-interview-mocker/
βββ app/
β βββ (auth)/ # Authentication pages
β β βββ sign-in/
β β βββ sign-up/
β βββ api/ # API Routes
β β βββ gemini/ # Interview question generation
β β βββ correct/ # Spelling correction
β β βββ answers/ # Answer submission & evaluation
β β βββ interview/ # Interview CRUD operations
β β βββ quiz/ # Quiz generation & submission
β βββ dashboard/
β β βββ interview/
β β β βββ [interviewId]/
β β β βββ page.jsx # Interview setup (webcam, screen share)
β β β βββ start/ # Interview page (questions & recording)
β β β β βββ page.jsx # Main interview interface
β β β β βββ _components/
β β β β βββ QuestionSection.jsx
β β β β βββ RecordAnswerSection.jsx # Recording logic
β β β βββ feedback/
β β β βββ page.jsx # Evaluation results
β β βββ questions/ # Quiz system
β β β βββ page.jsx # Quiz dashboard
β β β βββ quiz/[quizId]/ # Quiz taking interface
β β β βββ results/[resultId]/ # Quiz results
β β βββ how-it-works/
β β βββ page.jsx # Main dashboard
β βββ how-it-works/ # Landing page features
β βββ globals.css # Global styles
β βββ layout.js # Root layout with Clerk provider
β βββ page.js # Landing page
βββ components/ui/ # shadcn/ui components
β βββ button.jsx
β βββ card.jsx
β βββ dialog.jsx
β βββ progress.jsx
β βββ ...
βββ utils/
β βββ db.js # Drizzle database connection
β βββ schema.js # Database schema definitions
βββ middleware.js # Clerk authentication middleware
βββ drizzle.config.js # Drizzle ORM configuration
βββ next.config.mjs # Next.js configuration
βββ package.json # Dependencies
βββββββββββββββ ββββββββββββββββ βββββββββββββββ
β Landing ββββββββββΆβ Dashboard ββββββββββΆβ Create New β
β Page β Login β View All β Click β Interview β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β AI Question Generation (Gemini) β
β β’ Job Position β
β β’ Description β
β β’ Experience Level β
β β Generates 5 Custom Questions β
ββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Proctoring Setup Phase β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β Webcam Preview (Mirror Mode) β
β β Microphone Level Testing β
β β Screen Share (Full Monitor Validation) β
β β All Checks Pass β Enable "Start Interview" Button β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββ
β Fullscreen β
β Auto-Entry β
ββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββ
βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ
β Interview Page ββββββββββ Navigation βββββββββββββββββΆβ Fullscreen β
β (Questions 1-5) β β Enforcement β
ββββββββββββββββββββ ββββββββββββββββββββ
β β
β For Each Question: β
βΌ βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π€ Recording Phase β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. Display Question & Expected Answer β
β 2. Click "Start Speaking" β Enter Fullscreen + Start Recording β
β 3. Real-time Transcription (Web Speech API) β
β 4. 50-Second Countdown Timer β
β 5. Speaking Indicator (Visual Pulse) β
β 6. "Stop" Button (End Recording Early) β
β 7. Preview Transcript Before Saving β
β 8. "Save Answer" β Process with AI β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π€ AI Processing Pipeline β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Step 1: POST /api/correct β
β ββ Input: Raw transcript β
β ββ Model: Gemini 1.5 Flash β
β ββ Action: Fix spelling, grammar, punctuation β
β ββ Output: Corrected text β
β β
β Step 2: POST /api/answers β
β ββ Input: Corrected answer + question + expected answer β
β ββ Model: Gemini 1.5 Flash (with fallback) β
β ββ Action: Evaluate on 4 categories (0-10 each) β
β ββ Categories: β
β β β’ Technical Accuracy β
β β β’ Completeness β
β β β’ Clarity & Communication β
β β β’ Relevance β
β ββ Output: JSON feedback with overall grade β
β β
β Step 3: Database Storage β
β ββ Table: userAnswers (corrected answer, rating) β
β ββ Table: correctedAnswers (original vs corrected) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββ
β Repeat for All 5 Questions β
βββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Results & Feedback Page β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π Overall Performance β
β β’ Total Score: 85/100 (Grade: A) β
β β’ Visual Badge with Color Coding β
β β
β π Category Breakdown (Progress Bars) β
β β’ Technical Accuracy: 9/10 β
β β’ Completeness: 8/10 β
β β’ Clarity & Communication: 9/10 β
β β’ Relevance: 8/10 β
β β
β β
Strengths: β
β β’ Clear explanation of concepts β
β β’ Good use of examples β
β β
β β οΈ Areas for Improvement: β
β β’ Could provide more depth β
β β’ Consider mentioning edge cases β
β β
β π Question-by-Question Review β
β For each question: β
β β’ Original question text β
β β’ Your corrected answer β
β β’ Expected answer reference β
β β’ AI evaluation feedback β
β β’ Specific improvement tips β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π― INTERVIEW RESULTS β
β Full Stack Developer - 3 years experience β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Overall Score: 85/100 β β
β β Grade: A (Outstanding) [π’ Badge] β β
β β ββββββββββββββββββββββββββββ 85% β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β π Category Breakdown: β
β ββ Technical Accuracy: 9/10 ββββββββββββββ β
β ββ Completeness: 8/10 ββββββββββββββ β
β ββ Clarity & Communication: 9/10 ββββββββββββββ β
β ββ Relevance: 8/10 ββββββββββββββ β
β β
β β
Strengths: β
β β’ Clear explanation of React concepts β
β β’ Good use of practical examples β
β β’ Demonstrated hands-on experience β
β β
β β οΈ Areas for Improvement: β
β β’ Could provide more depth on performance optimization β
β β’ Consider mentioning advanced patterns like custom hooks β
β β’ Discuss testing strategies for React components β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π Question-by-Question Analysis: β
β β
β [Question 1 of 5] βΌ β
β Q: Explain your experience with React hooks... β
β Your Answer: React hooks like useState and useEffect... β
β Expected: React hooks are functions that let you... β
β Score: 85% (A) β
β Feedback: Strong answer with clear examples... β
β β
β [π₯ Download PDF Report] [π§ Email Results] [π Retake] β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β React Quiz - Medium Difficulty β° 15 seconds β
β Question 5 of 10 β
β Progress: βββββββββββββββββββββββ 50% β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β What is the purpose of useEffect hook in React? β
β β
β β To manage component state β
β β To perform side effects in components β
β
β β To create custom hooks β
β β To optimize component rendering β
β β
β [Skip Question β] β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Features:
- β±οΈ Live countdown timer
- π Visual progress bar
- β Instant feedback (green for correct, red for incorrect)
- βοΈ Auto-progress after 2-second feedback
- πΆ Skip option (counts as incorrect)
- πΎ Auto-save on answer selection
- π Loading states between questions
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π QUIZ COMPLETED β
β React - Medium Difficulty - 10 Questions β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Final Score: 80% β
β ββββββββββββββββββββ 8/10 correct β
β β
β π Performance Breakdown: β
β ββββββββββββββββββββββββββββββββββββββββ β
β β β
Correct: 8 questions β β
β β β Incorrect: 2 questions β β
β β βοΈ Skipped: 0 questions β β
β β β±οΈ Avg Time: 12 sec/question β β
β ββββββββββββββββββββββββββββββββββββββββ β
β β
β π Performance Graph: β
β [Visual bar chart showing Q1-Q10 correctness] β
β β
β π Detailed Review: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Q1: What is JSX? β
β β
β β Your Answer: JavaScript XML β β
β β Status: Correct β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β Q2: Purpose of useState? β β β
β β Your Answer: Handle side effects β β
β β Correct Answer: Manage component state β β
β β Explanation: useState is a hook for state... β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [π Retake Quiz] [π New Quiz] [π₯ Download Report] β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ