This project is part of the Microsoft Elevate Internship (December 2025 Batch).
It extends a Power BI student marks dashboard into an AI-powered workflow using Python, Copilot, and Power Automate.
The goal is to automate student performance analysis, generate predictions, and deliver insights through a modular, reproducible pipeline.
- Power BI dashboard with KPIs, grade distribution, and subject averages
- Student marks dataset (Excel) for rule-based and predictive analysis
- Python ML pipeline (scikit-learn) for pass/fail and grade prediction
- Copilot-generated insights and conditional formatting logic
- Power Automate workflow for automated reporting and refresh
- Organized folder structure for reproducibility and clarity
- Python (*required) β Download
Libraries:pandas,scikit-learn,joblib,openpyxl - Power BI Desktop (*required) β Download
- Microsoft Power Automate β Can be added by users for workflow automation/reporting
- Microsoft Copilot β Can be integrated via Copilot Studio to build AI agents
To view the main project file: Click here
NOTE: This file requries an compatible app for opening. Refer Tech Stack for more information.
student-ai-workflow/
ββ data/
β ββ raw/
β β ββ Student_Marks_Result_Analysis_MS-ELEVATE_CO-PILOT_PROJECT_DATASET_RISHIT-GHOSH.xlsx
β ββ processed/
β ββ student_predictions_20260115_151427.csv
β ββ student_predictions_latest.csv
ββ docs/
β ββ screenshots/ # Dashboard visuals
ββ exports/
β ββ AI-Prediction-and-Comparative-Analysis_MS-ELEVATE_CO-PILOT_PROJECT_RISHIT-GHOSH.pdf
β ββ Student_Marks_Result_Analysis_MS-ELEVATE_CO-PILOT_PROJECT_PRESENTATION_RISHIT-GHOSH.pdf
ββ models/
β ββ pass_classifier.pkl # Trained ML model
ββ powerbi/
β ββ Student_Marks_Result_Analysis_MS-ELEVATE_CO-PILOT_PROJECT_RISHIT-GHOSH.pbix
ββ presentation/
β ββ Student_Marks_Result_Analysis_MS-ELEVATE_CO-PILOT_PROJECT_PRESENTATION_RISHIT-GHOSH.pptx
β ββ Student_Marks_Result_Analysis_MS-ELEVATE_CO-PILOT_PROJECT_PRESENTATION_RISHIT-GHOSH.pdf
ββ scripts/
β ββ train_model.py # Model training script
β ββ run_pipeline.py # Prediction and export pipeline
ββ venv/ # Python virtual environment
ββ .gitignore
ββ LICENSE
ββ README.md
ββ requirements.txt
python -m venv venv
.\venv\Scripts\Activate # On Windowspip install -r requirements.txtpython scripts/train_model.pypython scripts/run_pipeline.py- Navigate to
powerbi/Student_Marks_Result_Analysis_MS-ELEVATE_CO-PILOT_PROJECT_RISHIT-GHOSH.pbix - Click Refresh to load latest predictions
- Rule-based evaluation of student marks
- KPIs: Total Students, Average Marks, Pass %, Top Scorer
- Visuals: Pass/Fail pie chart, subject averages, student table
- AI-driven predictions vs rule-based outcomes
- KPIs: Predicted Pass %, Average Overall Marks
- Visuals: Grade distribution, subject averages, pass % comparison
- Student-level prediction table with conditional formatting
This project automates student performance analysis using a modular AI workflow built with Python and Power BI. Here's a breakdown of how the system operates:
- The student marks dataset (
.xlsx) is stored indata/raw/. - It contains subject-wise scores for each student, along with identifiers like
StudentIDandName.
- The script
run_pipeline.pyreads the Excel file and computes:- Subject-wise average marks
- Overall average score
- Minimum subject mark
- These features are used to derive rule-based outcomes:
Rule_Pass: Pass ifOverallAvg β₯ 40andMinSubjectMark β₯ 35Rule_Grade: Grade assigned using thresholds β A (β₯75), B (60β74), C (<60)
- A pre-trained Logistic Regression model (
pass_classifier.pkl) is loaded frommodels/. - It predicts whether a student will pass based on the engineered features.
- Predicted grades are also assigned using the same thresholds on
OverallAvg.
- The final student-level view includes:
- Rule-based vs Predicted Pass/Fail
- Rule-based vs Predicted Grade
- Two CSVs are saved in
data/processed/:student_predictions_<timestamp>.csvβ For historical trackingstudent_predictions_latest.csvβ Used by Power BI for dashboard refresh
- Power BI loads the latest CSV and displays:
- Comparative KPIs (Pass %, Grade Distribution)
- Charts (Pie, Bar)
- Student-level performance table with conditional formatting
- Two dashboard pages:
- Marks & Result Analysis (Rule-based)
- AI Predictions & Comparative Analysis (ML-based)
- Sample tables show 7β8 rows for layout clarity; full dataset is available in
data/processed/ - Dashboard visuals are stored in
docs/screenshots/ - Project authored by Rishit Ghosh as part of the Microsoft Elevate Internship
Developed by RISHIT GHOSH
B.Tech CSE (AI & ML), Geethanjali College of Engineering and Technology
MS Elevate Internship | Capstone Project | December 2025 Batch | Microsoft Copilot
Check out my Portfolio here.
This project is for academic and internship purposes.
Feel free to reference or adapt with proper credit.
NOTE: The Dataset used for this Project was not taken from any other source.
The file pass_classifier.pkl is a serialized machine learning model created during training.
It contains the logic and parameters of the classifier used to predict whether a student will pass (1) or fail (0) based on their marks.
-
How itβs created:
Generated by runningtrain_model.py, which trains the model using scikit-learn and saves it withjobliborpickle. -
What it stores:
- The chosen algorithm (e.g., Logistic Regression, Decision Tree, etc.)
- Learned weights/parameters from the training dataset
- Any preprocessing steps included in the pipeline
-
How itβs used:
When you runrun_pipeline.py, the.pklfile is loaded and applied to new student data to generate predictions (Predicted_Pass,Predicted_Grade).
Example usage:
import joblib
# Load trained model
model = joblib.load('models/pass_classifier.pkl')
# Predict outcomes
predictions = model.predict(X_test)This ensures consistency β the same trained model can be reused without retraining every time.





