Skip to content

Latest commit

 

History

History
198 lines (148 loc) · 6.6 KB

File metadata and controls

198 lines (148 loc) · 6.6 KB

🚀 Student Performance Analysis Project 📊

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.

📚 Table of Contents

🎯 Project Goals

  • 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.

🛠️ Technologies Used

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

⚙️ Setup (Backend - Python)

  1. Clone the repository:
    git clone https://github.com/rishabhamar/student-performance-analysis
  2. Navigate to the project directory:
    cd student-performance-analysis/backend  # Go to the backend directory
  3. Create a virtual environment (recommended):
    python3 -m venv venv
    source venv/bin/activate  # On Linux/macOS
    venv\Scripts\activate  # On Windows
  4. Install dependencies:
    pip install -r requirements.txt
  5. Run the backend:
    python app.py

💻 Setup (Frontend - React)

  1. Navigate to the frontend directory:
    cd student-performance-analysis/frontend
  2. Install dependencies:
    npm install
    # or
    yarn install
  3. Start the development server:
    npm start
    # or
    yarn start
    This will start the development server and open the application in your browser.

💡 Usage

📂 File Upload

  • Upload CSV files containing student data (train, test, or combined).

🧑‍🎓 Student Details

  • View individual student profiles, including enrollment number, name, and division.

📈 Performance Analysis

  • 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 Data

  • Download the processed data in Excel format.

🧮 Data Processing (Python)

💾 Data Extraction

  • Data is loaded from CSV files using Pandas.

🧹 Data Preparation

  • Handling missing values (imputation or removal).
  • Data type conversion.
  • Feature identification (numerical and categorical).

✨ Data Transformation

  • Feature scaling (e.g., StandardScaler).
  • Feature engineering.

📊 Exploratory Data Analysis (EDA)

  • Visualizations (histograms, box plots, scatter plots).
  • Statistical summaries.
  • Correlation analysis.

🤖 Modeling

  • Clustering algorithms (e.g., K-Means, Agglomerative Clustering).

📈 Evaluation

  • Performance metrics (e.g., silhouette score).
  • Trend analysis.

🖼️ Screenshots

1. Intro Page

Intro Page Screenshot A welcoming introduction to the Student Performance Analysis web app.

2. Role Selection

Role Selection Screenshot Users can select their role (Student, Teacher, or Admin).

3. File Upload

File Upload Screenshot Uploading student data in CSV format.

File Upload Screenshot Viewing individual student profiles and information.

4. Performance Analysis - Overview

Performance Analysis Overview Screenshot

Performance Analysis Subject Screenshot A summary of student performance across subjects.

5. Download Data

Performance Analysis Trend Screenshot Visualizing student performance trends over time.

📽️ Video

WhatsApp.Video.2025-02-06.at.1.39.53.PM.1.mp4

✨ Future Enhancements

  • 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.

🤝 Contributing

Contributions are welcome! Please open an issue or submit a pull request.