Skip to content

crastatelvin/quantis-interview-grid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌌 QUANTIS INTERVIEW GRID

Immersive AI Interview Simulation Platform

Python FastAPI React Three.js Groq SQLAlchemy


Quantis Interview Grid transforms a job description into a role-specific interview simulation with dynamic questions, voice interaction, structured scoring, rich performance analytics, and personalized preparation resources.


3D Interface Voice Mode Scoring Engine


πŸ“‹ Table of Contents


🧠 Overview

Quantis is designed to feel like a real interview environment, not a static demo.

Core goals:

  • Generate context-aware questions based on JD + interview type
  • Support both typed and voice-assisted answer workflows
  • Evaluate interview quality across weighted dimensions
  • Produce actionable reports with metrics and preparation resources
  • Persist user history for repeat practice and progress tracking

πŸ’» Application Preview



Quantis Setup View



Quantis Landing



Quantis Interview Screen



Quantis Interview Alternate


✨ Features

Feature Description
🎯 Dynamic Role-Based Questions Uses JD analysis + interview type to generate realistic prompts
🌌 Immersive 3D UI Live Three.js scene, glass panels, animated score visuals
πŸŽ™οΈ Voice Interview Mode STT input, TTS question playback, live transcript capture
πŸ“Š Structured Scoring Relevance, clarity, depth, structure, confidence
πŸ“„ Final Report Intelligence Metrics, hiring likelihood, next steps, prep resources
πŸ” Auth & History Register/login, stored runs, run detail retrieval
πŸ“Ž Resume Gap Analysis Resume vs JD fit score, missing skills, action plan
πŸ“ˆ Observability Prometheus metrics endpoint + summary API
πŸ”„ Resilient LLM Calls Retry/backoff + circuit breaker behavior for Groq calls
πŸ—„οΈ Session Persistence DB-backed sessions with optional Redis cache fast-path

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 React 3D Interview UI                       β”‚
β”‚  setup β€’ interview β€’ report β€’ auth/history β€’ voice mode     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                β”‚ HTTP + Browser Voice APIs
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      FastAPI Backend                        β”‚
β”‚                                                             β”‚
β”‚  /auth/*, /history*   identity + run history                β”‚
β”‚  /setup               JD analysis + question generation     β”‚
β”‚  /evaluate            answer capture (per-question)         β”‚
β”‚  /report              full scoring + final insights         β”‚
β”‚  /resume-gap-analysis resume/JD fit + action plan           β”‚
β”‚  /metrics             Prometheus scrape endpoint            β”‚
β”‚  /observability/*     request latency and error summaries   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                β”‚
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚ SQLAlchemy (DB)   β”‚          β”‚ Groq API (LLM provider)β”‚
      β”‚ sessions/users/runsβ”‚         β”‚ structured AI responsesβ”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                β”‚
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚ Redis Cache       β”‚
      β”‚ optional hot readsβ”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

Layer Technology
Frontend React 18, Framer Motion, Recharts
3D / Visuals Three.js, @react-three/fiber, @react-three/drei
Backend FastAPI, Pydantic, Uvicorn
AI Groq (OpenAI-compatible API)
Persistence SQLAlchemy + SQLite/Postgres
Cache Redis (optional)
Auth JWT (PyJWT), password hashing (passlib)
Observability prometheus-client
Migrations Alembic
Testing Pytest

πŸ“ Project Structure

.
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ main.py
β”‚   β”‚   β”œβ”€β”€ models.py
β”‚   β”‚   β”œβ”€β”€ schemas.py
β”‚   β”‚   β”œβ”€β”€ db.py
β”‚   β”‚   β”œβ”€β”€ repositories/
β”‚   β”‚   └── services/
β”‚   β”‚       β”œβ”€β”€ ai_client.py
β”‚   β”‚       β”œβ”€β”€ interview_service.py
β”‚   β”‚       β”œβ”€β”€ auth_service.py
β”‚   β”‚       β”œβ”€β”€ history_service.py
β”‚   β”‚       └── cache.py
β”‚   β”œβ”€β”€ alembic/
β”‚   β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ requirements.txt
β”‚   └── .env.example
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── styles/
β”‚   └── package.json
β”œβ”€β”€ bootstrap.ps1
β”œβ”€β”€ Makefile
└── README.md

πŸš€ Installation

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • Groq API key

Backend

cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env
alembic -c alembic.ini upgrade head
uvicorn backend.main:app --reload

Frontend

cd frontend
npm install
npm start

πŸ’» Usage

  1. Open http://localhost:3000
  2. Select interview type + add JD text (or drop file)
  3. Enter simulation and answer all questions
  4. Generate report with metrics and prep guidance
  5. Optional: sign in to save and review historical runs

πŸ”Œ API Reference

Method Endpoint Description
GET / Health check
POST /auth/register Register account
POST /auth/login Login and receive JWT
GET /history List user interview runs
GET /history/{run_id} Detailed run data
POST /setup Create session + questions
POST /evaluate Record answer for a question
POST /report Compute final scored report
POST /resume-gap-analysis Resume/JD fit analysis
GET /metrics Prometheus metrics
GET /observability/summary Authenticated latency/error summary

βš™οΈ Configuration

Set values in backend/.env:

GROQ_API_KEY=your_groq_api_key_here
GROQ_MODEL=llama-3.1-70b-versatile
CORS_ORIGINS=http://localhost:3000
SESSION_TTL_MINUTES=120
DATABASE_URL=sqlite:///./quantis_interview_grid.db
REDIS_URL=redis://localhost:6379/0
JWT_SECRET=change_me_to_32_plus_chars
JWT_EXPIRE_HOURS=72

πŸ§ͺ Testing

cd backend
python -m pytest tests

cd ../frontend
npm run build

πŸ”’ Security Notes

  • Use a strong JWT_SECRET (32+ chars) for production.
  • Redis is optional; fallback works without it.

License

This project is licensed under the MIT License. See LICENSE.

Built with ❀️ by Crasta Telvin

⭐ Star this repo if you find it useful!

About

πŸ“‹ Structured interview preparation system inspired by real-world consulting workflows. Organizes behavioral, case-study, and domain-specific questions into a grid-based framework to simulate multi-stage interviews and improve structured thinking.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors