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
This project was collaboratively developed by:
[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
[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
- 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
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Java code conventions for backend
- Use ESLint and Prettier for frontend
- Write unit tests for new features
- Update documentation for API changes
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
For questions or collaboration opportunities:
- Backend: sabahshaikh154@gmail.com
- Frontend: chitapuremuqsit@gmail.com
Project Link: [https://github.com/sabashaikh4/InterviewAI]
⭐ Star this repo if you find it helpful! ⭐