Skip to content

yuvaraj2selvam/takeint-ai-interview-platform

Repository files navigation

🤖TakeInt-AI Mock Interview Platform

Practice technical & behavioral interviews with AI voice agents, instant feedback, and performance analytics.

Next.js TypeScript React Prisma NextAuth shadcn/ui Gemini Vapi

Tech Stack: Next.js • React • TypeScript • Prisma • NextAuth • Google Gemini API • Vapi (voice agents) • shadcn/ui • Tailwind CSS


✨ Overview

AI Mock Interview Platform helps candidates rehearse interviews with realistic voice-driven agents and structured question sets. It generates tailored questions (role, level, skills), records responses (voice), scores performance, summarizes strengths & gaps, and tracks progress over time.

  • Voice Interviews: Real-time AI voice via Vapi (web calling + event webhooks).
  • Question Generation: Google Gemini for role-aware question sets.
  • Feedback & Summaries: Gemini-based rubric, strengths, and next steps.
  • Authentication: NextAuth with Google Sign-In + Credentials (demo accounts supported).
  • UI: shadcn/ui components with Tailwind CSS.
  • Data: Prisma ORM (PostgreSQL by default).
  • Pages: Landing, Interview Studio, History, Dashboard (Skill & Session analytics), Settings.

📸 Media

Landing Page
landing-page
Dashboard — Skills Performance
dashboard
Mock Interview Studio
mock-interview
Interview Panel
interview

🎥 Video Walkthrough
▶️ Watch the demo video here


🧱 Architecture

  • App Router (Next.js) with server actions for secure data ops.
  • NextAuth for sessions (JWT) with Google provider + Credentials provider.
  • Prisma schema with User, Interview, Question, Answer, Score,Transcript.
  • Vapi session init on the client, server-side webhook (/api/vapi/webhook) for call events & transcripts.
  • Gemini used server-side for question generation, summaries, and feedback .
  • shadcn/ui for accessible, consistent components; charts via a lightweight React chart lib.

✅ Features

  • Role-based Templates: Option to create custom mock interviews.
  • Interview Modes: Behavioral, Algo/DSA, System Design, Mixed.
  • Voice : Speak with the agent .
  • Scoring: Evaluated across key dimensions — Problem Solving, System Design, Communication Skills, Technical Accuracy, Behavioral Responses, and Time Management.
  • Feedback: Bullet tips, improvement plan, follow-up questions.
  • History: All sessions with transcripts & audio replays.
  • Dashboard: Skill radar, progress over time, topic heat-map.

🔧 Requirements

  • Node.js 18+ (suggested 20+)
  • PNPM / Yarn / NPM (examples use pnpm)
  • Database: PostgreSQL (default)
  • Environment variables configured (see below)

🔐 Environment Variables

Create .env.local in the project root:

# NextAuth
AUTH_SECRET=
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=

# URLs
NEXT_PUBLIC_BASE_URL=http://localhost:3000

# Voice Agents (Vapi)
NEXT_PUBLIC_VAPI_TOKEN=

# Database (Postgres example)
DATABASE_URL=

# Google Gemini
GOOGLE_GENERATIVE_AI_API_KEY=

Tip: Generate AUTH_SECRET with openssl rand -base64 32


🗣️ Voice (Vapi) Integration

  • Client: Initialize Vapi with NEXT_PUBLIC_VAPI_TOKEN; start/stop calls from the Interview .
  • Server: POST /api/vapi/webhook receives call events, partial/final transcripts, and stores them via Prisma.
  • Sync: On-call end, the transcript triggers Gemini summarization + scoring.

🧠 Google Gemini Usage

  • Question Generation: Creates interview questions based on role, level, and skills.
  • Feedback: Provides detailed interview feedback — scores, strengths, improvements, and follow-up suggestions.

🧭 Key Pages

  • Landing – Marketing info, feature highlights, and call-to-action (sign in / get started).
  • Dashboard – Skill radar, recent improvements, session trends, and quick actions.
  • Create Interview – Build a custom mock interview (role, skills, level, mode).
  • Mock Interview List – View all created mock interviews and select one to take.
  • Interview Panel – Live interview space (voice and real-time Q&A).
  • History – Past sessions with transcripts and feedback.

Made with ❤️ using Next.js, TypeScript, Prisma, NextAuth, shadcn/ui, Vapi, and Google Gemini.