Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AI Interview Coach

An AI-powered interview practice platform that provides real-time feedback on body language, speech, and answer quality using computer vision and AI.

🎯 Features

  • Real-Time Body Language Analysis

    • Eye contact tracking
    • Posture detection
    • Fidgeting and gesture analysis
  • Speech Analysis

    • Automatic transcription using OpenAI Whisper
    • Filler word detection ("um", "uh", "like")
    • Speaking pace analysis
  • AI-Powered Feedback

    • Answer quality evaluation using Claude AI
    • STAR format detection
    • Personalized improvement suggestions
  • Progress Tracking

    • Dashboard with performance metrics
    • Improvement trends over time
    • Session history and reports

πŸ—οΈ Tech Stack

Backend

  • FastAPI - Modern Python web framework
  • SQLAlchemy - Database ORM
  • MediaPipe - Face and pose detection
  • OpenAI Whisper - Speech-to-text
  • Anthropic Claude - AI evaluation
  • SQLite - Database (PostgreSQL for production)

Frontend

  • React 18 - UI library
  • Vite - Build tool
  • TailwindCSS - Styling
  • React Query - Data fetching
  • React Router - Navigation
  • MediaPipe (Browser) - Client-side face detection

πŸ“ Project Structure

ai-interview-coach/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ api/routes/          # API endpoints
β”‚   β”‚   β”œβ”€β”€ analyzers/           # Analysis logic
β”‚   β”‚   β”œβ”€β”€ database/            # Models and DB config
β”‚   β”‚   └── utils/               # Helper functions
β”‚   β”œβ”€β”€ requirements.txt
β”‚   └── .env.example
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/          # React components
β”‚   β”‚   β”œβ”€β”€ pages/               # Page components
β”‚   β”‚   └── services/            # API services
β”‚   └── package.json
└── data/
    β”œβ”€β”€ videos/                  # Interview recordings
    └── reports/                 # Generated reports

πŸš€ Getting Started

Prerequisites

  • Python 3.11+
  • Node.js 18+
  • npm or yarn

Backend Setup

  1. Navigate to backend directory:
cd backend
  1. Create virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Create .env file:
cp .env.example .env
  1. Add your Anthropic API key to .env:
ANTHROPIC_API_KEY=your_api_key_here
  1. Run the server:
cd app
python -m uvicorn main:app --reload

Backend will be available at http://localhost:8000

Frontend Setup

  1. Navigate to frontend directory:
cd frontend
  1. Install dependencies:
npm install
  1. Start development server:
npm run dev

Frontend will be available at http://localhost:5173

πŸ“… Development Roadmap

Sprint 1: Foundation (Days 1-5) βœ… DONE

  • Project structure
  • Backend API setup
  • Frontend React setup
  • Database models
  • Video recording
  • Face detection integration

Sprint 2: Analysis (Days 6-10)

  • Eye contact tracking
  • Posture analysis
  • Speech-to-text integration
  • Filler word detection
  • Claude AI integration

Sprint 3: Reports (Days 11-15)

  • Report generation
  • Dashboard with charts
  • PDF export
  • Progress tracking

Sprint 4: Deployment (Days 16-20)

  • Docker setup
  • Deploy backend
  • Deploy frontend
  • Documentation
  • Demo video

πŸ”‘ Getting Anthropic API Key

  1. Go to https://console.anthropic.com/
  2. Sign up (get $5 free credit)
  3. Navigate to "API Keys"
  4. Create new key
  5. Add to .env file

πŸ“Š Database Schema

InterviewSession

  • Stores overall interview data
  • Tracks scores and metrics
  • Links to video recordings

Question

  • Interview question bank
  • Categorized by type and difficulty

InterviewAnswer

  • Individual answers within sessions
  • Detailed metrics per answer

UserProgress

  • Long-term progress tracking
  • Improvement metrics

πŸ§ͺ Testing the API

Once backend is running, visit:

πŸ“ API Endpoints

Interviews

  • POST /api/interviews/start - Start new session
  • GET /api/interviews/{id} - Get session details
  • GET /api/interviews/ - List all sessions
  • POST /api/interviews/{id}/upload-video - Upload video
  • POST /api/interviews/{id}/complete - Complete session

Analysis

  • POST /api/analysis/analyze - Analyze session
  • GET /api/analysis/real-time/{id} - Real-time metrics

Reports

  • GET /api/reports/{id} - Get detailed report
  • GET /api/reports/{id}/pdf - Download PDF
  • GET /api/reports/progress/summary - Progress summary

🎨 UI Screenshots

Interview Screen

🀝 Contributing

This is a personal portfolio project, but suggestions are welcome!

πŸ“„ License

MIT License - feel free to use for your own learning

πŸ‘€ Author

Ege Karaca

πŸ™ Acknowledgments

  • MediaPipe by Google
  • Anthropic Claude API
  • OpenAI Whisper
  • FastAPI community

Status: 🚧 In Development (Day 2/20 Complete)

About

An Interview Coach that aims to train users with mock interviews & score performance based on posture, speech clarity and more

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages