Skip to content

MayankJha8274/EduPulse

Repository files navigation

EduPulse AI - Smart Attendance & Classroom Monitoring System

EduPulse AI React Vite Node.js

πŸŽ“ Intelligent Education Management System for Indian Schools (Class 1-10)

Live Demo | Documentation | Setup Guide


🌟 Overview

EduPulse AI is a comprehensive classroom monitoring and smart attendance system designed specifically for Indian schools. It provides offline-first capabilities for facial recognition attendance, teacher topic monitoring, and student engagement tracking.

🎯 Problem Statement

Indian schools lack transparency in classroom analytics. There's no way to:

  • Track if teachers are teaching the assigned curriculum
  • Monitor student attention and engagement levels
  • Predict student interests and future career paths
  • Mark attendance automatically without manual effort

πŸ’‘ Solution

EduPulse AI addresses all these challenges with a 100% offline-capable system that works even in areas with poor internet connectivity.


✨ Features

πŸ“· 1. Facial Recognition Attendance

  • Automatic face detection using classroom cameras
  • Works completely offline - no internet required
  • Privacy-first design - data stored locally
  • Syncs to cloud when internet is available

🎀 2. Teacher Topic Monitoring

  • Real-time speech recognition (works offline via Web Speech API)
  • Validates if teacher is teaching the assigned curriculum topic
  • Generates on-topic percentage and session reports
  • Provides improvement suggestions and performance grades

🧠 3. Student Attentiveness Tracking

  • ML-powered behavior detection (attentive, engaged, distracted)
  • Tracks hand raises and participation
  • Real-time engagement scoring
  • Future capability prediction based on 6-12 months of data

πŸ“Š 4. Multi-Role Dashboards

  • Admin Dashboard: School-wide analytics and teacher oversight
  • Teacher Dashboard: Current lecture analytics and performance trends
  • Student Dashboard: Personal progress tracking and goals

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ installed
  • Git installed
  • Modern browser (Chrome/Edge recommended for speech recognition)

Installation

# Clone the repository
git clone https://github.com/arnab-maity007/Attendance-app.git
cd Attendance-app

# Install all dependencies
npm run install:all

# Start development server
npm run dev

The application will be available at:

Demo Credentials

Role Email Password
Admin admin@school.edu admin123
Teacher sarah.johnson@school.edu teacher123
Student alex@student.edu student123

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     EduPulse AI System                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Camera    β”‚  β”‚ Microphone  β”‚  β”‚   Behavior Sensor   β”‚  β”‚
β”‚  β”‚   Input     β”‚  β”‚   Input     β”‚  β”‚   (ML Detection)    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚         β”‚                β”‚                     β”‚             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Face      β”‚  β”‚   Speech    β”‚  β”‚   Student           β”‚  β”‚
β”‚  β”‚ Recognition β”‚  β”‚ Recognition β”‚  β”‚ Attentiveness       β”‚  β”‚
β”‚  β”‚  Service    β”‚  β”‚  Service    β”‚  β”‚    Service          β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚         β”‚                β”‚                     β”‚             β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚                          β”‚                                   β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”                            β”‚
β”‚                   β”‚  IndexedDB  β”‚  (Offline Storage)         β”‚
β”‚                   β”‚   + Local   β”‚                            β”‚
β”‚                   β”‚   Storage   β”‚                            β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜                            β”‚
β”‚                          β”‚                                   β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”                            β”‚
β”‚                   β”‚   Backend   β”‚  (Express.js API)          β”‚
β”‚                   β”‚    API      β”‚  (Sync when online)        β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Project Structure

Attendance-app/
β”œβ”€β”€ gdg_hack_report/          # Main React Frontend (Vite)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/       # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/            # Page components
β”‚   β”‚   β”‚   β”œβ”€β”€ admin/        # Admin dashboard pages
β”‚   β”‚   β”‚   β”œβ”€β”€ teacher/      # Teacher dashboard pages
β”‚   β”‚   β”‚   └── student/      # Student dashboard pages
β”‚   β”‚   β”œβ”€β”€ services/         # Business logic services
β”‚   β”‚   β”‚   β”œβ”€β”€ AttendanceService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ TeacherMonitoringService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentAttentivenessService.js
β”‚   β”‚   β”‚   └── LiveDataService.js
β”‚   β”‚   β”œβ”€β”€ context/          # React Context providers
β”‚   β”‚   └── utils/            # Utility functions
β”‚   └── public/               # Static assets
β”œβ”€β”€ backend/                  # Express.js Backend
β”‚   └── server.js             # API endpoints
β”œβ”€β”€ frontend/                 # Original React app (legacy)
└── ML/                       # Machine Learning models

πŸ”Œ API Endpoints

Method Endpoint Description
GET /api/test Health check
GET /api/students List all students
POST /api/attendance Record attendance
GET /api/attendance Get attendance records
POST /api/teacher-sessions Record teacher session
POST /api/student-behavior Record behavior data
GET /api/alerts Get system alerts
GET /api/analytics/summary Get analytics summary
GET /api/analytics/trends Get trend data
GET /api/students/:id/future-capabilities Career predictions

πŸ› οΈ Technology Stack

Frontend

  • React 18 - UI framework
  • Vite 5 - Build tool
  • TailwindCSS - Styling
  • Recharts - Charts and visualizations
  • Lucide React - Icons
  • React Router v6 - Navigation

Backend

  • Node.js - Runtime
  • Express.js - API framework
  • MongoDB (optional) - Database

AI/ML Services

  • face-api.js - Facial recognition
  • Web Speech API - Speech recognition (offline)
  • Custom ML models - Behavior detection

Offline Capabilities

  • IndexedDB - Client-side database
  • LocalStorage - Quick data access
  • Service Workers - Offline caching (PWA)

πŸš€ Deployment

Deploy to Vercel (Recommended)

  1. Push code to GitHub
  2. Connect repository to Vercel
  3. Configure build settings:
    • Root Directory: gdg_hack_report
    • Build Command: npm run build
    • Output Directory: dist
  4. Deploy!

Deploy Backend to Railway/Render

  1. Connect repository
  2. Set root directory to backend
  3. Configure environment variables
  4. Deploy!

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘₯ Team

NOT LIKE US

  • Arnab Maity - ML and backend developer
  • Mayank Jha - Full Stack developer
  • Anugya - Full Stack Developer
  • Raghav - ML and Devops

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages