A comprehensive full-stack web application that simulates real interviews, analyzes user behavior, generates academic quizzes, and provides deep AI-powered analytics.
- Real Interview Simulator - Practice interviews with AI-generated questions and real-time evaluation
- Video Proctoring - Face detection, eye gaze tracking, phone detection using MediaPipe & YOLOv8
- Emotion & Voice Analysis - Stress detection, confidence scoring, tone analysis
- Flashcards & Quizzes - AI-generated study materials for OS, CN, DBMS, OOPS
- Group Discussion Simulation - Practice GD skills with AI participants
- Analytics Dashboard - Track progress, identify weak areas, get learning recommendations
- PDF Report Generation - Downloadable detailed performance reports
- Groq API - LLaMA 3.1 70B for evaluation, Mixtral for fast generation, Whisper for STT
- Google Gemini - Flashcard and quiz generation
- LangChain - Multi-agent orchestration, interview chains
- MediaPipe - Face mesh, iris tracking
- YOLOv8 - Object detection for proctoring
- HR Round
- Technical Round (DSA, CS fundamentals)
- Behavioral Round
- System Design (Simplified)
- Amazon
- Microsoft
- Infosys
- TCS
- CRED
- Strict Senior Engineer
- Friendly HR
- Curious Fresher
- Logical Tech Lead
- Flask
- MongoDB Atlas
- JWT Authentication
- LangChain
- Groq SDK
- Google GenerativeAI
- MediaPipe
- Ultralytics YOLOv8
- ReportLab (PDF generation)
- React 18
- Vite
- Tailwind CSS
- Chart.js
- React Router DOM
- React Webcam
- RecordRTC
ai-interview-platform/
├── backend/
│ ├── app.py # Main Flask application
│ ├── requirements.txt # Python dependencies
│ ├── .env.example # Environment variables template
│ ├── routes/ # API endpoints
│ │ ├── auth.py
│ │ ├── interview.py
│ │ ├── flashcards.py
│ │ ├── quiz.py
│ │ ├── proctoring.py
│ │ ├── analytics.py
│ │ ├── reports.py
│ │ └── gd.py
│ ├── models/ # MongoDB schemas
│ │ └── schemas.py
│ ├── services/ # AI service integrations
│ │ ├── groq_service.py
│ │ ├── gemini_service.py
│ │ ├── langchain_service.py
│ │ └── proctoring_service.py
│ └── ai_pipelines/ # AI processing pipelines
│ └── interview_pipeline.py
├── frontend/
│ ├── package.json
│ ├── vite.config.js
│ ├── tailwind.config.js
│ ├── index.html
│ └── src/
│ ├── main.jsx
│ ├── App.jsx
│ ├── index.css
│ ├── context/ # React context providers
│ ├── components/ # Reusable components
│ ├── pages/ # Page components
│ └── services/ # API service
└── README.md
- Python 3.9+
- Node.js 18+
- MongoDB Atlas account (free tier)
- API keys for:
- Groq API
- Google Gemini API
- HuggingFace (optional)
cd ai-interview-platform# Navigate to backend
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
venv\Scripts\activate
# Mac/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Download YOLOv8 model (first run will auto-download)
# OR manually download yolov8n.pt from UltralyticsCreate .env file in backend folder:
# MongoDB
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/ai_interview_platform
# JWT
SECRET_KEY=your-super-secret-key-here
JWT_SECRET_KEY=your-jwt-secret-key-here
# Groq API (Get from https://console.groq.com)
GROQ_API_KEY=your-groq-api-key
# Google Gemini API (Get from https://makersuite.google.com/app/apikey)
GEMINI_API_KEY=your-gemini-api-key
# HuggingFace (optional)
HUGGINGFACE_API_KEY=your-huggingface-api-key
# App Config
FLASK_ENV=development
FLASK_DEBUG=1# Navigate to frontend
cd ../frontend
# Install dependencies
npm installTerminal 1 - Backend:
cd backend
python app.pyBackend will run on http://localhost:5000
Terminal 2 - Frontend:
cd frontend
npm run devFrontend will run on http://localhost:3000
Open http://localhost:3000 in your browser
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth/profile- Get user profilePUT /api/auth/profile- Update profile
POST /api/interview/start- Start new interviewPOST /api/interview/transcribe- Transcribe audioPOST /api/interview/evaluate- Evaluate answerPOST /api/interview/complete- Complete interviewGET /api/interview/history- Get interview historyGET /api/interview/:id- Get interview details
POST /api/flashcards/generate- Generate flashcardsGET /api/flashcards/list- List flashcard setsGET /api/flashcards/:id- Get flashcard setPOST /api/flashcards/:id/review- Review card
POST /api/quiz/generate- Generate quizPOST /api/quiz/submit- Submit quiz answersGET /api/quiz/history- Get quiz historyGET /api/quiz/:id- Get quiz detailsGET /api/quiz/analytics- Get quiz analytics
POST /api/proctoring/analyze-frame- Analyze video framePOST /api/proctoring/emotion- Analyze emotionPOST /api/proctoring/voice-analysis- Analyze voiceGET /api/proctoring/log/:id- Get proctoring log
GET /api/analytics/dashboard- Get dashboard dataGET /api/analytics/knowledge-graph- Get knowledge graphGET /api/analytics/meta-analysis- Get meta analysis
POST /api/reports/generate/:id- Generate interview reportPOST /api/reports/overall- Generate overall reportGET /api/reports/list- List reports
POST /api/gd/start- Start GD sessionPOST /api/gd/contribute- Add contributionPOST /api/gd/complete- Complete GDGET /api/gd/topics- Get GD topicsGET /api/gd/history- Get GD history
- Create a new Web Service on Render
- Connect your GitHub repository
- Configure:
- Build Command:
pip install -r requirements.txt - Start Command:
gunicorn app:app - Environment Variables: Add all from
.env
- Build Command:
- Deploy
- Import project to Vercel
- Configure:
- Framework Preset: Vite
- Build Command:
npm run build - Output Directory:
dist - Environment Variables:
VITE_API_URL: Your Render backend URL
- Deploy
- Import from Git
- Configure:
- Build Command:
npm run build - Publish Directory:
dist
- Build Command:
- Add
_redirectsfile inpublic/:/api/* https://your-backend-url.onrender.com/api/:splat 200 /* /index.html 200 - Deploy
| Variable | Description | Required |
|---|---|---|
| MONGODB_URI | MongoDB connection string | Yes |
| SECRET_KEY | Flask secret key | Yes |
| JWT_SECRET_KEY | JWT secret key | Yes |
| GROQ_API_KEY | Groq API key | Yes |
| GEMINI_API_KEY | Google Gemini API key | Yes |
| HUGGINGFACE_API_KEY | HuggingFace API key | No |
- Visit https://console.groq.com
- Sign up/Login
- Navigate to API Keys
- Create new API key
- Visit https://makersuite.google.com/app/apikey
- Sign in with Google account
- Create API key
- Visit https://www.mongodb.com/atlas
- Create free cluster
- Get connection string from Connect > Drivers
- Navigate to Interview page
- Select company, round type, and interviewer persona
- Click "Start Interview"
- Answer questions using the microphone
- Receive real-time evaluation and follow-up questions
- Complete interview to see overall scores
- Go to Flashcards page
- Select subject and topic
- Generate flashcards
- Study by flipping cards
- Mark cards as mastered or need practice
- Navigate to Quiz page
- Select subject, topic, and difficulty
- Answer MCQ questions
- Submit to see results and explanations
- Go to Group Discussion page
- Select a topic
- Participate with AI participants
- Get evaluated on participation, relevance, and politeness
- Visit Analytics page
- See Placement Readiness Score
- View skill radar chart
- Check weak areas and learning path
- Track improvement over time
- Go to Reports page
- Generate interview-specific or overall reports
- Download PDF for sharing
Camera/Microphone not working:
- Ensure browser has permissions
- Use HTTPS in production
- Check device availability
API Errors:
- Verify API keys are correct
- Check rate limits
- Ensure MongoDB is accessible
Proctoring not detecting:
- Ensure good lighting
- Face should be clearly visible
- YOLO model needs to be downloaded
- Fork the repository
- Create feature branch
- Commit changes
- Push to branch
- Create Pull Request
MIT License
For issues and questions, please create an issue in the repository.
Built with AI-powered technologies for the next generation of interview preparation.