An intelligent interview preparation platform powered by AI that helps candidates practice and improve their interview skills through realistic mock interviews with instant feedback.
- Features
- Tech Stack
- Architecture
- Prerequisites
- Installation
- Configuration
- Running the Application
- Usage
- API Endpoints
- Project Structure
- Team
- Future Enhancements
- Contributing
- License
- π€ 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
- 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 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
- 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)
- React 18.2.0
- React Router DOM (Navigation)
- Axios (HTTP client)
- Tailwind CSS (Styling)
- Lucide React (Icons)
- Web Speech API (Voice features)
βββββββββββββββββββ
β React App β
β (Port 3000) β
ββββββββββ¬βββββββββ
β HTTP/WebSocket
βΌ
βββββββββββββββββββ
β Spring Boot β
β (Port 8080) β
ββββββββββ¬βββββββββ
β
ββββββ΄βββββ
βΌ βΌ
βββββββββ ββββββββββββ
β H2 β β Groq API β
β DB β β (AI) β
βββββββββ ββββββββββββ
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)
git clone https://github.com/sabashaikh4/InterviewAI.git
cd InterviewAIcd ai-interview-backend
# If using Maven wrapper (recommended)
./mvnw clean install
# Or if you have Maven installed globally
mvn clean installcd ai-interview-frontend
# Install dependencies
npm installCreate 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_HEREYOUR_GROQ_API_KEY_HERE with your actual Groq API key.
The frontend is configured to proxy requests to http://localhost:8080.
If needed, update package.json:
{
"proxy": "http://localhost:8080"
}cd ai-interview-backend
# Using Maven wrapper
./mvnw spring-boot:run
# Or using Maven
mvn spring-boot:runBackend will start at: http://localhost:8080
In a new terminal:
cd ai-interview-frontend
# Start React development server
npm startFrontend will start at: http://localhost:3000
Open your browser and navigate to:
http://localhost:3000
- Create a new account or log in with existing credentials
- Credentials are stored securely in the database
- 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
- 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
- Click "End Interview" when you want to finish
- AI will generate detailed feedback
- Click "Feedback" to see:
- Complete transcript
POST /api/auth/signup - Register new user
POST /api/auth/signin - User login
POST /api/auth/logout - User logout
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
WS /ws/interview - Real-time interview chat
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]