Skip to content

Latest commit

 

History

History
210 lines (151 loc) · 7.25 KB

File metadata and controls

210 lines (151 loc) · 7.25 KB

InterPrep: Voice-Interactive AI Interview Trainer

Track and refine your technical interview practice.

InterPrep

Overview:

Many students practice LeetCode problems but struggle to explain their thought process clearly in technical interviews.

InterPrep bridges this gap by providing a voice-interactive platform that simulates real interview conditions, helping you practice both coding and verbal communication skills.


InterPrep Preview - FizzBuzz


Visit InterPrep

Visit InterPrep


Tech Stack

Dataset

  • Kaggle - Leetcode dataset (question bank)​

Frontend

  • Streamlit - Web application framework

Backend & AI

  • Python - Programming language​

  • Whisper ASR (via faster-whisper) - optimized OpenAI's Whisper for Automatic speech recognition (ASR) - audio transcription

  • Gemini - LLM-powered evaluation and feedback generation

  • Pandas NumPy - Data processing and analysis


Installation & Setup

1. Clone the repository

git clone https://github.com/ishratarshad/InterPrep.git
cd InterPrep

2. Set up virtual environment

python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Configure environment variables

Create .streamlit/secrets.toml and add Gemini API key

GEMINI_API_KEY=your_gemini_api_key_here

5. Run the application

streamlit run app.py

The app will open in your browser at http://localhost:8501


Project Structure

InterPrep/
├── app.py                     # Main application entry point
├── pages/
│   ├── home.py                # Landing page with practice preview
│   ├── about.py               # About page with project info
│   ├── rubric.py              # Evaluation rubric & grading scheme
│   ├── select_criteria.py     # Problem filter selection
│   ├── interview.py           # Code editor + audio recording
│   ├── results.py             # Evaluation and feedback display
│   └── dashboard.py           # Leetcode study plan recommender
├── backend/
│   ├── api.py                 # Gemini API endpoints for AI analysis
│   ├── transcription.py       # Whisper (faster-whisper) integration
│   ├── leetcode_dataset.csv   # Leetcode question bank
│   └── leetcode_manager.py    # Problem filtering logic
├── evaluation/                # Rubric and grading documentation
├── code/                      # stores user's code solution; generated upon run-through of code
├── audio/                     # stores user's audio clip; generated upon run-through of code
├── transcript/                # stores user's audio transcript; generated upon run-through of code
├── shared/
│   └── navbar.py              # Navigation component
├── .streamlit/
│   ├── config.toml            # Shared styles and constants
│   └── secrets.toml           # stores environment variables
├── .env                       # stores environment variables
├── globals.py                 # Shared styles and constants
├── globals.css                # Shared styles and fonts
└── requirements.txt

Features

Core Functionality

  • Voice-Interactive Practice – Record explanations of your solutions using Whisper AI for automatic transcription
  • Multi-Language Code Editor – Write solutions in Python, JavaScript, C++, Java, Go, PHP, Swift, or TypeScript
  • Problem Filtering – Select problems by difficulty (Easy, Medium, Hard) and algorithm type
  • AI-Powered Feedback – Get evaluated on problem identification, complexity analysis, and explanation clarity using Gemini AI
  • Leetcode Problem Recommender – Monitor your performance over time through an interactive dashboard

Algorithm Categories

  • Arrays & HashMaps
  • Two Pointers & Sliding Window
  • Binary Search
  • Linked Lists
  • Trees & Graphs
  • Heaps & Priority Queues
  • Dynamic Programming
  • Backtracking

How It Works

InterPrep Workflow

1. Select Criteria

Choose your criteria for problem difficulty and algorithm types to get a curated question

2. Practice Interview Problem

  • Write your solution in the integrated code editor
  • Record your verbal explanation answering the evaluation criteria
  • Audio is automatically transcribed using faster-whisper (an optimized Whisper ASR tool)

3. Get Feedback

Receive AI-generated evaluation on:

  • Problem Identification (35 pts) – Pattern recognition, understanding, approach selection
  • Complexity Analysis (35 pts) – Time/space complexity correctness
  • Clarity of Explanation (30 pts) – Structure, technical communication, completeness

4. Leetcode Dashboard

Find more Leetcode questions to practice.


Dataset

LeetCode Problem Dataset from Kaggle

  • 1800+ curated problems across 10+ categories
  • Includes problem statements, difficulty levels, and metadata

Leetcode Question Dataset


Evaluation Rubric

The system evaluates explanations on a 100-point scale:

Score Range Level Description
90-100 Excellent Outstanding performance, fully meets expectations
75-89 Good Slight improvements possible
60-74 Satisfactory Acceptable with some gaps
40-59 Needs Improvement Significant issues to address
< 40 Poor Fails to meet basic criteria

See evaluation/rubric.md for detailed scoring criteria.


Future Enhancements

  • Code execution and runtime validation
  • Multi-turn dialogues with adaptive hints
  • Retrieval of similar problems using embeddings
  • Account and progress tracking
  • Social features (leaderboards, peer comparison)

Expected Impact

Receive AI-generated evaluation on:

  • Communication skill development
  • Provides a structured and adaptive roadmap for technical interview preparation
  • Improves both problem-solving performance and explanation clarity
  • Helps students prepare more effectively and gain confidence in real interviews

License

This project is open source and available under the MIT License.