From Zero to One: The Story of a Personal AI Interview Coach
Note from the Developer: This project was more than a technical exercise; it was a journey. It started with a simple idea—to build a better way to prepare for tech interviews—and evolved into a comprehensive platform. Every feature, every challenge, and every line of code represents a real story of problem-solving and growth.
(This is the perfect place for a high-quality GIF that walks through the user journey: creating a deck, a review session, and a practice session.)
Interview Prep AI is an intelligent learning platform that transforms how tech professionals prepare for interviews. It moves beyond static flashcards to create a dynamic, feedback-driven ecosystem that helps you not only know the material but also master communicating it.
- Build Custom Decks in Seconds: Create hyper-relevant interview decks for any role, or let the AI build one for you by simply pasting a link to a real job description.
- Learn with Spaced Repetition: A smart SRS algorithm schedules your reviews at the optimal time to ensure knowledge moves into your long-term memory.
- Practice Aloud, Get Real Feedback: Use your voice to practice your answers and receive instant, AI-powered critiques on your content, clarity, and delivery.
- Track Your Growth: A personalized dashboard visualizes your progress, showing you exactly where you're strong and where you need to focus.
This project is a full-stack MERN application, architected for a modern, scalable, and real-time user experience.
A project's true value is in the problems solved along the way. This application's most advanced features are the direct result of tackling and overcoming significant engineering hurdles.
- The Ambition: To provide consistently accurate, structured feedback from the AI.
- The Roadblock: The LLM would occasionally "bleed" conversational text around its JSON output, breaking the frontend. After multiple failed attempts to perfect the prompt, the application's core feature was at risk.
- The Breakthrough: Instead of trying to force the AI to be perfect, I built a resilient system around its imperfections. I engineered a robust parsing layer on the backend that intelligently finds and extracts the valid JSON from the raw text.
- The Takeaway: This was a profound lesson in defensive programming. A senior engineer's job isn't just to make things work; it's to build systems that don't break when faced with the unexpected.
- The Ambition: To move beyond a simple flashcard app and implement a true Spaced Repetition System.
- The Roadblock: Translating the theoretical SM-2 algorithm into performant, stateful backend logic was far more complex than anticipated. My initial attempts were buggy and didn't correctly schedule the review intervals.
- The Breakthrough: I took a step back and dedicated time to studying open-source SRS implementations. This research allowed me to refactor my logic, resulting in a stable and effective scheduling engine.
- The Takeaway: This taught me the value of deep research before implementation. Sometimes, the fastest way to solve a problem is to slow down and learn from the work of others.
This project is a testament to the engineering process: ambition, struggle, learning, and ultimately, resilience.
To run this project locally, follow these steps:
- Node.js (v18 or later)
- MongoDB instance (local or cloud-based)
- Google Gemini API Key
git clone https://github.com/Shashank0701-byte/interview-prep.git
cd interview-prep# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm installIn the backend directory, create a .env file and add your configuration details:
MONGO_URI=your_mongodb_connection_string
GEMINI_API_KEY=your_gemini_api_key# Run the backend server (from the backend folder)
npm run dev
# Run the frontend development server (from the frontend folder in a new terminal)
npm run dev- AI-driven behavioral interview scoring
- Role-based question banks (SDE, Analyst, Designer)
- Video interview simulation
- Resume analysis and feedback
- Leaderboards and community features
Contributions are welcome!
- Fork this repository
- Create your feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
Author: Shashank Chakraborty
Live Project: Interview Prep AI
Email: shashankchakraborty712005@gmail.com
