An end-to-end, multi-tier automated web platform designed to simulate realistic, adaptive technical interviews. The system captures live video and audio streams to perform real-time facial expression analysis, speech-to-text transcription, and natural language evaluation, providing detailed behavioral metrics and technical scoring breakdown graphs upon completion.
The software ecosystem operates on a decoupled, three-tier architecture ensuring clean isolation of concerns:
+-----------------------------------+
| Next.js Front-End | (Port 3000)
| React 19 / Tailwind CSS v4 |
+-----------------+-----------------+
|
REST / Audio | JSON Web Tokens
Video Blobs | (Auth Handshake)
v
+-----------------------------------+
| Node.js Express Server | (Port 5000)
| Authentication & Database |
+-----------------+-----------------+
|
Internal REST | Upstream Payload
Proxy Handlers | Forwarding
v
+-----------------------------------+
| FastAPI Backend | (Port 8000)
| PyTorch / OpenCV ML Inference |
+-----------------------------------+
-
Presentation Layer (
/client) Built on Next.js 16 and React 19, managing high-frequency webcam visual loops (react-webcam) and recording audio tracks (react-media-recorder). Analytical trends are mapped with Recharts. -
Orchestration Layer (
/server) A reliable Express gateway driving structural storage tasks via Mongoose, validating state transitions, issuing JWT profiles, and managing multipart data pipelines viamulter. -
Machine Learning Layer (
/backend) An asynchronous Python execution matrix fueled by FastAPI. It controls intensive CPU/GPU pipelines:- Text transcription (
faster-whisper) - Text processing embeddings (
sentence-transformers) - Visual computing (
OpenCV) - Automated text feedback evaluation (
language-tool-python)
- Text transcription (
βββ backend/ # Python Asynchronous ML Pipeline
β βββ app/
β β βββ knowledge_base/ # Curated technical prompt bases
β β βββ models/ # Pydantic schema validators
β β βββ modules/ # Core inferencing engines
β β β βββ adaptive/
β β β βββ evaluator/
β β β βββ face_analysis/
β β β βββ feedback/
β β β βββ question_gen/
β β β βββ speech/
β β βββ routes/ # FastAPI routing paths
β β βββ main.py # Python startup hub
β βββ requirements.txt
β
βββ server/ # Node.js Express Session Tier
β βββ src/
β β βββ config/
β β βββ middleware/
β β βββ models/
β β βββ routes/
β β βββ index.js
β βββ package.json
β
βββ client/ # Next.js Presentation App
βββ src/
β βββ app/
β βββ components/
β βββ context/
β βββ hooks/
β βββ utils/
βββ tailwind.config.js
βββ package.json
Ensure your environment contains:
- Node.js:
v18.xor above - Python:
v3.10.xor higher - MongoDB: Local or cloud Atlas instance
cd backendpython -m venv venv
source venv/bin/activateWindows:
venv\Scripts\activatepip install -r requirements.txtpython -m spacy download en_core_web_smuvicorn app.main:app --host 127.0.0.1 --port 8000 --reloadcd ../servernpm installPORT=5000
MONGO_URI=mongodb://127.0.0.1:27017/interview_coach
JWT_SECRET=production_ready_cryptographic_randomized_hex_string
FASTAPI_URL=http://127.0.0.1:8000npm run devcd ../clientnpm installNEXT_PUBLIC_API_URL=http://127.0.0.1:5000npm run devOpen:
http://localhost:3000
| Variable | Purpose | Example |
|---|---|---|
PORT |
Node server port | 5000 |
MONGO_URI |
MongoDB connection string | mongodb://127.0.0.1:27017/db |
JWT_SECRET |
JWT signing key | Secure random value |
FASTAPI_URL |
ML backend endpoint | http://127.0.0.1:8000 |
| Variable | Purpose | Example |
|---|---|---|
NEXT_PUBLIC_API_URL |
Express backend URL | http://127.0.0.1:5000 |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register new user |
| POST | /api/auth/login |
Authenticate user |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/session/start |
Start interview session |
| POST | /api/questions/next |
Generate next question |
| POST | /api/evaluate/answer |
Evaluate response |
| GET | /api/report/:sessionId |
Fetch interview report |
| Method | Endpoint | Description |
|---|---|---|
| POST | /face/analyze |
Facial expression analysis |
| POST | /speech/transcribe |
Audio transcription |
| POST | /resume/extract |
Resume parsing |
Ensure you are running on:
http://localhost
Modern browsers block media permissions on insecure origins.
Verify:
MongoDB Connected...
appears in the Node.js console logs.
The FastAPI backend automatically falls back to CPU inference if CUDA-enabled GPU drivers are unavailable.
- Next.js 16
- React 19
- Tailwind CSS v4
- Recharts
- Axios
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- Multer
- FastAPI
- PyTorch
- OpenCV
- Faster-Whisper
- Sentence Transformers
- SpaCy
This project is intended for educational, research, and interview-preparation purposes.
Built as a scalable AI-assisted technical interview simulation platform using modern full-stack engineering and real-time machine learning inference pipelines.