Skip to content

ronak-ravtode/ai_interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InterviewIQ.AI 🎤

AI-powered mock interview platform with voice recognition, real-time evaluation, and detailed performance analytics.

Features

  • AI Interviewer — Natural conversational AI that asks role-based questions with adaptive difficulty
  • Google & Email Auth — Sign in with Google or email/password via Supabase
  • Voice Recognition — Speech-to-text powered answers with real-time transcription
  • Resume Analysis — Upload your PDF resume and get auto-extracted role, skills, and projects
  • Smart Evaluation — AI scores your answers on confidence, communication, and correctness
  • Performance Reports — Detailed analytics dashboard with downloadable PDF reports
  • Interview History — Track your progress over time with trend charts
  • Credit System — Token-based usage system for managing interview attempts

Tech Stack

Frontend

Backend

Project Structure

├── client/                     # React frontend (Vite)
│   ├── src/
│   │   ├── components/         # Reusable UI components
│   │   │   ├── AuthModel.jsx
│   │   │   ├── Navbar.jsx
│   │   │   ├── Footer.jsx
│   │   │   ├── Step1SetUp.jsx  # Interview setup (role, resume)
│   │   │   ├── Step2Interview.jsx  # Live interview flow
│   │   │   ├── Step3Report.jsx # Performance report
│   │   │   ├── Timer.jsx
│   │   │   └── BackButton.jsx
│   │   ├── pages/              # Route pages
│   │   │   ├── Home.jsx
│   │   │   ├── Auth.jsx
│   │   │   ├── Interview.jsx
│   │   │   ├── Pricing.jsx
│   │   │   ├── InterviewHistory.jsx
│   │   │   └── InterviewReport.jsx
│   │   ├── redux/              # Redux store & slices
│   │   ├── utils/              # Supabase client & constants
│   │   ├── assets/             # Images & videos
│   │   ├── App.jsx
│   │   └── main.jsx
│   ├── .env.example
│   └── package.json
│
├── server/                     # Express backend
│   ├── config/
│   │   ├── connectDb.js        # MongoDB connection
│   │   ├── supabase.js         # Supabase admin client
│   │   └── token.js            # JWT token generation
│   ├── controllers/
│   │   ├── auth.controller.js
│   │   ├── interview.controller.js
│   │   ├── payment.controller.js
│   │   └── user.controller.js
│   ├── middlewares/
│   │   ├── isAuth.js           # JWT auth middleware
│   │   └── multer.js           # File upload config
│   ├── models/
│   │   ├── user.model.js
│   │   ├── interview.model.js
│   │   └── payment.model.js
│   ├── routes/
│   │   ├── auth.route.js
│   │   ├── interview.route.js
│   │   ├── payment.route.js
│   │   └── user.route.js
│   ├── services/
│   │   ├── openRouter.services.js  # AI API client
│   │   └── razorpay.services.js    # Razorpay payment client
│   ├── index.js                # Express entry point
│   ├── .env.example
│   └── package.json
│
├── .gitignore
├── LICENSE
└── README.md

Getting Started

Prerequisites

  • Node.js 18+
  • MongoDB instance (local or Atlas)
  • OpenRouter API key (get one free)
  • Supabase project (create one free) with Google Auth enabled
  • Supabase service role key (Project Settings → API)

Installation

# Clone the repository
git clone https://github.com/yourusername/interviewiq-ai.git
cd interviewiq-ai

# Install server dependencies
cd server
npm install

# Install client dependencies
cd ../client
npm install

Configuration

  1. Server — Copy server/.env.example to server/.env and fill in:

     PORT=8000
     CLIENT_ORIGIN=http://localhost:5173
     MONGODB_URL="your_mongodb_connection_string"
     JWT_SECRET="your_jwt_secret"
     OPENROUTER_API_KEY="your_openrouter_api_key"
     RAZORPAY_KEY_ID="your_razorpay_key_id"
     RAZORPAY_KEY_SECRET="your_razorpay_key_secret"
     SUPABASE_URL="your_supabase_url"
     SUPABASE_SERVICE_ROLE_KEY="your_supabase_service_role_key"
  2. Client — Copy client/.env.example to client/.env and fill in:

    VITE_SUPABASE_URL=your_supabase_url
    VITE_SUPABASE_PUBLISHABLE_KEY=your_supabase_anon_key
    VITE_SERVER_URL=http://localhost:8000

Running

# Terminal 1 — Start the backend
cd server
npm run dev

# Terminal 2 — Start the frontend
cd client
npm run dev

Visit http://localhost:5173 in your browser.

API Endpoints

Method Endpoint Auth Description
POST /api/auth/login No Google / email authentication
POST /api/auth/signup No Email & password registration
GET /api/auth/logout No Clear auth cookie
GET /api/user/current-user Yes Get authenticated user
POST /api/interview/resume Yes Upload & analyze resume
POST /api/interview/generate-questions Yes Generate AI questions
POST /api/interview/submit-answer Yes Submit & evaluate answer
POST /api/interview/finish Yes Finish & calculate scores
GET /api/interview/get-interview Yes List user's interviews
GET /api/interview/report/:id Yes Get interview report
GET /api/payment/plans No Get credit plans & Razorpay key
POST /api/payment/create-order Yes Create Razorpay payment order
POST /api/payment/verify Yes Verify payment & grant credits
GET /api/payment/history Yes Get user's payment history

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages