Skip to content

Repository files navigation

VANI Interview Dashboard System

A fault-tolerant video interview platform designed for low-end smartphones with unstable internet connectivity. Conducts AI-powered video interviews, automated evaluation, and fraud detection.

System Architecture

┌─────────────────────────────────────────────────────┐
│            Frontend (React PWA)                     │
│  ┌─────────────────────────────────────────────┐   │
│  │ Interview Recording Engine                  │   │
│  │ - Chunk-based video recording               │   │
│  │ - IndexedDB caching                         │   │
│  │ - Resume capability                         │   │
│  └─────────────────────────────────────────────┘   │
│                      ↓                               │
│  ┌─────────────────────────────────────────────┐   │
│  │ User Dashboard                              │   │
│  │ - View results                              │   │
│  │ - Playback videos                           │   │
│  │ - See scores & feedback                     │   │
│  └─────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────┐
│            Backend (FastAPI)                        │
│  ┌─────────────────────────────────────────────┐   │
│  │ Upload Pipeline                             │   │
│  │ - Chunk validation & reassembly             │   │
│  │ - Resilient upload handling                 │   │
│  └─────────────────────────────────────────────┘   │
│                      ↓                               │
│  ┌─────────────────────────────────────────────┐   │
│  │ Processing Layer                            │   │
│  │ - Audio extraction                          │   │
│  │ - Speech-to-text (Whisper)                  │   │
│  │ - NLP evaluation                            │   │
│  └─────────────────────────────────────────────┘   │
│                      ↓                               │
│  ┌─────────────────────────────────────────────┐   │
│  │ AI Pipeline                                 │   │
│  │ - Fraud detection (face, liveness)          │   │
│  │ - Score evaluation                          │   │
│  │ - Job-ready classification                  │   │
│  └─────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────┐
│            Admin Dashboard (React)                  │
│  - Candidate management                            │
│  - Results review                                  │
│  - Fraud flag investigation                        │
└─────────────────────────────────────────────────────┘

Project Phases

Phase 1: UI + Basic Recording (Week 1)

  • Project setup (React + Vite + PWA)
  • Interview flow UI
  • Basic video recording
  • Question navigation

Phase 2: Video Pipeline (Week 2)

  • Chunk-based recording
  • IndexedDB storage
  • Resume system
  • Upload queue

Phase 3: Backend Integration (Week 3)

  • FastAPI setup
  • PostgreSQL schema
  • Chunk upload API
  • Candidate storage

Phase 4: Data Processing (Week 4)

  • Audio extraction
  • Speech-to-text
  • Transcript storage

Phase 5: Evaluation Engine (Week 5)

  • Benchmark answers
  • Relevance scoring
  • Clarity scoring
  • Completeness scoring

Phase 6: Fraud Detection (Week 6)

  • Face detection
  • Liveness detection
  • Multi-speaker detection

Phase 7: Final Classification (Week 7)

  • Fitment scoring
  • Job-ready classification
  • Result storage

Phase 8: Dashboard (Week 8)

  • User dashboard
  • Admin dashboard
  • Results playback
  • Candidate management

Getting Started

Prerequisites

  • Node.js 18+ (frontend)
  • Python 3.9+ (backend)
  • PostgreSQL 12+

Installation

Frontend:

cd frontend
npm install
npm run dev

Backend:

cd backend
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python main.py

Directory Structure

bharatAI/
├── frontend/                 # React PWA
│   ├── src/
│   │   ├── components/      # Reusable components
│   │   ├── pages/           # Page components
│   │   ├── hooks/           # Custom hooks
│   │   ├── utils/           # Utility functions
│   │   ├── services/        # API & storage services
│   │   └── App.jsx
│   └── package.json
├── backend/                  # FastAPI
│   ├── app/
│   │   ├── routes/          # API endpoints
│   │   ├── models/          # SQLAlchemy models
│   │   ├── services/        # Business logic
│   │   ├── utils/           # Utility functions
│   │   └── main.py
│   └── requirements.txt
└── README.md

Key Features

Video Recording

  • Chunk-based recording for stability
  • Works with unstable internet
  • Automatic resume capability
  • IndexedDB caching

Interview Flow

  • 7-question structured interview
  • Video + audio recording
  • Real-time question display
  • Progress tracking

Evaluation Engine

  • Automatic speech-to-text
  • Relevance, clarity, completeness scoring
  • Benchmark-based evaluation
  • Job-ready classification

Fraud Detection

  • Face detection
  • Liveness detection
  • Multi-speaker detection
  • Critical/High/Medium severity flags

Dashboards

  • User results view
  • Detailed question playback
  • Admin candidate management
  • Advanced filtering & search

API Endpoints

User Endpoints

POST   /api/candidates/register        Create new candidate
POST   /api/submissions/upload-chunk    Upload video chunk
POST   /api/submissions/complete        Mark submission complete
GET    /api/user/results/{id}           Get user results summary
GET    /api/user/results/{id}/detailed  Get detailed question breakdown

Admin Endpoints

GET    /api/admin/candidates            List all candidates (paginated, filterable)
GET    /api/admin/candidates/{id}       Get candidate detail with all data
PATCH  /api/admin/candidates/{id}       Update candidate status
DELETE /api/admin/candidates/{id}       Delete candidate record

Development Guidelines

  1. Frontend: Use Tailwind CSS for styling, Framer Motion for animations
  2. Backend: Follow RESTful conventions, use async/await for I/O operations
  3. Database: Use SQLAlchemy ORM, maintain data consistency
  4. Error Handling: Graceful degradation, informative error messages
  5. Performance: Optimize for low-end devices, minimize bundle size

Roadmap & Milestones

  • Week 1-2: Basic UI and recording foundation
  • Week 3-4: Backend and upload pipeline
  • Week 5-6: Speech processing and evaluation
  • Week 7-8: Fraud detection and dashboards
  • Week 9+: Optimization, testing, deployment

Vision: Build a fault-tolerant video data pipeline that enables fair AI-powered skill assessment on any device, anywhere, with any connection.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages