Skip to content

rajit2004/student-performance-prediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Student Performance Prediction System

An ML-powered web application that predicts student academic performance based on behavioral, academic, and engagement parameters — with an admin analytics dashboard, student search, and CSV export.

Live App GitHub Sponsors Python ML Streamlit


🔗 Live Demo

student-academic-performance-predict.streamlit.app

Login: admin / admin123 (admin) or staff / staff123 (staff)


📸 Screenshots

Prediction Form
Analytics Dashboard
Performance Distribution
Performance Heatmap
Student Records Table
Student Search

✨ Features

  • 🔐 Role-based login — Admin and Staff access levels
  • 🧾 Student data entry — study habits, assignments, participation, grades, sleep
  • 🤖 ML prediction — classifies performance as Poor / Average / Good / Excellent
  • 📊 Analytics dashboard (Admin only):
    • Total records, average absences, top result
    • Performance distribution bar chart
    • Study time vs absences heatmap
    • Student search functionality
    • CSV export
  • 🔄 Multi-student support — form resets after each prediction
  • 🧪 Automated UI testing — Playwright script to run 20 test cases automatically

🧠 ML Model

Detail Info
Algorithm Random Forest Classifier
Type Multi-class Classification
Output Classes Poor, Average, Good, Excellent
Test Accuracy 18/20 (90%) on automated test suite

Input features:

  • Daily Study Time
  • Study Consistency
  • Assignment Completion Rate
  • Class Participation
  • Previous Semester Average
  • Sleep Duration
  • Age

🛠️ Tech Stack

Layer Technology
UI Streamlit
ML Model Scikit-learn (Random Forest)
Data Processing Pandas, NumPy
Visualization Matplotlib, Seaborn
UI Testing Playwright

⚡ Setup & Usage

1. Clone the repo

git clone https://github.com/rajit2004/student-performance-prediction.git
cd student-performance-prediction

2. Install dependencies

pip install -r requirements.txt

3. Run the app

streamlit run app.py

4. Login

Role Username Password
Admin admin admin123
Staff staff staff123

🧪 Automated UI Testing

This project includes a Playwright-based test script that automatically runs 20 student profiles through the app and validates predictions.

Setup

pip install playwright
playwright install chromium

Run tests

# Make sure the app is running first
streamlit run app.py

# Then in a separate terminal
python autofeed.py

Test results (latest run)

Passed: 18/20
❌ Sneha Sharma: Expected Average, Got Good     ← model edge case
❌ Pooja Krishnan: Expected Good, Got Excellent ← model edge case

The 2 failures are known edge cases where the model predicts higher than expected for borderline profiles — not bugs.


📁 Project Structure

student-performance-prediction/
├── app.py              # Main Streamlit application
├── autofeed.py         # Playwright automated UI test 
script
├── requirements.txt    # Dependencies
├── screenshots/        # App screenshots
└── README.md

🎯 Future Improvements

  • Integration with real academic datasets
  • Advanced ML models (XGBoost, Neural Networks)
  • Feature importance visualization
  • Student risk detection system
  • Database integration (PostgreSQL / MongoDB)
  • Automated daily test runs via GitHub Actions

💖 Support

If this project helped you, consider supporting my work:

Sponsor


👨‍💻 Author

Ranesh Rajit — B.Tech CS Student, India

GitHub

About

ML-based Streamlit web app that predicts student academic performance using a Random Forest classifier. Features role-based Admin/Staff login, an analytics dashboard with heatmaps, performance distribution charts, and CSV export.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors

Languages