Skip to content

MRupam202005/predictiv-jee

Repository files navigation

title Predictiv Jee Backend
emoji 🚀
colorFrom blue
colorTo indigo
sdk docker
pinned false

🎓 Predictiv-JEE: ML-Powered College Recommendation Engine

Tech Stack Machine Learning Data Optimization

📌 Overview

Predictiv-JEE is a full-stack, data-driven web application designed to help engineering aspirants in India predict their college admission chances. By leveraging 8 years of historical JoSAA/CSAB cutoff data (430,000+ rows), the platform uses Machine Learning to accurately predict future cutoffs and categorize colleges into Safe, Target, and Reach buckets based on a student's unique rank and demographic profile.

🚀 Key Features & Technical Highlights

1. Dual Machine Learning Pipeline

  • Implemented split Random Forest Regressors (one for IITs, one for NIT/IIIT/GFTIs) to handle the fundamentally different rank scales of the Advanced vs. Mains exams.
  • Engineered rigorous data pre-processing: purged "Opening Rank" to prevent inference-time data leakage, handled NaN inconsistencies, and standardized demographic strings across 8 years of scattered institutional data.

2. Big Data Performance Optimization

  • Refactored the core data-loading engine to use Apache Parquet (PyArrow) instead of CSVs.
  • This compressed the data size by ~90%, preserved strict column data types, and reduced the Pandas boot-up load time from seconds to milliseconds.

3. High-Performance API Backend

  • Built a deeply optimized FastAPI server that pre-loads all serialized models (.pkl), encoders, and Parquet data into RAM globally on boot.
  • When a user requests recommendations, the API dynamically filters the database, vectorizes the candidates, and performs batch ML predictions instantly.

4. Premium React Frontend & Visualization

  • Built a modern, responsive UI using React, Vite, and Tailwind CSS.
  • Dynamic Probability Engine: Developed a custom mathematical algorithm that translates ML cutoff margins into visual admission percentages (0-99%), rendered via interactive SVG progress rings.
  • Historical Trend Charts: Integrated Recharts to plot 8-year historical closing rank trends per branch, beautifully overlaying the ML's future prediction.

📊 Model Evaluation

Our Dual Random Forest models are strictly evaluated against actual historical cutoffs to ensure high precision in predictions.

1. Actual vs Predicted Closing Rank (The Scatter Plots)

This visualization demonstrates the correlation between the model's predictions and actual historical closing ranks. A tight alignment along the red dashed line indicates high accuracy. The IIT model shows exceptional precision, while the NIT+ model gracefully handles a much wider, noisier distribution of ranks. Actual vs Predicted Closing Rank

2. Residual Distribution (The Histograms)

The residual distribution measures prediction error (Actual - Predicted). Both models feature a sharp peak exactly at zero, confirming that the models are unbiased and do not systematically over-predict or under-predict. Residual Distribution

3. Absolute Error by Year (Box Plots)

By grouping prediction errors by admission year, I validate the model's stability over time. The models maintain strong consistency, correctly adapting to shifting admission patterns year over year. Absolute Error by Year

📈 Evaluation Metrics

----------------------------------------
IIT MODEL METRICS
----------------------------------------
Mean Absolute Error (MAE): 91.62 ranks
R-squared (R²): 0.9971

----------------------------------------
NIT/IIIT/GFTI MODEL METRICS
----------------------------------------
Mean Absolute Error (MAE): 1828.53 ranks
R-squared (R²): 0.9583

🛠️ Technology Stack

  • Frontend: React.js, Vite, Tailwind CSS (v4), Recharts
  • Backend API: Python, FastAPI, Uvicorn, Pydantic
  • Machine Learning: Scikit-Learn, Pandas, NumPy
  • Data Engineering: Apache Parquet
  • Deployment: Dockerized architecture ready for PaaS/Cloud integration.

💻 Local Development Setup

1. Start the FastAPI Backend

# Clone the repository
git clone https://github.com/MRupam202005/predictiv-jee.git
cd predictiv-jee

# Create and activate a virtual environment
python -m venv .venv
# Windows: .venv\Scripts\activate
# Mac/Linux: source .venv/bin/activate

# Install backend dependencies
pip install -r requirements.txt

# Boot the API server
uvicorn main:app --reload

The API is now running at http://127.0.0.1:8000

2. Start the React Frontend

# Open a new terminal instance
cd predictiv-jee/frontend

# Install Node dependencies
npm install

# Start the development server
npm run dev

The Application is now live at http://localhost:5173

About

A full-stack ML recommendation engine predicting engineering admissions using Random Forests, FastAPI, and React. Optimized with Apache Parquet for 430k+ rows of historical data.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors