Skip to content

angelabera/EduSafe-Dropout-Identification

Repository files navigation

EduSafe - Student DropOut Identification Dashboard

A cutting-edge, intelligent dashboard for identifying and monitoring at-risk dropout students through data-driven analysis. EduSafe processes attendance, assessment, and attempt records to provide educators with actionable insights and early warning signals.

React TypeScript Vite License

✨ Features

📊 Advanced Analytics

  • Risk Calculation Engine: Real-time analysis of student performance metrics
  • Multi-Factor Assessment: Evaluates attendance, test scores, and learning attempts
  • Risk Categorization: Automatic classification into Safe, Watchlist, and At-Risk categories

🎨 Modern UI/UX

  • Dark Premium Theme: Elegant glassmorphism design with smooth animations
  • Animated Hero Section: Dual-layer SVG background with continuous drift animations
  • Responsive Design: Fully optimized for desktop, tablet, and mobile devices
  • Interactive Components: Smooth scroll indicators and interactive cards

📈 Dashboard & Visualization

  • Risk Distribution Chart: Visual overview of student risk categories
  • Comprehensive Student Table: Sortable and expandable student records with detailed flags
  • Alert System: High-visibility banner alerts for critical issues
  • Performance Breakdown: Detailed test score and attempt analysis

🔐 Data Management

  • CSV Upload System: Support for attendance, assessment, and attempts data
  • Data Merging: Intelligent consolidation of multiple data sources
  • Risk Flagging: Automated detection of problematic patterns
  • Reset Functionality: Easy data management and testing workflows

🚀 Getting Started

Prerequisites

  • Node.js: 16.x or higher
  • npm: 8.x or higher (or yarn/pnpm)

Installation

  1. Clone the repository
git clone https://github.com/yourusername/edusafe.git
cd edusafe
  1. Install dependencies
npm install
  1. Start the development server
npm run dev
  1. Open your browser Navigate to http://localhost:5173

📝 Usage

Uploading Data

  1. Navigate to the Upload Student Data section
  2. Upload three CSV files in the following format:

Attendance Data CSV

StudentID,AttendancePercentage
STU001,95
STU002,78
STU003,45

Assessment Data CSV

StudentID,TestScore1,TestScore2,TestScore3
STU001,85,88,90
STU002,72,68,75
STU003,45,42,38

Attempts Data CSV

StudentID,AttemptsUsed
STU001,2
STU002,4
STU003,8

Dashboard Features

  • Summary Cards: View overall statistics and risk distribution
  • Risk Chart: Visual representation of student risk categories
  • Student Table: Browse individual student records with risk details
  • Expandable Rows: Click to view detailed risk flags and score breakdowns
  • Reset Data: Clear all uploads to start fresh

🏗️ Project Structure

edusafe/
├── src/
│   ├── assets/
│   │   ├── hero-bg.svg          # Animated hero background
│   │   └── react.svg            # React logo
│   ├── components/
│   │   ├── AlertBanner.tsx      # Alert notification system
│   │   ├── CSVUpload.tsx        # File upload handler
│   │   ├── RiskChart.tsx        # Risk distribution visualization
│   │   ├── StudentTable.tsx     # Student data table with expansion
│   │   └── index.ts             # Component exports
│   ├── types/
│   │   └── index.ts             # TypeScript type definitions
│   ├── utils/
│   │   └── riskCalculator.ts    # Risk analysis engine
│   ├── App.tsx                  # Main application component
│   ├── App.css                  # Global styles and animations
│   ├── main.tsx                 # Application entry point
│   └── index.css                # Global base styles
├── public/
│   └── sample-data/             # Sample CSV files for testing
├── package.json
├── vite.config.ts
├── tsconfig.json
└── README.md

🎯 Risk Calculation Algorithm

EduSafe uses a weighted scoring system to identify at-risk students:

Factors Considered

  • Attendance: 40% weight
  • Assessment Scores: 35% weight
  • Learning Attempts: 25% weight

Risk Categories

  • Safe (Risk Score < 30): Student is performing well
  • Watchlist (30-70): Monitor closely for changes
  • At-Risk (> 70): Immediate intervention recommended

🛠️ Tech Stack

Technology Purpose
React 19.2 UI framework
TypeScript Type-safe development
Vite 5.0 Lightning-fast build tool
TailwindCSS Styling (via CSS Variables)
Lucide React Icon library
Papa Parse CSV parsing

🎨 Design System

Color Palette

  • Primary: #3b82f6 (Blue)
  • Secondary: #06b6d4 (Cyan)
  • Accent: #10b981 (Green)
  • Background: #020617 (Deep Navy)
  • Text: #f1f5f9 (Light Slate)

Key Features

  • Glassmorphism: Semi-transparent cards with backdrop blur
  • Animations: Smooth transitions and continuous SVG drift
  • Responsive Grid: Adapts from desktop to mobile seamlessly

📦 Building for Production

npm run build

Output will be in the dist/ directory, optimized and ready for deployment.

🔧 Development Commands

Command Description
npm run dev Start development server
npm run build Build for production
npm run preview Preview production build locally
npm run lint Run ESLint checks

📖 API Reference

Risk Calculator

analyzeAllStudents()

analyzeAllStudents(
  attendance: AttendanceRecord[],
  assessment: AssessmentRecord[],
  attempts: AttemptsRecord[]
): StudentProfile[]

Analyzes all student records and returns risk profiles.

getRiskDistribution()

getRiskDistribution(profiles: StudentProfile[]): RiskDistribution

Calculates the distribution of risk categories.

Acknowledgments

About

An early-warning system that detects student dropout risks by fusing attendance, performance, and academic trends—empowering educators to intervene before it’s too late.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages