Skip to content

sabashaikh4/InterviewAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

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

👥 Team

This project was collaboratively developed by:

Backend Developer

[SABAH SHAIKH] - Java Spring Boot Developer

  • 🔧 Designed and implemented RESTful APIs
  • 💾 Database architecture and JPA integration
  • 🔌 WebSocket implementation for real-time chat
  • 🤖 Groq AI API integration
  • 📊 Feedback generation system

GitHub: @sabashaikh4
Email: sabahshaikh154@gmail.com

Frontend Developer

[Muqsit Chitapure] - React Developer

  • 🎨 UI/UX design and implementation
  • ⚛️ React component architecture
  • 🎙️ Voice and video features integration
  • 📱 Responsive design with Tailwind CSS
  • 🔄 State management and routing

GitHub: @chitapuremuqsit
Email: chitapuremuqsit@gmail.com

🔮 Future Enhancements

  • Add multiple AI models (GPT-4, Claude, Gemini)
  • Video recording and playback
  • Resume upload and analysis
  • Company-specific interview prep
  • Behavioral question bank
  • Interview sharing and collaboration
  • Mobile app (React Native)
  • Advanced analytics dashboard
  • Peer interview practice mode
  • Integration with job boards

🤝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow Java code conventions for backend
  • Use ESLint and Prettier for frontend
  • Write unit tests for new features
  • Update documentation for API changes

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Groq for providing the AI API
  • Spring Boot for the robust backend framework
  • React for the powerful frontend library
  • Tailwind CSS for the beautiful styling
  • All contributors and supporters of this project

📧 Contact

For questions or collaboration opportunities:

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


Star this repo if you find it helpful!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors