Inspiration

the current CS job market

What it does

Teaches you fundamental system design theory in a gamified quick mobile app

How we built it

React native web app made for iOS and android. The front-end is set up to use simple components with a few packages to help with icons and haptic feedback on iOS devices. For the back end we Built it with FastAPI, Supabase, Gemini 2.5 Flash, ElevenLabs, and Whisper. The core endpoint /api/evaluate-answer takes a user's spoken answer, sends it to Gemini for evaluation with adaptive teaching prompts (deeper explanations for low scores, polish for high scores), detects "I don't know" responses, converts feedback to speech with ElevenLabs, and returns everything in 3-5 seconds. Other endpoints serve questions from Supabase (/api/questions, /api/deep-questions) and transcribe audio with Whisper (/api/transcribe-file). The entire pipeline voice input, AI evaluation, voice output happens in one request. To finish up the project, we added a Snowflake dashboard using a RESTful API data pipeline to pull all live information from our app. It is used to monitor the most commonly answered questions by our users and how many they get correct.

Challenges we ran into

Gemini kept ignoring our "I don't know" detection instructions. Users would say "I don't know" and still get 3/5 scores. We solved this by adding a post processing validation layer that catches when the LLM fails and overrides the score. Also Prompt engineering balancing between being too hard and too lenient was hard. We needed critical feedback for real interview prep.

Accomplishments that we're proud of

Users can speak their answers naturally and get spoken feedback back. It feels like talking to a real interviewer, no filling out a form. The system automatically adjusts explanation depth based on performance!

What we learned

AI isn't perfect plan for it! Even good models like Gemini miss things. Voice UX is hard but powerful!

What's next for TechPrep

Leaderboards and point tracking over a period of time

Built With

Share this project:

Updates