PrepAI is an advanced, full-stack, microservice-based web application designed to help job seekers ace their interviews through real-time feedback. By leveraging Computer Vision (CV), Natural Language Processing (NLP), and Generative AI, PrepAI analyzes facial expressions, speech sentiment, and answer quality to provide a comprehensive, personalized performance report in web page.
- 🗣️ AI Question Engine & Voice Recognition: Automatically reads professional interview questions aloud using the Web Speech API and converts your spoken answers into text in real time.
- 👁️ Real-time Emotion Analysis: Uses DeepFace and OpenCV to detect confidence, nervousness, and excitement from live webcam frames, giving you real-time visual feedback.
- 🧠 Spoken Word Sentiment Tracking: Employs TextBlob to analyze the polarity of your spoken answers, tracking your sentiment progression over the course of the interview.
- 🤖 Intelligent Coaching (Gemini AI): Integrates Google Gemini 2.5 Flash to provide instant, constructive feedback on your answers (using the STAR method) and generates a comprehensive final performance report.
- 📊 Dual-Modal Interactive Dashboard: A modern, sleek React frontend featuring live sentiment charts, animated progress bars, and real-time status indicators.
PrepAI is broken into three main components:
- Framework: React.js (Vite)
- Styling: Vanilla CSS3 (Custom gradients, animations, glassmorphism)
- Real-Time Comm:
socket.io-client - Native APIs: Web Speech API (Speech Recognition & Speech Synthesis)
- Framework: Node.js & Express
- Real-Time Comm: Socket.io (Handles live video frames and text streams)
- Generative AI:
@google/genai(Google Gemini API integration)
- Framework: Python (Flask)
- Computer Vision: OpenCV, DeepFace (Facial expression recognition)
- NLP: TextBlob (Sentiment analysis)
PrepAI_Project/
├── frontend/ # React + Vite UI (Port 5173)
│ ├── src/App.jsx # Main application logic & UI
│ └── package.json
├── backend/ # Node.js WebSocket & API Server (Port 5000)
│ ├── server.js # Express + Socket.io + Gemini API routing
│ ├── .env # Environment variables (Gemini API Key)
│ └── package.json
└── ai_core/ # Python Flask ML Microservice (Port 5001)
├── app.py # DeepFace & TextBlob endpoints
└── venv/ # Python Virtual Environment
You will need to start three separate terminal windows to run the microservices.
- Node.js (v16+)
- Python 3.8+
- A Google Gemini API Key
This service handles the heavy lifting for Computer Vision and NLP.
cd ai_core
python -m venv venv
# Activate the virtual environment
source venv/bin/activate # On macOS/Linux
.\venv\Scripts\activate # On Windows
# Install dependencies
pip install flask flask-cors opencv-python numpy deepface textblob tf-keras
# Start the Flask server (runs on Port 5001)
python app.pyThis service acts as the bridge between the frontend, the AI Core, and the Gemini API.
cd backend
npm install
# Create a .env file and add your Gemini API Key
echo "GEMINI_API_KEY=your_gemini_api_key_here" > .env
# Start the Node.js server (runs on Port 5000)
node server.jsThis is the beautiful user interface.
cd frontend
npm install
# Start the Vite development server (runs on Port 5173)
npm run dev- Navigate to
http://localhost:5173in your browser. - Grant the browser permission to access your Camera and Microphone.
- Click "Start Mock Interview".
- Listen to the AI read the question, and respond verbally. The system will transcribe your speech, analyze your facial expressions, and plot your sentiment in real time.
- Click "Submit & Next" to receive instant Gemini AI feedback on your response.
- At the end of the interview, receive your Comprehensive Performance Report.
The voice recognition feature relies on the experimental Web Speech API. For the best experience, please use Google Chrome or Microsoft Edge. If your browser does not support it, a fallback text-input option is automatically provided.