Skip to content

vishal-kumar3/interview-ai

Repository files navigation

Interview AI πŸ€–πŸ’Ό

An intelligent AI-powered interview preparation platform that helps candidates practice and improve their interview skills through realistic simulations, personalized feedback, and comprehensive performance analytics.

πŸ“– Overview

Interview AI is a comprehensive interview preparation platform that leverages artificial intelligence to create realistic interview experiences. The platform analyzes your resume and target job descriptions to generate personalized interview questions, provides real-time feedback on your responses, and tracks your progress over time.

✨ Key Features

🎯 Smart Interview System

  • AI-Powered Question Generation: Dynamic questions based on your resume and job requirements
  • Multiple Interview Types: Technical, Behavioral, and Situational interviews
  • Adaptive Difficulty: Beginner, Intermediate, and Advanced levels
  • Follow-up Questions: Intelligent follow-up questions based on your responses
  • Real-time Audio Recording: High-quality audio capture with visual feedback

πŸ“„ Document Management

  • Resume Parser: AI-powered resume analysis and skill extraction
  • Job Description Analysis: Intelligent parsing of job requirements and responsibilities
  • Document Storage: Secure cloud storage with AWS S3 integration
  • Multiple Format Support: PDF parsing and text extraction

πŸ“Š Performance Analytics

  • Detailed Feedback: AI-generated feedback on each response
  • Performance Scoring: Comprehensive scoring system with improvement suggestions
  • Progress Tracking: Historical performance data and trend analysis
  • Hire Recommendations: AI assessment with hiring recommendations
  • Strengths & Weaknesses: Detailed analysis of your interview performance

πŸ” Authentication & Security

  • NextAuth.js Integration: Secure authentication with multiple providers
  • Email Verification: Account verification system
  • Password Reset: Secure password recovery
  • Role-based Access: User and admin role management

🎨 User Experience

  • Modern UI/UX: Clean, responsive design with Tailwind CSS
  • Real-time Updates: Live feedback and progress indicators
  • Audio Playback: Review your recorded responses
  • Dashboard Analytics: Comprehensive overview of your interview history

πŸ› οΈ Technology Stack

Frontend

  • Next.js 15 - React framework with App Router
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first CSS framework
  • Framer Motion - Animation library
  • Radix UI - Accessible component primitives
  • React Hook Form - Form state management
  • Zod - Schema validation

Backend & Database

  • Prisma - Database ORM
  • PostgreSQL - Primary database
  • NextAuth.js - Authentication system
  • Redis - Caching and session management

AI & ML

  • Google Gemini AI - Text generation and analysis
  • PDF Processing - Resume and job description parsing
  • Audio Processing - Speech-to-text transcription

Cloud Services

  • AWS S3 - File storage
  • Vercel - Deployment platform

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • Redis instance
  • Google Gemini AI API key
  • AWS S3 credentials

Installation

  1. Clone the repository
git clone <repository-url>
cd interview-ai
  1. Install dependencies
npm install
  1. Environment Setup Create a .env.local file in the root directory:
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/interview_ai"

# Authentication
AUTH_SECRET="your-auth-secret"
AUTH_TRUST_HOST="http://localhost:3000"

# OAuth Providers
AUTH_GITHUB_CLIENT_ID="your-github-client-id"
AUTH_GITHUB_CLIENT_SECRET="your-github-client-secret"
AUTH_GOOGLE_CLIENT_ID="your-google-client-id"
AUTH_GOOGLE_CLIENT_SECRET="your-google-client-secret"

# AI Services
GEMINI_API_KEY="your-gemini-api-key"
GEMINI_MODEL="gemini-1.5-flash"

# AWS S3
AWS_ACCESS_KEY_ID="your-aws-access-key"
AWS_SECRET_ACCESS_KEY="your-aws-secret-key"
AWS_REGION="your-aws-region"
AWS_S3_BUCKET="your-s3-bucket"

# Redis
REDIS_URL="redis://localhost:6379"

# Email (Optional)
NODEMAILER_EMAIL="your-email@example.com"
NODEMAILER_PASS="your-email-password"

# App Configuration
WEB_NAME="AI Interview Platform"
  1. Service Via Docker
docker compose up # -d flag to run service in background
  1. Database Setup
# Generate Prisma client
npm run prisma:generate

# Run database migrations
npm run prisma:migrate:dev

# (Optional) Open Prisma Studio
npm run prisma:studio
  1. Start Development Server
npm run dev

Open http://localhost:3000/dashboard to view the application.

πŸ“ Project Structure

src/
β”œβ”€β”€ actions/           # Server actions for data operations
β”œβ”€β”€ app/              # Next.js App Router pages
β”œβ”€β”€ auth/             # Authentication configuration
β”œβ”€β”€ components/       # Reusable UI components
β”œβ”€β”€ config/           # Database and service configurations
β”œβ”€β”€ lib/              # Utility libraries and helpers
β”œβ”€β”€ schema/           # Zod validation schemas
β”œβ”€β”€ types/            # TypeScript type definitions
└── utils/            # Utility functions

πŸ”§ Available Scripts

# Development
npm run dev              # Start development server with Turbopack

# Database
npm run prisma:generate  # Generate Prisma client
npm run prisma:migrate:dev    # Run database migrations
npm run prisma:migrate:deploy # Deploy migrations (production)
npm run prisma:studio    # Open Prisma Studio
npm run prisma:db:push   # Push schema to database

# Build & Deploy
npm run build           # Build for production
npm run start           # Start production server
npm run lint            # Run ESLint

πŸ— Architecture Overview

Authentication Flow

  • Multi-provider OAuth (GitHub, Google)
  • Secure session management with NextAuth.js
  • Protected routes and API endpoints

AI Integration

  • Resume Parsing: Extract structured data from PDF resumes
  • Job Description Analysis: Parse requirements and generate questions
  • Interview Simulation: Dynamic conversation flow with context awareness
  • Feedback Generation: Comprehensive performance analysis

Data Flow

  1. User uploads resume/job description
  2. AI processes and extracts relevant information
  3. System generates targeted interview questions
  4. Real-time interview simulation with audio processing
  5. AI provides detailed feedback and suggestions

πŸ” Security

  • Environment variable validation
  • Input sanitization with Zod schemas
  • Secure file upload with type validation
  • Protected API routes with authentication
  • SQL injection prevention with Prisma

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ”„ Version History

  • v1.0.0 - Initial release with core interview features
  • v1.1.0 - Added audio analysis and advanced feedback
  • v1.2.0 - Enhanced UI/UX and performance improvements

About

An intelligent interview preparation platform powered by AI that helps candidates practice and improve their interview skills through realistic simulations, personalized feedback, and comprehensive analysis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages