A real-time AI-driven mock interview platform for technical roles. Users select role, difficulty, interview type, and duration. The AI conducts a timed adaptive interview with dynamic questions and at least one intelligent follow-up per session.
- Backend: .NET 8 Web API, Entity Framework Core, SQL Server, OpenAI/OpenRouter API
- Frontend: React 19 + Vite 7 + TypeScript
- Role + difficulty + interview type + duration selection
- Timed interview session with live countdown
- AI-generated questions that adapt to answer quality
- At least one intelligent follow-up per session
- Progress tracking (Question X of Y)
- Performance report with overall score (0β100), 3 strengths, 3 improvement areas, 2 improved sample answers, suggested next topics
- Session history stored in SQL Server
- .NET 8 SDK
- Node.js 18+
- SQL Server or LocalDB (Windows)
- OpenAI or OpenRouter API key
cd backend
# OpenRouter (recommended - supports 400+ models):
# Windows (PowerShell):
$env:OPENROUTER_API_KEY = "sk-or-v1-your-key"
# Or add to appsettings.json:
# "OpenRouter": { "ApiKey": "sk-or-v1-your-key", "Model": "openai/gpt-4o-mini" }
# OpenAI direct (alternative):
$env:OPENAI_API_KEY = "sk-your-key"
dotnet runOpenRouter config (in appsettings.json): OpenRouter:ApiKey, OpenRouter:BaseUrl (default: https://openrouter.ai/api/v1), OpenRouter:Model (e.g. openai/gpt-4o-mini, google/gemini-pro). OpenRouter is used if OpenRouter:ApiKey is set; otherwise OpenAI is used.
SQL Server connection: Default uses LocalDB ((localdb)\\mssqllocaldb). For full SQL Server, set in appsettings.json:
"DefaultConnection": "Server=localhost;Database=InterviewSimulator;User Id=sa;Password=YourPassword;TrustServerCertificate=True;"
Backend runs at http://localhost:5018.
cd frontend
npm install
npm run devFrontend runs at http://localhost:5173 with API proxy to the backend.
- Start backend:
cd backend && dotnet run - Start frontend:
cd frontend && npm run dev - Open http://localhost:5173
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/interview/start | Start new interview session |
| GET | /api/interview/{id}/state | Get current interview state |
| POST | /api/interview/{id}/answer | Submit answer, get next question |
| GET | /api/interview/{id}/report | Get performance report |
| GET | /api/interview/history | List past sessions |
Vibe-A-Thon/
βββ backend/ # .NET 8 Web API
β βββ Controllers/ # Interview API
β βββ Data/ # EF DbContext
β βββ DTOs/ # Request/Response models
β βββ Models/ # Entity models
β βββ Services/ # AI + session logic
βββ frontend/ # React + Vite
β βββ src/
β βββ api/ # API client
β βββ pages/ # Setup, Interview, Report, History
βββ README.md