Skip to content

Latest commit

Β 

History

7 Commits

Folders and files

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

Repository files navigation

🎯 AI Interview Practice Platform

An intelligent interview preparation platform powered by AI that helps candidates practice and improve their interview skills through realistic mock interviews with instant feedback.

Java Spring Boot React WebSocket AI

πŸ“‹ Table of Contents

✨ Features

Core Features

  • πŸ€– AI-Powered Interviews - Realistic interview conversations using Groq LLM API
  • πŸŽ™οΈ Voice Integration - Speech-to-text input and text-to-speech output
  • πŸ’¬ Real-time Chat - WebSocket-based live communication with AI interviewer
  • πŸ“Š Detailed Feedback - Comprehensive performance analysis with scores and recommendations
  • πŸ“ˆ Progress Tracking - View history of all previous interviews

Interview Customization

  • Position-based Questions - Tailored questions for specific job roles
  • Experience Level Selection - Entry, Mid, or Senior level interviews
  • Difficulty Settings - Easy, Medium, or Hard interview difficulty
  • Personalized Greetings - AI addresses candidates by name

User Features

  • πŸ‘€ User Authentication - Sign up and login functionality
  • πŸ“± Responsive Design - Works on desktop, tablet, and mobile
  • 🎨 Modern UI/UX - Clean, intuitive interface with Tailwind CSS
  • πŸ’Ύ Interview History - Access past interviews and feedback anytime

πŸ› οΈ Tech Stack

Backend

  • Java 17
  • Spring Boot 3.2.0
    • Spring Web
    • Spring Data JPA
    • Spring WebSocket
  • H2 Database (In-memory, easily replaceable with MySQL/PostgreSQL)
  • Groq API (LLM for AI responses)
  • Lombok (Reduce boilerplate code)
  • Maven (Dependency management)

Frontend

  • React 18.2.0
  • React Router DOM (Navigation)
  • Axios (HTTP client)
  • Tailwind CSS (Styling)
  • Lucide React (Icons)
  • Web Speech API (Voice features)

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   React App     β”‚
β”‚  (Port 3000)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ HTTP/WebSocket
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Spring Boot    β”‚
β”‚   (Port 8080)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
    β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
    β–Ό         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  H2   β”‚  β”‚ Groq API β”‚
β”‚  DB   β”‚  β”‚   (AI)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“¦ Prerequisites

Before you begin, ensure you have the following installed:

  • Java JDK 17 or higher
  • Maven 3.6+ or use included Maven wrapper
  • Node.js 16+ and npm 8+
  • Git
  • Groq API Key (Get it free here)

πŸš€ Installation

1. Clone the Repository

git clone https://github.com/sabashaikh4/InterviewAI.git
cd InterviewAI

2. Backend Setup

cd ai-interview-backend

# If using Maven wrapper (recommended)
./mvnw clean install

# Or if you have Maven installed globally
mvn clean install

3. Frontend Setup

cd ai-interview-frontend

# Install dependencies
npm install

βš™οΈ Configuration

Backend Configuration

Create or edit src/main/resources/application.properties:

# Server Configuration
server.port=8080

# H2 Database Configuration
spring.datasource.url=jdbc:h2:mem:interviewdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=root
spring.datasource.password=

# JPA Configuration
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

# H2 Console (Development only)
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

# Groq API Configuration
groq.api.key=YOUR_GROQ_API_KEY_HERE

⚠️ Important: Replace YOUR_GROQ_API_KEY_HERE with your actual Groq API key.

Frontend Configuration

The frontend is configured to proxy requests to http://localhost:8080.

If needed, update package.json:

{
  "proxy": "http://localhost:8080"
}

πŸƒ Running the Application

Start Backend

cd ai-interview-backend

# Using Maven wrapper
./mvnw spring-boot:run

# Or using Maven
mvn spring-boot:run

Backend will start at: http://localhost:8080

Start Frontend

In a new terminal:

cd ai-interview-frontend

# Start React development server
npm start

Frontend will start at: http://localhost:3000

Access the Application

Open your browser and navigate to:

http://localhost:3000

πŸ“– Usage

1. Sign Up / Sign In

  • Create a new account or log in with existing credentials
  • Credentials are stored securely in the database

2. Create New Interview

  • Click "Add New" on the dashboard
  • Fill in interview details:
    • Position: Job role you're preparing for
    • Experience Level: Entry, Mid, or Senior
    • Difficulty: Easy, Medium, or Hard

3. Start Interview

  • Click "Start" to begin the interview
  • AI interviewer will greet you and ask questions
  • Respond using:
    • 🎀 Voice Input: Click mic button and speak
    • ⌨️ Text Input: Type your response

4. End Interview

  • Click "End Interview" when you want to finish
  • AI will generate detailed feedback

5. View Results

  • Click "Feedback" to see:
    • Complete transcript

πŸ”Œ API Endpoints

Authentication

POST   /api/auth/signup      - Register new user
POST   /api/auth/signin      - User login
POST   /api/auth/logout      - User logout

Interviews

GET    /api/interviews/test              - Health check
POST   /api/interviews                   - Create new interview
GET    /api/interviews/user/{userId}     - Get user's interviews
GET    /api/interviews/{id}              - Get interview details
POST   /api/interviews/{id}/start        - Start interview
POST   /api/interviews/{id}/end          - End interview
GET    /api/interviews/{id}/result       - Get interview result

WebSocket

WS     /ws/interview         - Real-time interview chat

πŸ“ Project Structure

ai-interview-practice/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”‚   β”œβ”€β”€ java/com/interview/aipractice/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ config/          # Configuration classes
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ controller/      # REST controllers
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ model/           # Entity classes
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ repository/      # Data repositories
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ service/         # Business logic
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ websocket/       # WebSocket handlers
β”‚   β”‚   β”‚   β”‚   └── AipracticeApplication.java
β”‚   β”‚   β”‚   └── resources/
β”‚   β”‚   β”‚       └── application.properties
β”‚   β”‚   └── test/
β”‚   β”œβ”€β”€ pom.xml
β”‚   └── README.md
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/           # Auth components
β”‚   β”‚   β”‚   β”œβ”€β”€ common/         # Shared components
β”‚   β”‚   β”‚   └── interview/      # Interview components
β”‚   β”‚   β”œβ”€β”€ services/           # API services
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   └── index.js
β”‚   β”œβ”€β”€ package.json
β”‚   └── README.md
β”‚
└── README.md

Project Link: [https://github.com/sabashaikh4/InterviewAI]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages