Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Status AI License

🧠 AI-Powered Technical Interview Simulator

A full-stack application designed to simulate real-world technical interviews. It allows users to practice answering conceptual and coding questions verbally and programmatically, receiving instant, AI-driven feedback on their performance.

✨ Key Features

  • Customizable Interviews: Select Role (MERN, Python, Data Science), Difficulty Level, and Interview Type (Oral vs. Coding Mix).

  • Hybrid Input System:

  • 🎙️ Voice Response: Uses OpenAI Whisper to transcribe verbal answers for conceptual questions.

  • 💻 Code Editor: Integrated Monaco Editor for solving coding challenges directly in the browser.

  • AI Microservice Architecture:

  • Question Generation: dynamically creates unique interview questions using Ollama (Mistral).

  • Smart Evaluation: Analyzes both code logic and verbal transcription to provide a Technical Score and Confidence Score.

  • Detailed Analytics:

  • Session history with global scores.

  • Per-question breakdown showing user submission vs. ideal implementation.

  • Performance charts using Chart.js.

  • Secure Authentication: JWT-based user login and registration.


🛠️ Tech Stack

Frontend

  • Framework: React (Vite)
  • State Management: Redux Toolkit
  • Styling: Tailwind CSS
  • Editor: @monaco-editor/react
  • Visualization: Chart.js / React-Chartjs-2
  • Routing: React Router Dom

Backend (API Gateway)

  • Runtime: Node.js
  • Framework: Express.js
  • Database: MongoDB (Mongoose)
  • Authentication: JSON Web Tokens (JWT) & bcryptjs

AI Microservice

  • Runtime: Python 3.9+
  • Framework: FastAPI
  • LLM Engine: Ollama (running mistral locally)
  • Speech-to-Text: OpenAI Whisper (base.en model)
  • Audio Processing: PyDub / FFMPEG

📁 Project Structure

AI_Interview_Web/
│
├── frontend/        # React + Vite application
│   ├── src/
│   ├── public/
│   └── package.json
│
├── backend/         # Node.js API Gateway
│   ├── controllers/
│   ├── routes/
│   ├── models/
│   └── server.js
│
├── ai-service/      # Python FastAPI AI microservice
│   ├── main.py
│   ├── services/
│   └── requirements.txt
│
└── README.md

🚀 Getting Started

Prerequisites

  1. Node.js (v16+) and npm.
  2. Python (v3.9+) and pip.
  3. MongoDB: Local instance or Atlas URI.
  4. Ollama: Installed and running locally.
  • Install from ollama.com.
  • Pull the model: ollama pull mistral.
  1. FFmpeg: Required for audio processing (should be in your system PATH).

1. Clone the Repository

git clone https://github.com/Shivank2005/AI_Interview_Web.git
cd AI_Interview_Web

2. Backend Setup (Node.js)

cd backend
npm install

# Create a .env file
echo "PORT=5000" > .env
echo "MONGO_URI=your_mongodb_connection_string" >> .env
echo "JWT_SECRET=your_jwt_secret" >> .env
echo "NODE_ENV=development" >> .env

# Run the server
npm run server

3. AI Service Setup (Python)

cd ../ai_service

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install fastapi uvicorn ollama openai-whisper pydub python-dotenv

# Create a .env file
echo "AI_SERVICE_PORT=8000" > .env
echo "OLLAMA_MODEL_NAME=mistral" >> .env

# Run the microservice
uvicorn main:app --reload --port 8000

4. Frontend Setup (React)

cd ../frontend
npm install

# Create a .env file
echo "VITE_API_URL=http://localhost:5000/api" > .env

# Run the frontend
npm run dev

📐 Architecture Overview

The application follows a microservices-inspired architecture to separate heavy AI processing from the main application logic.

  1. Client (React): Handles UI, Audio Recording, and Code Editing. Sends data to Node.js.
  2. Node.js Server: Acts as the API Gateway. Handles Auth, Database storage, and forwards AI tasks to the Python service.
  3. Python Service:
  • Receives POST /generate-questions.
  • Receives POST /transcribe (Audio -> Text).
  • Receives POST /evaluate (Text/Code -> Score/Feedback JSON).
  1. Ollama: The local LLM engine that powers the generation and evaluation logic.

👨‍💻 Author

Shivank
Computer Science Student – BIT Bengaluru

GitHub: https://github.com/Shivank2005

About

AI-powered mock interview platform that simulates technical interviews and provides automated AI-based feedback.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages