Skip to content

About

An AI-powered mock interview platform that simulates real interview experiences with interactive question flows and feedback. Built using React, TypeScript, Vite, Tailwind CSS, and Firebase to help users practice and improve their interview skills.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

InterviewPilotπŸ€–βœ¨

InterviewPilot is a state-of-the-art, AI-powered mock interview preparation platform designed to help candidates build confidence, refine their communication skills, and ace real-world job interviews. By combining AI-driven resume parsing, customized question generation, interactive voice-synchronized avatars, and instant performance feedback, InterviewPilot acts as a personal, 24/7 mock interviewer.


🌐 Live Demo

πŸ”— Live Website: InterviewPilot


πŸ“Έ Screenshots


🌟 Key Features

  • πŸ“„ AI Resume Analyzer: Upload your resume in PDF format. The backend extracts text using pdfjs-dist and leverages OpenAI's gpt-4o-mini (via OpenRouter) to identify your roles, experience level, core projects, and technical skills automatically.
  • βš™οΈ Customizable Interview Sessions: Set up tailored mock interviews. Choose your target role, experience, and mode (Technical or HR), or use the auto-extracted resume details.
  • 🎭 Real-Time Voice & Video Avatars:
    • Live animated female/male AI avatars (female-ai.mp4 / male-ai.mp4) that are synchronized with the Speech Synthesis.
    • Interactive speech options using the browser's Web Speech API (webkitSpeechRecognition for speech-to-text response tracking and speechSynthesis for natural voice pacing).
    • Time-limited questions categorized by a structured difficulty curve:
      • Question 1 & 2 β†’ Easy (60-second limit)
      • Question 3 & 4 β†’ Medium (90-second limit)
      • Question 5 β†’ Hard (120-second limit)
  • πŸ“Š Real-time AI Evaluation: Submissions are graded immediately on a scale of 0-10 across three vital categories:
    • Confidence: Focuses on clarity, speed, and presentation.
    • Communication: Evaluates simplicity and structure.
    • Correctness: Assesses relevance and accuracy.
    • Provides instant, constructive, 10–15 word professional feedback.
  • πŸ“ˆ Rich Analytics Dashboard: Get a breakdown of overall scores, skill evaluations, and performance trends using interactive charts (via Recharts and react-circular-progressbar).
  • πŸ—‚οΈ History Tracking: Track past interviews, analyze performance progression over time, and revisit previous reports.
  • πŸ“„ Professional PDF Reports: Download structured performance reports containing scores, advice, and detailed question-by-question breakdowns using jsPDF and jspdf-autotable.
  • πŸ’³ Built-In Subscription & Payments: Start with 100 free credits (50 credits consumed per interview). Recharge using the integrated Razorpay Payment Gateway (Starter Pack: β‚Ή100 for 150 credits; Pro Pack: β‚Ή500 for 650 credits).

πŸ› οΈ Tech Stack

Frontend

  • Framework: React 19 + Vite
  • State Management: Redux Toolkit (auth tracking & profile info)
  • Routing: React Router DOM (v7)
  • Styling: Tailwind CSS (v4)
  • Animations: Framer Motion (motion)
  • Visual Analytics: Recharts, React Circular Progressbar
  • PDF Generation: jsPDF, jsPDF AutoTable
  • Browser APIs: Web Speech API (SpeechSynthesis, webkitSpeechRecognition)

Backend

  • Runtime: Node.js
  • Framework: Express.js (v5)
  • Database: MongoDB (via Mongoose ODM)
  • Authentication: Firebase Google Authentication (Client SDK) + JWT Cookies (HTTP-only)
  • File Upload: Multer
  • PDF Parsing: PDFJS-Dist
  • Payment Processing: Razorpay Node SDK
  • AI Engine: OpenRouter API (openai/gpt-4o-mini)

πŸ“ Project Structure

InterviewPilot/
β”œβ”€β”€ client/                     # Frontend Application (Vite + React)
β”‚   β”œβ”€β”€ public/                 # Static Assets
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assets/             # Images, icons, and AI avatar videos
β”‚   β”‚   β”‚   └── videos/         # male-ai.mp4 & female-ai.mp4
β”‚   β”‚   β”œβ”€β”€ components/         # Reusable layouts and step managers
β”‚   β”‚   β”‚   β”œβ”€β”€ AuthModel.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Step1SetUp.jsx  # Interview configuration & resume parsing
β”‚   β”‚   β”‚   β”œβ”€β”€ Step2Interview.jsx # Avatar rendering & Web Speech recognition
β”‚   β”‚   β”‚   β”œβ”€β”€ Step3Report.jsx # Analytics and PDF export options
β”‚   β”‚   β”‚   └── Timer.jsx       # Custom circular time tracker
β”‚   β”‚   β”œβ”€β”€ pages/              # Main routing views
β”‚   β”‚   β”‚   β”œβ”€β”€ Auth.jsx        # Login gateway using Google
β”‚   β”‚   β”‚   β”œβ”€β”€ Home.jsx        # Dashboard & setup container
β”‚   β”‚   β”‚   β”œβ”€β”€ InterviewHistory.jsx # List of previous sessions
β”‚   β”‚   β”‚   β”œβ”€β”€ InterviewPage.jsx # Core test container
β”‚   β”‚   β”‚   β”œβ”€β”€ InterviewReport.jsx # Report viewer
β”‚   β”‚   β”‚   └── Pricing.jsx     # Subscription plan selector & payments
β”‚   β”‚   β”œβ”€β”€ redux/              # Redux slices and global store
β”‚   β”‚   β”œβ”€β”€ utils/              # Firebase client helper
β”‚   β”‚   β”œβ”€β”€ App.jsx             # Route mapping & user fetcher
β”‚   β”‚   β”œβ”€β”€ index.css           # Tailwind system configuration
β”‚   β”‚   └── main.jsx            # DOM bootstrapping
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”‚
└── server/                     # Backend API Service (Express)
    β”œβ”€β”€ config/                 # DB connectors & token signing rules
    β”œβ”€β”€ controllers/            # Controller layers
    β”‚   β”œβ”€β”€ auth.controller.js
    β”‚   β”œβ”€β”€ interview.controller.js
    β”‚   β”œβ”€β”€ payment.controller.js
    β”‚   └── user.controller.js
    β”œβ”€β”€ middlewares/            # Token validators and file upload configuration
    β”‚   β”œβ”€β”€ isAuth.js           # JWT cookie authenticator
    β”‚   └── multer.js           # Local resume storage configuration
    β”œβ”€β”€ models/                 # Mongoose schemas
    β”‚   β”œβ”€β”€ interview.model.js
    β”‚   β”œβ”€β”€ payment.model.js
    β”‚   └── user.model.js
    β”œβ”€β”€ routes/                 # Express route configurations
    β”œβ”€β”€ services/               # Integrations
    β”‚   β”œβ”€β”€ openRouter.service.js # AI prompts and API handler
    β”‚   └── razorpay.service.js   # Razorpay client instance builder
    β”œβ”€β”€ index.js                # Server entry point
    └── package.json

βš™οΈ Environment Variables

Before starting the applications, configure the environment files in both the client and server root directories.

1. Backend (/server/.env)

Create a file named .env in the server directory:

PORT=8000
MONGODB_URL=your_mongodb_connection_string
JWT_SECRET=your_jwt_signing_secret
OPENROUTER_API_KEY=your_openrouter_api_key
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_key_secret

2. Frontend (/client/.env)

Create a file named .env in the client directory:

VITE_FIREBASE_APIKEY=your_firebase_api_key
VITE_RAZORPAY_KEY_ID=your_razorpay_key_id

πŸš€ Installation & Setup

Follow these steps to run the application locally.

Prerequisites

  • Node.js (v18 or higher recommended)
  • MongoDB instance (Atlas or local compass setup)

Step 1: Clone the Repository

git clone https://github.com/your-username/InterviewPilot.git
cd InterviewPilot

Step 2: Configure & Start Backend Server

  1. Navigate to the server folder:
    cd server
  2. Install dependencies:
    npm install
  3. Set up the .env file as described in the Environment Variables section.
  4. Run the server in development mode:
    npm run dev
    The server will run on http://localhost:8000 (or your configured port).

Step 3: Configure & Start Frontend Client

  1. Navigate to the client folder:
    cd ../client
  2. Install dependencies:
    npm install
  3. Set up the .env file as described in the Environment Variables section.
  4. Run the frontend in development mode:
    npm run dev
    The app will run on http://localhost:5173.

πŸ”„ User Journey & Core Flow

graph TD
    A[Sign in with Google OAuth] --> B[Dashboard / Home]
    B --> C[Configure Interview Settings]
    C -->|Optional| D[Upload Resume PDF]
    D -->|AI Extracts Profile| E[Generate Questions]
    C -->|Manual Inputs| E
    E --> F[Start Interactive Session]
    F --> G[Avatar Speaks Question]
    G --> H[Candidate Speaks/Types Response]
    H -->|Submit Answer| I[Real-time AI Feedback]
    I --> J{Next Question?}
    J -->|Yes| G
    J -->|No| K[Finish Session]
    K --> L[Generate Analytics Report]
    L --> M[Export Performance PDF]
Loading

πŸ“‘ API Reference

πŸ” Authentication (/api/auth)

  • POST /google - Processes Google authentication details sent from the frontend client and returns user details. Sets an HTTP-only token cookie.
  • GET /logout - Clears the authentication token cookie.

πŸ‘€ User Information (/api/user)

  • GET /current-user - Fetches profile details and remaining credits for the currently authenticated user.

πŸŽ™οΈ Interview Operations (/api/interview)

  • POST /resume - Uploads a PDF resume, parses it, and uses GPT-4o-mini to extract skills, experience, and projects.
  • POST /generate-questions - Generates 5 tailored questions based on configuration, deducting 50 credits from the user's account.
  • POST /submit-answer - Submits a candidate's answer for evaluation. Triggers AI feedback scoring.
  • POST /finish - Computes the aggregate scores (confidence, communication, correctness) and marks the session completed.
  • GET /get-interview - Lists the historical record of interviews for the authenticated user.
  • GET /report/:id - Fetches details and breakdowns of a completed interview.

πŸ’³ Payment Integration (/api/payment)

  • POST /order - Creates a new payment order using the Razorpay SDK.
  • POST /verify - Validates the webhook/callback signature from Razorpay. Increments user credits on success.

About

An AI-powered mock interview platform that simulates real interview experiences with interactive question flows and feedback. Built using React, TypeScript, Vite, Tailwind CSS, and Firebase to help users practice and improve their interview skills.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages