Skip to content

Repository files navigation

🧠 MockMind β€” AI-Powered Interview Simulator

Practice smart. Interview sharp. Get hired.

Next.js TypeScript Tailwind CSS Groq AI Prisma License: MIT

MockMind is a full-stack, AI-driven mock interview platform that generates personalized interview questions from your resume, evaluates your answers in real time, and produces a detailed performance report β€” all powered by Groq's LLaMA 3.1.

Live Demo β†’ Β Β·Β  Report Bug Β Β·Β  Request Feature


πŸ“Έ Preview

Landing page β†’ Setup wizard β†’ Live interview β†’ Performance report β†’ Dashboard

MockMind Preview


✨ Features

Feature Description
πŸ“„ Resume Parsing Upload PDF/TXT or paste text β€” AI extracts skills and projects
🧠 AI Question Generation 10 tailored questions per session via Groq LLaMA 3.1-8B
πŸ’» Monaco Code Editor In-browser VS Code editor for coding & SQL questions
πŸ“Š Spreadsheet Workspace Interactive grid for finance/accounting modeling questions
⚑ Real-time Evaluation Per-answer scoring with feedback and ideal answer
πŸ“ˆ Performance Report 4-dimension scoring: Communication, Technical Depth, Clarity, Confidence
πŸ—‚οΈ Dashboard Session history, trend chart, average score, best score
πŸ” Authentication Google OAuth + email/password via NextAuth.js
πŸ€– Multi-Provider AI Supports both Groq and Google Gemini 1.5 Flash
πŸ“± Responsive UI Fully responsive with Framer Motion animations

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Browser                          β”‚
β”‚  Landing β†’ /setup β†’ /interview β†’ /results β†’ /dashboard  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚ HTTP / Next.js App Router
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   Next.js 14 Server                      β”‚
β”‚                                                          β”‚
β”‚  /api/parse-resume      β†’ pdf-parse β†’ extracted text     β”‚
β”‚  /api/generate-questions β†’ Groq LLaMA 3.1 β†’ 10 Qs       β”‚
β”‚  /api/evaluate-answer   β†’ Groq LLaMA 3.1 β†’ score+feedbackβ”‚
β”‚  /api/generate-report   β†’ Groq LLaMA 3.1 β†’ final report  β”‚
β”‚  /api/auth/[...nextauth]β†’ Google OAuth / Credentials     β”‚
β”‚  /api/user/sessions     β†’ Prisma ORM β†’ PostgreSQL        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚ Prisma Client
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              PostgreSQL (Supabase / Neon)                β”‚
β”‚   Users table  ←→  Sessions table (cascading delete)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tech Stack

Layer Technology
Framework Next.js 14 (App Router)
Language TypeScript 5
Styling Tailwind CSS 3 + Framer Motion
AI / LLM Groq SDK (LLaMA 3.1-8B-Instant) + Gemini 1.5 Flash
Database ORM Prisma 5
Database PostgreSQL (Supabase / Neon)
Auth NextAuth.js v4 (Google OAuth + Credentials)
Code Editor Monaco Editor (VS Code engine)
Charts Recharts
PDF Parsing pdf-parse
Deployment Vercel

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • A Groq API key (free tier available)
  • A PostgreSQL database β€” Supabase (free tier) or Neon (free tier)
  • A Google OAuth app (for Google Sign-In) β€” setup guide

1. Clone the repository

git clone https://github.com/Jameers-code/interview_app.git
cd interview_app

2. Install dependencies

npm install

3. Configure environment variables

Copy the example env file and fill in your values:

cp .env.example .env.local
# .env.local

# Groq AI (required for live AI responses)
GROQ_API_KEY=gsk_xxxxxxxxxxxxxxxxxxxx

# PostgreSQL connection string (Supabase or Neon)
DATABASE_URL=postgresql://postgres:password@db.xxxx.supabase.co:5432/postgres

# NextAuth
NEXTAUTH_SECRET=generate-a-random-32-char-string
NEXTAUTH_URL=http://localhost:3000

# Google OAuth (optional β€” app works without it via email login)
GOOGLE_CLIENT_ID=xxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-xxxxxxx

# Set to "true" if GROQ_API_KEY is configured server-side
NEXT_PUBLIC_HAS_DEFAULT_KEY=true

Generate NEXTAUTH_SECRET:

openssl rand -base64 32

4. Set up the database

npx prisma generate
npx prisma db push

5. Run the development server

npm run dev

Open http://localhost:3000 in your browser.


🌐 Deploy to Vercel

One-click deploy

Deploy with Vercel

Manual deploy

  1. Push your code to GitHub
  2. Import the repo at vercel.com/new
  3. Add all environment variables from .env.example in the Vercel dashboard
  4. Set NEXTAUTH_URL to your production domain (e.g. https://mockmind.vercel.app)
  5. Deploy

Note: Vercel serverless functions are stateless β€” make sure DATABASE_URL points to a hosted PostgreSQL instance (Supabase or Neon), not a local SQLite file.


🎯 Supported Roles

MockMind generates role-specific questions tailored to each domain:

Role Question Types
Frontend / Backend / Full Stack Engineer Coding challenges, DSA, system design
DevOps Engineer CI/CD pipelines, Kubernetes, cloud architecture
Data Scientist / ML Engineer Python/pandas, model evaluation, pipeline design
Data Analyst SQL queries, window functions, ETL architecture
Financial Analyst DCF modeling, WACC, 3-statement models
Corporate Accountant Ledger reconciliation, GAAP, balance sheet modeling
Product Manager Product metrics, roadmap prioritization, user research

πŸ“ Project Structure

interview_app/
β”œβ”€β”€ prisma/
β”‚   β”œβ”€β”€ schema.prisma          # Database schema (User + Session models)
β”‚   └── migrations/            # DB migration history
β”œβ”€β”€ public/
β”‚   └── product_preview.png    # Landing page preview image
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/          # NextAuth route handler
β”‚   β”‚   β”‚   β”œβ”€β”€ evaluate-answer/   # AI answer scoring endpoint
β”‚   β”‚   β”‚   β”œβ”€β”€ generate-questions/ # AI question generation endpoint
β”‚   β”‚   β”‚   β”œβ”€β”€ generate-report/   # AI final report endpoint
β”‚   β”‚   β”‚   β”œβ”€β”€ parse-resume/      # PDF/TXT parsing endpoint
β”‚   β”‚   β”‚   └── user/sessions/     # Session history endpoint
β”‚   β”‚   β”œβ”€β”€ dashboard/         # Candidate analytics dashboard
β”‚   β”‚   β”œβ”€β”€ interview/         # Live interview simulator
β”‚   β”‚   β”œβ”€β”€ results/           # Post-interview report page
β”‚   β”‚   β”œβ”€β”€ setup/             # Interview configuration wizard
β”‚   β”‚   └── page.tsx           # Landing page
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Header.tsx         # Global navigation + auth modal
β”‚   β”‚   β”œβ”€β”€ ScoreChart.tsx     # Recharts performance trend chart
β”‚   β”‚   β”œβ”€β”€ SessionList.tsx    # Past sessions table component
β”‚   β”‚   └── ...
β”‚   └── lib/
β”‚       β”œβ”€β”€ auth.ts            # NextAuth config (Google + Credentials)
β”‚       β”œβ”€β”€ groq.ts            # Groq/Gemini AI abstraction layer
β”‚       └── prisma.ts          # Prisma client singleton
β”œβ”€β”€ .env.example               # Environment variable template
β”œβ”€β”€ next.config.mjs            # Next.js configuration
└── vercel.json                # Vercel deployment configuration

πŸ”‘ Environment Variables Reference

Variable Required Description
GROQ_API_KEY βœ… Groq API key for LLaMA 3.1
DATABASE_URL βœ… PostgreSQL connection string
NEXTAUTH_SECRET βœ… Random secret for JWT signing
NEXTAUTH_URL βœ… Full URL of your deployment
GOOGLE_CLIENT_ID ⬜ Google OAuth client ID
GOOGLE_CLIENT_SECRET ⬜ Google OAuth client secret
NEXT_PUBLIC_HAS_DEFAULT_KEY ⬜ Set true if Groq key is server-configured

πŸ§ͺ Running Without an API Key

MockMind includes a sandbox mode β€” if no API key is configured, the app falls back to intelligent mock responses so you can explore the full UI without any setup.


πŸ“„ License

This project is licensed under the MIT License.


πŸ‘€ Author

Jameer


⭐ Star this repo if you found it useful!
Built with 🧠 and powered by AI.

About

🧠 MockMind β€” AI-Powered Interview Simulator MockMind is a full-stack, AI-driven mock interview platform that generates personalized interview questions from your resume, evaluates your answers in real time, and produces a detailed performance report β€” all powered by Groq's LLaMA 3.1.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages