Skip to content

Sumant3086/ProxyMukt-Attendance-System-

Repository files navigation

πŸŽ“ ProxyMukt

Intelligent Attendance System That Eliminates Proxy Attendance

Build Status License Version Node MongoDB

πŸš€ Live Demo πŸš€

Features β€’ Screenshots β€’ Installation β€’ Tech Stack β€’ Documentation


🎯 Quick Access

Instant Access - No Installation Required!

Role Email Password
πŸ‘‘ Admin admin@proxymukt.com Admin@123
πŸ‘¨β€πŸ« Faculty faculty1@gmail.com faculty1
πŸ‘¨β€πŸŽ“ Student student1@gmail.com student1

Experience the full power of multi-layer fraud detection in action!


🎯 Problem Statement

The Challenge: Proxy attendance is a widespread problem in educational institutions where students mark attendance on behalf of absent peers. Traditional systems using manual registers, static QR codes, or simple biometric methods are easily exploited, leading to:

  • πŸ“‰ Inaccurate attendance records
  • 🎭 Identity fraud and impersonation
  • πŸ“± Screenshot sharing of QR codes
  • 🌍 Location spoofing with fake GPS apps
  • πŸ”„ Proxy marking through VPNs and proxies

The Solution: ProxyMukt implements a multi-layered security approach combining rotating QR codes, face liveness detection, GPS geofencing, device fingerprinting, and advanced proxy detection to create a fraud-proof attendance system that's impossible to bypass.

🌐 Experience it yourself: https://proxymukt.onrender.com/


✨ Features

πŸ” Multi-Layer Security Architecture

🎫 Dynamic QR Authentication

  • Rotating QR codes every 20 seconds
  • HMAC-SHA256 cryptographic signing
  • 100-second validity window
  • Session-specific token binding
  • Screenshot fraud prevention

πŸ‘€ Face Liveness Detection

  • Real-time movement verification
  • Blink and head movement detection
  • Anti-spoofing with photo detection
  • Privacy-focused (no facial recognition)
  • TensorFlow.js powered

πŸ“ GPS Geofencing

  • Configurable radius verification
  • Location accuracy validation
  • Impossible travel detection
  • Distance calculation from session
  • Suspicious location flagging

πŸ–₯️ Device Fingerprinting

  • Unique device signature tracking
  • Browser, OS, screen resolution
  • Hardware concurrency analysis
  • Multi-device detection
  • Suspicious pattern identification

πŸ›‘οΈ Proxy/VPN Detection

  • Advanced IP reputation analysis
  • Datacenter IP identification
  • VPN and proxy detection
  • Tor network blocking
  • Real-time threat scoring

⚑ Real-Time Updates

  • WebSocket integration
  • Live attendance feed
  • Instant notifications
  • Auto-refreshing dashboards
  • Session status sync

πŸ‘₯ Role-Based Dashboards

πŸ‘¨β€πŸ’Ό Admin Dashboard

  • System-wide analytics and monitoring
  • User management (bulk operations)
  • Security center with threat detection
  • Audit logs and activity tracking
  • Department and class management
  • IP whitelist configuration

πŸ‘¨β€πŸ« Faculty Dashboard

  • Class and session management
  • Flexible verification controls
  • Real-time attendance monitoring
  • Student enrollment management
  • Performance analytics
  • Alert notifications

πŸ‘¨β€πŸŽ“ Student Dashboard

  • QR code scanning interface
  • Attendance history and analytics
  • Performance tracking
  • Leave/appeal management
  • Timetable and schedule
  • Achievement badges

🎯 Advanced Features

  • Session Types: Offline (QR) and Online (Zoom/Meet/Teams) support
  • Pause/Resume: Faculty can pause sessions temporarily
  • Dynamic Controls: Toggle verification methods during live sessions
  • Attendance Goals: Set targets and track streaks
  • Leaderboards: Gamification with rankings
  • Reports: Export attendance data (CSV/PDF)
  • Notifications: Real-time alerts for all stakeholders
  • Dark Theme: Modern, eye-friendly UI

🎬 Live Demo & Screenshots

🌐 Try It Live: https://proxymukt.onrender.com/

Test Credentials:

  • πŸ‘‘ Admin: admin@proxymukt.com / Admin@123
  • πŸ‘¨β€πŸ« Faculty: faculty1@gmail.com / faculty1
  • πŸ‘¨β€πŸŽ“ Student: student1@gmail.com / student1

πŸ’‘ Tip: Try logging in as different roles to experience the complete system!


πŸ“Έ Application Screenshots

🏠 Faculty Dashboard

Faculty Dashboard Real-time session monitoring with live attendance updates, class management, and quick actions


πŸ‘¨β€πŸ’Ό Admin Dashboard

Admin Dashboard Comprehensive system overview with analytics, user management, and security monitoring


πŸ‘¨β€πŸŽ“ Student Dashboard

Student Dashboard Student portal with attendance history, performance metrics, and QR scanning


πŸ“± QR Scanning Interface

QR Scanning Seamless QR code scanning with face liveness and location verification


πŸ“… Live Session Monitoring

Class Session Faculty view of active session with real-time attendance feed and verification status


🚨 Faculty Alerts & Security

Faculty Alerts Security alerts for proxy detection, suspicious activity, and low attendance warnings


πŸ“’ Announcements System

Announcements System-wide and class-specific announcements with priority levels


πŸ“ Leave Management & Appeals

Leave Appeal Student leave requests and appeals with document upload support


πŸ“… Student Timetable

Timetable Weekly schedule with upcoming sessions and calendar integration


πŸ› οΈ Tech Stack

Frontend

βš›οΈ  React 18              - Modern UI library with hooks
πŸš€  Vite                  - Lightning-fast build tool
🎨  Tailwind CSS          - Utility-first styling
🎭  Framer Motion         - Smooth animations
πŸ”„  React Router          - Client-side routing
πŸ“Š  Recharts              - Data visualization
πŸ”Œ  Socket.IO Client      - Real-time communication
πŸ“·  jsQR                  - QR code scanning
🎯  Zustand               - State management
🎨  Lucide React          - Beautiful icons

Backend

🟒  Node.js               - JavaScript runtime
⚑  Express               - Web framework
πŸƒ  MongoDB               - NoSQL database
πŸ”  JWT                   - Authentication
πŸ”’  bcryptjs              - Password hashing
πŸ”Œ  Socket.IO             - WebSocket server
πŸ“§  Nodemailer            - Email service
πŸ›‘οΈ  Helmet                - Security headers
⏱️  Express Rate Limit    - DDoS protection

Security & ML

πŸ€–  TensorFlow.js         - Face liveness detection
πŸ”  HMAC-SHA256           - QR token signing
πŸ›‘οΈ  Advanced Proxy Detection
πŸ“  Geolocation API       - GPS verification
πŸ–₯️  Device Fingerprinting
πŸ”  IP Reputation Analysis

πŸ“¦ Installation

Prerequisites

Before you begin, ensure you have the following installed:

Quick Start

1️⃣ Clone the Repository

git clone https://github.com/Sumant3086/ProxyMukt-Attendance-System-.git
cd ProxyMukt-Attendance-System-

2️⃣ Backend Setup

# Navigate to server directory
cd server

# Install dependencies
npm install

# Create environment file
cp .env.example .env

# Edit .env with your configuration
# Required: MONGODB_URI, JWT_SECRET
# Optional: ZOOM credentials, Email service

# Seed database with sample data
npm run seed

# Start development server
npm run dev

Server will run on: http://localhost:5000

3️⃣ Frontend Setup

# Navigate to client directory (from root)
cd client

# Install dependencies
npm install

# Create environment file
cp .env.example .env

# Edit .env with API URL
# VITE_API_URL=http://localhost:5000/api

# Start development server
npm run dev

Client will run on: http://localhost:5173

πŸ”§ Environment Configuration

Server Environment Variables (.env)
# Server Configuration
NODE_ENV=development
PORT=5000

# Database
MONGODB_URI=mongodb://localhost:27017/proxymukt

# JWT Authentication
JWT_SECRET=your_super_secret_jwt_key_here_change_in_production
JWT_EXPIRE=7d

# Client URL (for CORS)
CLIENT_URL=http://localhost:5173

# Admin Credentials (for seeding)
ADMIN_EMAIL=admin@proxymukt.com
ADMIN_PASSWORD=Admin@123

# Optional: Zoom Integration
ZOOM_ACCOUNT_ID=your_zoom_account_id
ZOOM_CLIENT_ID=your_zoom_client_id
ZOOM_CLIENT_SECRET=your_zoom_client_secret

# Optional: Email Service (for notifications)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_specific_password
EMAIL_FROM=ProxyMukt <noreply@proxymukt.com>
Client Environment Variables (.env)
# API Configuration
VITE_API_URL=http://localhost:5000/api

# Optional: Analytics
VITE_ENABLE_ANALYTICS=false

🎯 Default Login Credentials

After running npm run seed, use these credentials:

Role Email Password
πŸ‘‘ Admin admin@proxymukt.com Admin@123
πŸ‘¨β€πŸ« Faculty faculty1@gmail.com faculty1
πŸ‘¨β€πŸŽ“ Student student1@gmail.com student1

Note: Faculty and students are numbered 1-50 and 1-500 respectively


🎯 How It Works

πŸ“‹ System Flow

graph LR
    A[Student] -->|1. Scans QR| B[Verification Layer]
    B -->|2. Face Liveness| C{All Checks Pass?}
    B -->|3. GPS Location| C
    B -->|4. Device Check| C
    B -->|5. Proxy Detection| C
    C -->|βœ… Yes| D[Attendance Marked]
    C -->|❌ No| E[Rejected + Alert]
    D -->|6. Real-time Update| F[Faculty Dashboard]
    E -->|7. Security Log| G[Admin Dashboard]
Loading

πŸ”„ Detailed Workflow

For Faculty:

  1. Create Class β†’ Add class details and enroll students
  2. Start Session β†’ Choose type (Offline/Online) and configure verification methods
  3. Monitor Live β†’ View real-time attendance feed with student names
  4. Manage Session β†’ Pause/resume, toggle QR, adjust verification settings
  5. End Session β†’ Close session and review analytics

For Students:

  1. Scan QR Code β†’ Use camera to scan faculty's rotating QR code
  2. Face Verification β†’ Complete liveness check (blink/move head)
  3. Location Check β†’ Confirm presence at session location
  4. Background Checks β†’ System validates device, IP, and proxy status
  5. Attendance Confirmed β†’ Receive instant confirmation and notification

Security Validation:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Multi-Layer Security Validation                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  βœ“ QR Token Signature (HMAC-SHA256)                β”‚
β”‚  βœ“ Token Expiry (100 seconds)                      β”‚
β”‚  βœ“ Session Binding                                 β”‚
β”‚  βœ“ Face Liveness (if enabled)                      β”‚
β”‚  βœ“ GPS Distance (if enabled)                       β”‚
β”‚  βœ“ Device Fingerprint Match                        β”‚
β”‚  βœ“ IP Reputation Score                             β”‚
β”‚  βœ“ Proxy/VPN Detection                             β”‚
β”‚  βœ“ Impossible Travel Check                         β”‚
β”‚  βœ“ Rate Limit Validation                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Project Structure

ProxyMukt-Attendance-System/
β”‚
β”œβ”€β”€ πŸ“‚ client/                      # React Frontend Application
β”‚   β”œβ”€β”€ πŸ“‚ public/                  # Static assets
β”‚   β”‚   β”œβ”€β”€ logo.svg
β”‚   β”‚   └── _redirects              # Netlify/Vercel redirects
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ components/          # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Sidebar.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ FaceVerification.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ QRDisplay.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ AnalyticsCharts.jsx
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ pages/               # Page components
β”‚   β”‚   β”‚   β”œβ”€β”€ AdminDashboard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ FacultyDashboard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ StudentDashboard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ StartSession.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ScanQR.jsx
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ store/               # Zustand state management
β”‚   β”‚   β”‚   β”œβ”€β”€ authStore.js
β”‚   β”‚   β”‚   └── sessionStore.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ utils/               # Utility functions
β”‚   β”‚   β”‚   β”œβ”€β”€ axiosInstance.js
β”‚   β”‚   β”‚   β”œβ”€β”€ deviceFingerprint.js
β”‚   β”‚   β”‚   └── voiceAnnouncements.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ App.jsx                 # Main app component
β”‚   β”‚   β”œβ”€β”€ main.jsx                # Entry point
β”‚   β”‚   └── index.css               # Global styles
β”‚   β”‚
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ vite.config.js
β”‚   └── tailwind.config.js
β”‚
β”œβ”€β”€ πŸ“‚ server/                      # Node.js Backend Application
β”‚   β”œβ”€β”€ πŸ“‚ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ config/              # Configuration files
β”‚   β”‚   β”‚   β”œβ”€β”€ db.js               # MongoDB connection
β”‚   β”‚   β”‚   └── constants.js        # App constants
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ controllers/         # Business logic
β”‚   β”‚   β”‚   β”œβ”€β”€ authController.js
β”‚   β”‚   β”‚   β”œβ”€β”€ sessionController.js
β”‚   β”‚   β”‚   β”œβ”€β”€ attendanceController.js
β”‚   β”‚   β”‚   β”œβ”€β”€ analyticsController.js
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ middleware/          # Custom middleware
β”‚   β”‚   β”‚   β”œβ”€β”€ auth.js             # JWT authentication
β”‚   β”‚   β”‚   β”œβ”€β”€ role.js             # Role-based access
β”‚   β”‚   β”‚   β”œβ”€β”€ advancedSecurity.js # Fraud detection
β”‚   β”‚   β”‚   β”œβ”€β”€ rateLimitMiddleware.js
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ models/              # Mongoose schemas
β”‚   β”‚   β”‚   β”œβ”€β”€ User.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Class.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Session.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Attendance.js
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ routes/              # API routes
β”‚   β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”‚   β”œβ”€β”€ sessionRoutes.js
β”‚   β”‚   β”‚   β”œβ”€β”€ attendanceRoutes.js
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ utils/               # Utility functions
β”‚   β”‚   β”‚   β”œβ”€β”€ advancedProxyDetection.js
β”‚   β”‚   β”‚   β”œβ”€β”€ clientFingerprinting.js
β”‚   β”‚   β”‚   β”œβ”€β”€ emailService.js
β”‚   β”‚   β”‚   └── cache.js
β”‚   β”‚   β”‚
β”‚   β”‚   └── server.js               # Server entry point
β”‚   β”‚
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ seed.js                     # Database seeding script
β”‚   └── .env.example
β”‚
β”œβ”€β”€ πŸ“‚ screenshots/                 # Project screenshots
β”‚   β”œβ”€β”€ AdminDashboard.png
β”‚   β”œβ”€β”€ FacultyDashboard.png
β”‚   β”œβ”€β”€ StudentDashboard.png
β”‚   └── ...
β”‚
β”œβ”€β”€ render.yaml                     # Render.com deployment config
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE
└── README.md

πŸ“š API Documentation

πŸ” Authentication Endpoints

POST /api/auth/register - Register new user

Request Body:

{
  "name": "John Doe",
  "email": "john@example.com",
  "password": "SecurePass123",
  "role": "STUDENT",
  "studentId": "STU001",
  "department": "Computer Science"
}

Response:

{
  "success": true,
  "message": "User registered successfully",
  "data": {
    "user": { "id": "...", "name": "John Doe", "role": "STUDENT" },
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}
POST /api/auth/login - User login

Request Body:

{
  "email": "john@example.com",
  "password": "SecurePass123"
}

Response:

{
  "success": true,
  "data": {
    "user": { "id": "...", "name": "John Doe", "role": "STUDENT" },
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

πŸ“… Session Endpoints

POST /api/sessions - Create new session

Request Body:

{
  "classId": "class_id_here",
  "title": "Data Structures - Lecture 5",
  "date": "2025-04-07T10:00:00Z",
  "sessionType": "OFFLINE",
  "qrEnabled": true,
  "verificationRequirements": {
    "qrCode": true,
    "faceVerification": true,
    "locationVerification": true
  },
  "location": {
    "latitude": 28.6139,
    "longitude": 77.2090,
    "radius": 100
  }
}
GET /api/sessions/:id/qr - Get QR token

Response:

{
  "success": true,
  "data": {
    "qrToken": "signed_hmac_token_here",
    "expiresAt": "2025-04-07T10:01:40Z"
  }
}

βœ… Attendance Endpoints

POST /api/attendance/mark - Mark attendance

Request Body:

{
  "qrToken": "signed_token_from_qr",
  "location": {
    "latitude": 28.6140,
    "longitude": 77.2091,
    "accuracy": 10
  },
  "deviceInfo": {
    "userAgent": "Mozilla/5.0...",
    "deviceFingerprint": "unique_device_id"
  },
  "faceVerificationPassed": true
}

πŸ“Š Analytics Endpoints

GET /api/analytics/section?section=all - Get analytics

Response:

{
  "success": true,
  "data": {
    "overview": {
      "totalClasses": 50,
      "totalSessions": 400,
      "avgAttendance": 85.5
    },
    "trends": [...],
    "topPerformers": [...]
  }
}

πŸš€ Deployment

🌐 Live Production Instance

ProxyMukt is live at: https://proxymukt.onrender.com/

The application is deployed on Render.com with:

  • βœ… Automatic SSL/HTTPS
  • βœ… MongoDB Atlas database
  • βœ… Environment-based configuration
  • βœ… Auto-deploy on GitHub push
  • βœ… Health monitoring

Deploy Your Own Instance

Deploy to Render.com (Recommended)

  1. Push to GitHub

    git add .
    git commit -m "Ready for deployment"
    git push origin main
  2. Connect to Render

    • Go to Render Dashboard
    • Click "New +" β†’ "Blueprint"
    • Connect your GitHub repository
    • Render will auto-detect render.yaml
  3. Configure Environment Variables

    • Add all required environment variables in Render dashboard
    • Set NODE_ENV=production
    • Configure MongoDB Atlas URI
  4. Deploy

    • Render will automatically build and deploy
    • Get your live URL: https://your-app.onrender.com

Deploy to Vercel/Netlify (Frontend)

cd client
npm run build

# Deploy dist/ folder to Vercel or Netlify

Manual Production Deployment

# Build frontend
cd client
npm run build

# Start production server
cd ../server
NODE_ENV=production npm start

πŸ§ͺ Testing

Run Tests

# Backend unit tests
cd server
npm test

# Frontend component tests
cd client
npm test

# E2E tests
npm run test:e2e

Test Coverage

npm run test:coverage

🀝 Contributing

We welcome contributions! Here's how you can help:

1️⃣ Fork & Clone

# Fork the repository on GitHub
# Then clone your fork
git clone https://github.com/YOUR_USERNAME/ProxyMukt-Attendance-System-.git

2️⃣ Create Branch

git checkout -b feature/AmazingFeature

3️⃣ Make Changes

  • Write clean, documented code
  • Follow existing code style
  • Add tests for new features
  • Update documentation

4️⃣ Commit & Push

git add .
git commit -m "Add: Amazing new feature"
git push origin feature/AmazingFeature

5️⃣ Open Pull Request

  • Go to your fork on GitHub
  • Click "New Pull Request"
  • Describe your changes
  • Wait for review

πŸ“‹ Contribution Guidelines

  • Follow Conventional Commits
  • Write meaningful commit messages
  • Add tests for new features
  • Update README if needed
  • Be respectful and collaborative

πŸ“„ License

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

MIT License

Copyright (c) 2025 Sumant Kumar

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

πŸ‘¨β€πŸ’» Author

Sumant Kumar

GitHub LinkedIn Email

Full Stack Developer | AI/ML Enthusiast | Open Source Contributor


πŸ™ Acknowledgments

Special thanks to:

  • TensorFlow.js team for face detection models
  • Socket.IO for real-time communication
  • MongoDB for flexible database solutions
  • React and Vite communities
  • Tailwind CSS for beautiful styling
  • All open-source contributors

Technologies & Libraries

  • QR Code generation using crypto HMAC-SHA256
  • Face liveness detection with TensorFlow.js
  • Real-time updates powered by Socket.IO
  • UI components inspired by Shadcn/ui
  • Icons from Lucide React
  • Charts from Recharts

πŸ“ž Support

Need help? We're here for you!


πŸ”„ Version History

πŸŽ‰ v2.0.0 (Current - April 2025)

Major Features:

  • βœ… Multi-layer fraud detection system
  • βœ… Real-time WebSocket updates
  • βœ… Faculty-controlled verification methods
  • βœ… Advanced analytics dashboard
  • βœ… Dark theme UI with animations
  • βœ… Student enrollment management
  • βœ… Pause/resume session functionality
  • βœ… Online session support (Zoom/Meet/Teams)
  • βœ… Leave and appeal management
  • βœ… Attendance goals and streaks
  • βœ… Production deployment ready

Security Enhancements:

  • πŸ”’ HMAC-SHA256 QR token signing
  • πŸ”’ Advanced proxy/VPN detection
  • πŸ”’ Device fingerprinting
  • πŸ”’ Impossible travel detection
  • πŸ”’ Rate limiting and DDoS protection

πŸ“¦ v1.0.0 (Initial Release)

  • Basic QR code attendance
  • Simple authentication
  • Manual attendance marking
  • Basic reporting

πŸ—ΊοΈ Roadmap

🎯 Upcoming Features

  • Mobile Apps (React Native)
  • Biometric Authentication (Fingerprint/Face ID)
  • AI-Powered Insights (Predictive analytics)
  • Blockchain Integration (Immutable attendance records)
  • Multi-Language Support (i18n)
  • Offline Mode (PWA with sync)
  • Parent Portal (Real-time notifications)
  • Integration APIs (LMS, ERP systems)
  • Advanced Reporting (Custom report builder)
  • Video Proctoring (For online exams)

πŸ“Š Project Stats

GitHub stars GitHub forks GitHub watchers

GitHub issues GitHub pull requests GitHub last commit


⭐ Star this repository if you find it helpful!

Made with ❀️ for educational institutions worldwide

Eliminating proxy attendance, one scan at a time πŸŽ“


⬆ Back to Top

About

Smart attendance system with QR codes, geofencing, auto-attendance & analytics. MERN stack with real-time tracking and voice notifications.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors