Mock AI
Generates and grades interviews with an LLM while keeping auth, sessions, and scoring accountable to a real backend.
operational overview
Mock AI exists because interview practice needs an examiner that scales: something that writes questions for a specific subject and difficulty, listens to answers, and returns feedback specific enough to act on. The platform pairs a FastAPI service with a React single-page app and puts Gemini behind both question generation and qualitative evaluation.
architecture
The React frontend drives conversational onboarding — intent capture through test execution and analysis — plus a voice-enabled interview simulator using browser speech synthesis and speech-to-text with timed prompts. The FastAPI service owns authentication (hashed passwords, JWT via python-jose), question generation, and answer evaluation against Gemini 2.0 Flash. MongoDB persists users and sessions through Motor with unique-email enforcement and pooled connections; performance views render scores and improvement recommendations from stored sessions.
constraints
- LLM accountability — generated questions and feedback flow through one backend service, never straight from the browser to the model
- session integrity — assessments mean nothing if identity and history are loose; JWT and unique-email enforcement are load-bearing
- voice latency — the capture → evaluation → synthesis round-trip must stay conversational without any server-side audio infrastructure to tune
tradeoffs
- browser Web Speech APIs over a server-side ASR pipeline: zero audio infrastructure, at the cost of device-dependent recognition quality
- Gemini for both generation and evaluation over separate graders: one model contract, consistent rubric, single point of prompt discipline
failure notes
- a reserved java-backend module sits in the repository, currently empty — an honest placeholder for planned integration rather than a hidden dead end
infrastructure
fastapi · react 19 · mongodb · gemini 2.0 flash · web speech api · jwt auth
engineering reasoning
Putting an LLM inside a product is an infrastructure problem wearing an AI costume: the model is the easy part; auth, persistence, and making feedback traceable to a stored session are what make the assessment worth anything.
future work
- the reserved Java service integration
- richer rubric-anchored scoring beyond qualitative feedback