Skip to content

Latest commit

ย 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฏ InterviewPilot

A backend-first AI interview platform built with FastAPI, designed to streamline technical interview preparation through secure authentication, interview management, and scalable REST APIs.

Python FastAPI PostgreSQL SQLAlchemy JWT OAuth2 GitHub Actions License


๐Ÿ“– Overview

InterviewPilot is a backend application that powers an AI-driven mock interview platform. It provides secure user authentication, interview management APIs, and a scalable backend architecture that will later integrate AI-generated interview questions and personalized feedback.

The project follows RESTful API principles using FastAPI and is designed with modularity, scalability, and maintainability in mind.

Note: AI-powered interview generation is currently under development and will be integrated in a future release.


โœจ Features

Authentication

  • JWT Authentication
  • OAuth2 Authentication
  • Secure Login & Registration
  • Protected API Endpoints

Interview Management

  • Create Interviews
  • Retrieve Interview Details
  • Update Interview Information
  • Delete Interviews
  • Manage Interview Sessions

API

  • RESTful API Design
  • Request Validation using Pydantic
  • Interactive API Documentation
  • Modular Route Organization
  • Environment-based Configuration

Development

  • PostgreSQL Database
  • SQLAlchemy ORM
  • GitHub Actions CI
  • Docker & Docker Compose
  • Postman API Testing
  • Clean Project Structure

๐Ÿ›  Tech Stack

Category Technologies
Language Python
Backend Framework FastAPI
Authentication JWT, OAuth2
Database PostgreSQL
ORM SQLAlchemy
Data Validation Pydantic
API Documentation Swagger UI
Testing Postman
CI GitHub Actions
Version Control Git, GitHub
Environment Management python-dotenv

๐Ÿ“‚ Project Structure

InterviewPilot/
โ”‚
โ”œโ”€โ”€ 
โ”œโ”€โ”€ agents/
โ”œโ”€โ”€ audio_analyser/
โ”œโ”€โ”€ audio_extractor/
โ”œโ”€โ”€ database/
โ”œโ”€โ”€ models/
โ”œโ”€โ”€ routers/
โ”œโ”€โ”€ schemas/
โ”œโ”€โ”€ services/
โ”œโ”€โ”€ utils/
โ”œโ”€โ”€ orchestrator/
โ”œโ”€โ”€ postman/
โ”œโ”€โ”€ security/
โ”œโ”€โ”€ .dockerignore
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ docker-compose.yml
โ”‚
โ”œโ”€โ”€ .github/
โ”‚   โ””โ”€โ”€ workflows/
โ”‚
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ .env
โ”œโ”€โ”€ app.py
โ””โ”€โ”€ README.md

๐Ÿš€ Getting Started

Option 1 - Run locally

1. Clone the Repository

git clone https://github.com/SLokesh1810/InterviewPilot.git

cd InterviewPilot

2. Create a Virtual Environment

Windows

python -m venv venv

venv\Scripts\activate

Linux/macOS

python3 -m venv venv

source venv/bin/activate

3. Install Dependencies

pip install -r requirements.txt

4. Configure Environment Variables

Create a .env file in the project root.

Example:

GOOGLE_API_KEY="YOUR_API_KEY"

# Testing variable
USE_LLM = 'false' # If you have API key then switch it to true

# Audio storage
BASE_PATH="YOUR_BASE_PATH"

FFMPEG_PATH="FFMPEG_LOCATION"

# Database - Test
DATABASE_URL="YOUR_DB_URL"

SECRET_KEY="SECRET_KEY"

Add any additional environment variables required by your local setup.


5. Run the Server

uvicorn app.main:app --reload

The API will be available at:

http://127.0.0.1:8000

๐Ÿณ Option 2 โ€“ Run with Docker

Prerequisites

  • Docker
  • Docker Compose

1. Clone the Repository

git clone https://github.com/SLokesh1810/InterviewPilot.git

cd InterviewPilot

2. Configure Environment Variables

Create a .env file in the project root and update the required environment variables.

3. Build the Docker Images

docker compose build

4. Start the Containers

docker compose up

or run in detached mode

docker compose up -d

5. Stop the Containers

docker compose down

The API will be available at

http://localhost:8000

Swagger UI

http://localhost:8000/docs

๐Ÿ“š API Documentation

FastAPI automatically generates interactive API documentation.

Documentation URL
Swagger UI /docs

Example:

http://127.0.0.1:8000/docs

๐Ÿ”’ Authentication

InterviewPilot secures protected endpoints using:

  • JSON Web Tokens (JWT)
  • OAuth2 Authentication Flow
  • Bearer Token Authorization

๐Ÿ—„ Database

The project uses PostgreSQL as its primary database.

Database interactions are handled through SQLAlchemy ORM, providing clean and maintainable database operations.


๐Ÿงช API Testing

API endpoints are tested using Postman.

The project includes requests for:

  • User Registration
  • User Login
  • Protected Endpoints
  • Interview CRUD Operations
  • Authentication Testing

โš™ Continuous Integration

GitHub Actions is configured to automate project workflows, helping ensure code quality and consistency during development.


๐Ÿ”ฎ Roadmap

Current

  • โœ… FastAPI Backend
  • โœ… JWT Authentication
  • โœ… OAuth2 Authentication
  • โœ… PostgreSQL Integration
  • โœ… Interview CRUD APIs
  • โœ… API Documentation
  • โœ… GitHub Actions CI

Planned

  • ๐Ÿ”„ AI Interview Question Generation
  • ๐Ÿ”„ AI-Based Interview Feedback
  • ๐Ÿ”„ Alembic Database Migrations
  • ๐Ÿ”„ Resume Upload
  • ๐Ÿ”„ Resume Analysis
  • ๐Ÿ”„ Email Verification
  • ๐Ÿ”„ Password Reset
  • ๐Ÿ”„ Frontend Application
  • ๐Ÿ”„ Deployment
  • ๐Ÿ”„ Comprehensive Automated Testing

๐Ÿ“„ License

This project is licensed under the MIT License.


๐Ÿ‘จโ€๐Ÿ’ป Author

Lokesh S


โญ Support

If you found this project helpful, consider giving it a โญ on GitHub!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages