A Production-Ready AI-Powered Interview Preparation Platform
PrepFlow is a robust, full-stack web application designed for software engineers to master data structures, algorithms, and system design concepts. It combines a modern Kanban workflow, a mathematically rigorous Spaced Repetition System (SM-2), and an AI-powered Mock Interview evaluator.
+-------------------+
| React Frontend |
| (Vite, Redux, Dnd)|
+--------+----------+
|
| REST API (JWT Auth)
v
+--------+----------+
| FastAPI Backend |
| (Rate Limiting, |
| Pydantic Val.) |
+--------+----------+
|
+-------------------+-------------------+
| | |
v v v
+-------------+ +-------------+ +-------------+
| MongoDB | | SM-2 Engine | | AI Engine |
| (Motor Async| | (Spaced Rep)| | (Mock Intv.)|
+-------------+ +-------------+ +-------------+
| Feature | Description |
|---|---|
| 🤖 AI Mock Interviews | Simulated, timed interviews. Enter your solution and receive AI-driven scoring (0-100), strength analysis, and improvement feedback. |
| 🧠 True SM-2 Spaced Repetition | Uses the formal SuperMemo-2 algorithm. Interval and Ease Factor (EF = EF + (0.1 - (5-q)*(0.08+(5-q)*0.02))) computed on the backend. |
| 📊 Analytics Insight Engine | Goes beyond charts. Computes your weakest topics, hardest difficulty drop-offs, and 30-day consistency score. |
| 📋 Kanban Board | Highly optimized drag-and-drop board with column grouping, due-date pulse animations, and optimistic UI updates. |
| 🛡️ Backend Hardening | Global in-memory rate limiting, Request logging middleware, Pydantic input validation, and MongoDB indexing. |
| Page | Route | Description |
|---|---|---|
| Board | / |
Kanban drag-and-drop board |
| Topics | /topics |
All topics with progress tracking |
| Topic Detail | /topics/:id |
Debounced search and difficulty filtering |
| Reviews | /reviews |
SM-2 Spaced repetition review session |
| Analytics | /analytics |
Real-time charts, GitHub-style heatmaps, and AI insights |
| Mock Interview | /mock-interview |
Timed interview simulator with AI grading |
This project is built for modern serverless and PaaS deployment.
- Push your repository to GitHub.
- Go to Vercel and import the project.
- Set the Framework Preset to Vite.
- Set the Root Directory to
frontend. - Add Environment Variable:
VITE_API_URL=https://your-backend-url.onrender.com
- Create a new Web Service on Render/Railway.
- Connect the repository and set Root Directory to
backend. - Build Command:
pip install -r requirements.txt - Start Command:
uvicorn main:app --host 0.0.0.0 --port $PORT - Environment Variables:
MONGODB_URL: Your MongoDB Atlas connection string.SECRET_KEY: A strong secure random string.CORS_ORIGINS:https://your-vercel-app.vercel.app
- Create a free cluster on MongoDB Atlas.
- Go to Database Access and create a user (username/password).
- Go to Network Access and allow IP
0.0.0.0/0. - Copy the connection string into your Backend Environment Variables.
git clone https://github.com/1tsadityaraj/PrepFlow.git
cd PrepFlowcd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# Run the server (auto-seeds mock data in-memory for testing)
uvicorn main:app --reloadcd frontend
npm install
npm run devThe app will be running at http://localhost:5173.
- Architected and developed a full-stack interview preparation platform using React, Tailwind CSS, FastAPI, and MongoDB, achieving a robust, scalable architecture with global rate limiting and comprehensive Pydantic request validation.
- Implemented a mathematically rigorous Spaced Repetition System (SM-2) on the backend, tracking User Ease Factor and optimal intervals to maximize long-term retention of algorithmic concepts.
- Integrated an AI-powered Mock Interview Simulator, enabling users to take timed, randomized assessments and receive instantaneous, multi-faceted feedback (score, strengths, weaknesses) via a custom evaluation engine.
- Engineered an Analytics Intelligence Layer that processes 30-day user activity data to render GitHub-style heatmaps, identify weak topics, calculate consistency scores, and provide actionable study insights using Recharts.
- Optimized frontend performance by implementing debounced search inputs,
useMemo/React.memofor component virtualization, and robust Redux state management across a highly interactive drag-and-drop Kanban workflow.



