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.
student-academic-performance-predict.streamlit.app
Login:
admin/admin123(admin) orstaff/staff123(staff)
Prediction Form![]() |
Analytics Dashboard![]() |
Performance Distribution![]() |
Performance Heatmap![]() |
Student Records Table![]() |
Student Search![]() |
- 🔐 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
| 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
| Layer | Technology |
|---|---|
| UI | Streamlit |
| ML Model | Scikit-learn (Random Forest) |
| Data Processing | Pandas, NumPy |
| Visualization | Matplotlib, Seaborn |
| UI Testing | Playwright |
git clone https://github.com/rajit2004/student-performance-prediction.git
cd student-performance-predictionpip install -r requirements.txtstreamlit run app.py| Role | Username | Password |
|---|---|---|
| Admin | admin | admin123 |
| Staff | staff | staff123 |
This project includes a Playwright-based test script that automatically runs 20 student profiles through the app and validates predictions.
pip install playwright
playwright install chromium# Make sure the app is running first
streamlit run app.py
# Then in a separate terminal
python autofeed.pyPassed: 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.
student-performance-prediction/
├── app.py # Main Streamlit application
├── autofeed.py # Playwright automated UI test
script
├── requirements.txt # Dependencies
├── screenshots/ # App screenshots
└── README.md
- 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
If this project helped you, consider supporting my work:
Ranesh Rajit — B.Tech CS Student, India





