Skip to content

ohnogaurav/EduTrack

Repository files navigation

EduTrack — Attendance Tracking Simplified

EduTrack is a modern, secure, and location-aware attendance tracking application designed for educational institutions. Powered by Flutter and Firebase, it enables teachers to host geofenced attendance sessions and allows students to register their attendance using GPS location verification and anti-spoofing face liveness detection.


🚀 Live Web Demo

The production assets of this project are automatically built and deployed live: 👉 Try the Web Demo Live!

Note: On the Web demo, the mobile-only ML-based face liveness verification is simulated using a mock verification dialog, allowing recruiters and developers to test the full attendance flow directly in the browser.


✨ Key Features

👤 Role-Based Authentication

  • Secure Logins: Distinct sign-in and sign-up flows for both Students and Teachers managed by Firebase Authentication.
  • Persistent Sessions: Automated session restoration using a local ThemeController and persistent auth states.

🏫 Teacher Dashboard

  • Subject Management: Create courses, generate unique enrollment codes, and track classes.
  • Geofenced Sessions: Start attendance sessions with a custom duration. The system automatically records the teacher's current GPS coordinates as the session anchor.
  • Smart Communications: Send announcements targeted to:
    • All registered students.
    • Students enrolled in a specific subject.
    • A single individual student.
  • Attendance Insights: View real-time student lists, enrollment details, and detailed attendance log analytics.

🎓 Student Dashboard

  • Subject Enrollment: Join classes securely using join codes generated by teachers.
  • Location-Verified Attendance: Mark attendance for active sessions. The app calculates the distance between the student's device and the teacher's anchor coordinates using the Geolocator plugin (restricting check-ins to a 20-meter range).
  • Anti-Spoofing Verification:
    • Liveness Detection: Utilizes front camera video streams and facial movement recognition (such as eye-blinks) to prevent photo/video spoofing.
    • Face Detection: Uses Google's ML Kit to detect and verify faces locally.
  • Inbox & Notifications: Receive real-time announcements from course instructors.
  • Visual Analytics: View detailed personal attendance percentages and statistics per subject.

🛠️ Technical Stack

  • Frontend Framework: Flutter (Channel Stable, 3.41.5+)
  • Backend Database: Cloud Firestore
  • User Management: Firebase Authentication
  • Device Sensors & Core Plugins:
    • geolocator: High-accuracy GPS location tracking.
    • camera: Camera feed controllers for liveness check.
    • google_mlkit_face_detection: Native face landmark and classification detection.
    • smart_liveliness_detection: Anti-spoofing challenge generator.
    • provider: App-wide state and theme controllers.
  • CI/CD Integration: GitHub Actions automated pipeline to build and deploy static web files to the gh-pages branch.

📂 Project Architecture

lib/
├── constants/          # Application-wide styles and static assets
├── core/
│   └── theme/          # App design tokens (Light/Dark themes & ThemeController)
├── features/
│   ├── auth/           # Login, Sign Up, and role-routing screens
│   ├── home/           # Main navigation and structure
│   ├── student/        # Dashboards, inbox, camera, and verification flows
│   └── teacher/        # Dashboards, subject creation, and announcements
├── models/             # Data models (User, Subject, Session, Attendance)
├── services/
│   ├── auth_service.dart       # Firebase Auth requests wrapper
│   ├── firestore_service.dart  # Firestore CRUD operations wrapper
│   └── location_service.dart   # GPS coordinates and geofence verification
└── firebase_options.dart       # Automatically resolved Firebase credentials

⚙️ Local Setup Instructions

Prerequisites

  1. Install Flutter SDK (stable channel).
  2. Install Android Studio or VS Code.
  3. Configure a Firebase Project in the Firebase Console.

Installation Steps

  1. Clone the Repository:

    git clone https://github.com/ohnogaurav/EduTrack.git
    cd EduTrack
  2. Install Dependencies:

    flutter pub get
  3. Configure Firebase:

    • For Android: Place your google-services.json inside the android/app/ folder.
    • For iOS: Place your GoogleService-Info.plist inside the ios/Runner/ folder.
    • For Web & Global configuration: Install the FlutterFire CLI and run:
      flutterfire configure
  4. Run the Application:

    • Local mobile emulator / connected device:
      flutter run
    • Local Web Browser:
      flutter run -d chrome

🤖 CI/CD Build & Deployment

This project includes a pre-configured GitHub Actions workflow located at .github/workflows/deploy.yml.

On every push to master or main:

  1. The codebase is checked out.
  2. The Flutter build environment is initialized.
  3. A production release is compiled for the Web using:
    flutter build web --release --base-href="/${{ github.event.repository.name }}/"
  4. The output assets are committed and deployed directly to the gh-pages branch.

About

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages