An end-to-end Machine Learning and MLOps project for analyzing and predicting student performance using academic and demographic data.
This repository covers the life cycle of a typical ML project — from data exploration and model training to deployment and CI/CD automation.
📌 This project was built for learning and experimentation in MLOps.
Student performance prediction is an application of predictive modeling where academic scores are forecast based on features like gender, ethnicity, parental education, lunch type, and test preparation completion.:contentReference[oaicite:1]{index=1}
This project integrates:
- Exploratory Data Analysis (EDA)
- Data preprocessing and feature engineering
- Model training and evaluation
- Model deployment via a REST API
- Containerization and CI/CD automation
- Serving predictions to users
Student_Performance_MLOps/
├── notebook/ # Notebooks with training, EDA, modeling
├── src/ # Source code (model utils, pipelines)
├── templates/ # UI templates (if web UI exists)
├── app.py # Web application entrypoint
├── requirements.txt # Python dependencies
├── setup.py # Project packaging
├── ReadMe.md
└── .gitignore
-
Clone the repo.
git clone https://github.com/abrarshahh/Student_Performance_MLOps.git cd Student_Performance_MLOps -
Create and activate a virtual environment
python3 -m venv venv source venv/bin/activate -
Install dependencies
pip install -r requirements.txt
-
Start the app:
python app.py
-
Visit the local dev server (default port may vary) to interact with the prediction UI.
- Use the notebook in notebook/ to explore the dataset
- Train models and evaluate performance
- Save the final model for deployment
-
Notebook for EDA & modeling — explore the dataset and train candidate models.
-
Source code for inference — load and serve models via app.py.
-
Web interface / REST API — interactively predict student performance.
-
Python 3.x
-
Flask for REST API
-
MLOps
-
Jupyter Notebooks
-
Pandas, Scikit-Learn, and visualization libraries