This project analyzes student performance data to identify trends, cluster students based on their performance, and provide actionable insights into their academic progress. It leverages Python for data processing and analysis, and a React-based web interface for user interaction.
- ๐ฏ Project Goals
- ๐ ๏ธ Technologies Used
- โ๏ธ Setup (Backend - Python)
- ๐ป Setup (Frontend - React)
- ๐ก Usage
- ๐งฎ Data Processing (Python)
- ๐ผ๏ธ Screenshots
- โจ Future Enhancements
- ๐ค Contributing
- Identify trends in student performance over time.
- Cluster students into performance groups (e.g., Strong, Average, Weak).
- Provide a user-friendly web interface for data upload, analysis, and visualization.
- Generate reports that can be used by educators and administrators.
Backend (Python):
- ๐ Python
- ๐ผ Pandas
- ๐ข NumPy
- ๐ Matplotlib
- ๐ Seaborn
- ๐ค Scikit-learn
Frontend (React):
- โ๏ธ React
- ๐บ๏ธ React Router
- ๐จ Material UI (MUI X Charts, Typography)
- ๐ Axios
- โฌ๏ธ js-file-download
- ๐ค react-icons
- โจ AOS (for animations)
- ๐ Tailwind CSS
- Clone the repository:
git clone https://github.com/rishabhamar/student-performance-analysis
- Navigate to the project directory:
cd student-performance-analysis/backend # Go to the backend directory
- Create a virtual environment (recommended):
python3 -m venv venv source venv/bin/activate # On Linux/macOS venv\Scripts\activate # On Windows
- Install dependencies:
pip install -r requirements.txt
- Run the backend:
python app.py
- Navigate to the frontend directory:
cd student-performance-analysis/frontend - Install dependencies:
npm install # or yarn install - Start the development server:
This will start the development server and open the application in your browser.
npm start # or yarn start
- Upload CSV files containing student data (train, test, or combined).
- View individual student profiles, including enrollment number, name, and division.
- Analyze student performance by subject.
- View trends over time using line charts.
- Compare performance against class averages.
- Use filters to select specific subjects.
- Visualize class performance breakdown using pie charts.
- Download the processed data in Excel format.
- Data is loaded from CSV files using Pandas.
- Handling missing values (imputation or removal).
- Data type conversion.
- Feature identification (numerical and categorical).
- Feature scaling (e.g., StandardScaler).
- Feature engineering.
- Visualizations (histograms, box plots, scatter plots).
- Statistical summaries.
- Correlation analysis.
- Clustering algorithms (e.g., K-Means, Agglomerative Clustering).
- Performance metrics (e.g., silhouette score).
- Trend analysis.
A welcoming introduction to the Student Performance Analysis web app.
Users can select their role (Student, Teacher, or Admin).
Uploading student data in CSV format.
Viewing individual student profiles and information.
A summary of student performance across subjects.
Visualizing student performance trends over time.
WhatsApp.Video.2025-02-06.at.1.39.53.PM.1.mp4
- Backend Integration: Fully integrate the frontend with a robust backend.
- User Authentication: Implement secure user authentication based on roles (Student, Teacher, Admin).
- Improved UI/UX: Enhance the user interface and user experience based on user feedback.
- Interactive Charts: Make the charts more interactive and customizable.
- More Detailed Analysis: Provide more in-depth performance analysis options, such as percentile rankings, subject-specific insights, and predictive modeling.
- Data Validation: Add robust data validation for uploaded CSV files to prevent errors.
- Reporting: Generate automated reports for teachers and administrators.
Contributions are welcome! Please open an issue or submit a pull request.