Members: Anagha K, Saurav Sreejith, Shreya Padmakumar, S Murugan
PassPilot is an AI-assisted exam survival guide tailored for KTU students. It optimizes exam prep under tight deadlines using historical PYQ data and topic frequency analysis to generate personalized, minimum-effort study plans aimed at reaching the 40/100 pass threshold.
PassPilot implements scoring algorithms that consider topic frequency, difficulty, and expected yield. The platform supports:
- Survival Track: Minimum viable prep.
- Excellence Track: Extended, deeper study path.
- Crisis Mode: Last-minute planner with an effort-to-marks estimator.
Built on a modular architecture, PassPilot features a real-time pass probability estimator and topic recommendations.
- Language: Python 3.10+
- Frameworks:
Flask– REST APILangChain– RAG orchestration
- Libraries:
sentence-transformers– Semantic vector embeddingsscikit-learn– Cosine similaritynumpy– Numerical simulationslangchain-google-genai– Gemini LLM + Embeddingschromadb– Persistent vector storepypdf– PDF parsingpython-dotenv– Secure env var handlingflask-cors– CORS for frontend
- Repo: SauravSreejith/passpilot-web
- Framework: React.js (Vite)
- Language: TypeScript
- Styling:
tailwindcssshadcn/ui
- Libraries:
react-router-dom– Routinglucide-react– Icons
- Tools:
Vite– Build toolnpm– Package manager
- Python 3.10+ and
pip - Node.js and
npm - Google Gemini API Key
The project has two repos: backend and frontend. Clone and set up both.
# Clone the backend repo
git clone <your-backend-repository-url>
cd engine # or your backend folder
# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Create environment file
touch .env
# Then edit it with your Gemini key
# e.g., nano .envYour .env should contain:
GEMINI_API_KEY="AIzaSy...YOUR_API_KEY_HERE"# In a separate folder
git clone https://github.com/SauravSreejith/passpilot-web.git
cd passpilot-web
# Install frontend dependencies
npm installYou’ll need two terminals: one for backend, one for frontend.
# In backend directory
source venv/bin/activate
python run_server.pyThe backend runs on
http://localhost:5000.
# In frontend directory
npm run devThe frontend runs on
http://localhost:5173.
PassPilot tackles study paralysis — the fear of too much to study in too little time. It reframes exam prep as a strategic allocation problem. No more "study everything"; instead: "study smart, survive efficiently."
- Model:
all-MiniLM-L6-v2 - Goal: Understand question meaning, not just keywords
- Method: Embed both user input and database questions → compute cosine similarity
-
Formula:
Strategic Value = Topic Frequency × Average Marks Per Appearance -
Mechanism:
- Calculate user’s deficit
- Rank unstudied topics by Strategic Value
- Recommend highest ROI topics until gap is closed
-
Generate 100,000 simulated papers
-
For each:
- Roll for topic appearance (based on historical probability)
- Assign random historical mark value
- Tally up if student would pass
-
Output: Pass probability = % of simulations ≥ target score
-
Load & Split: Parse PDFs → Chunk with overlap using
RecursiveCharacterTextSplitter -
Embed & Store: Use
embedding-001→ Store inChromaDB -
Retrieve: Query embedded → Retrieve top chunks with vector similarity
-
Generate: Use
Gemini 1.5 Flashto answer based only on relevant context
✳️ This grounds the LLM’s answers, reducing hallucination.
-
Anagha K – Frontend Lead Built the entire React frontend with Vite, TypeScript, TailwindCSS, and Shadcn/UI.
-
Saurav Sreejith – Backend & Algorithms Built the Flask API, semantic search engine, strategic value algorithm, and Monte Carlo simulator.
-
Shreya Padmakumar – Team Lead, UI & Documentation Handled the comprehensive documentation of the project and assisted with frontend design
-
S Murugan – AI & RAG Designed the RAGAnalyzer pipeline using LangChain, Gemini, ChromaDB, and PDF processing. Handled DevOps & Architecture



