Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attendance Tracker Flutter App

A comprehensive Flutter mobile application for tracking student attendance with QR code scanning, authentication, and theme support.

Features

  • Authentication System: Secure login with form validation
  • Dashboard: Home screen with attendance marking, upcoming classes, and statistics
  • QR Code Scanner: Scan QR codes to mark attendance automatically
  • Attendance History: View detailed attendance records with filtering
  • Profile Management: User profile with statistics and account details
  • Settings: Theme switching (light/dark/system), notifications, and preferences
  • Theme Support: Material 3 design with light and dark themes
  • Navigation: Bottom navigation bar for easy screen switching

Prerequisites

Windows Setup (Required)

  1. Enable Developer Mode:
    • Run start ms-settings:developers in Command Prompt
    • Or go to Settings > Update & Security > For developers
    • Enable "Developer Mode"
    • This is required for Flutter's symlink support on Windows

Flutter Setup

  1. Install Flutter SDK (>=3.9.0)
  2. Install Android Studio or VS Code with Flutter extensions
  3. Set up an Android emulator or connect a physical device

Installation

  1. Clone or navigate to the project directory:

    cd C:\Users\Shreya\CascadeProjects\attendance_tracker_flutter
  2. Install dependencies:

    flutter pub get
  3. Run the app:

    # For Android emulator/device
    flutter run
    
    # For Windows desktop
    flutter run -d windows
    
    # For web browser
    flutter run -d chrome

Project Structure

lib/
├── main.dart                 # App entry point with providers
├── providers/               # State management
│   ├── auth_provider.dart   # Authentication state
│   ├── attendance_provider.dart # Attendance data management
│   └── theme_provider.dart  # Theme management
└── screens/                 # UI screens
    ├── login_screen.dart    # Login/authentication
    ├── main_screen.dart     # Bottom navigation container
    ├── home_screen.dart     # Dashboard with attendance marking
    ├── history_screen.dart  # Attendance history with filtering
    ├── profile_screen.dart  # User profile and statistics
    ├── settings_screen.dart # App settings and preferences
    └── qr_scanner_screen.dart # QR code scanning

Dependencies

  • provider: State management
  • shared_preferences: Local data persistence
  • qr_code_scanner: QR code scanning functionality
  • permission_handler: Camera permissions
  • google_fonts: Typography
  • intl: Date/time formatting
  • flutter_svg: SVG icon support

Usage

Login

  • Use demo credentials: demo@student.com / password123
  • Or any email with password length >= 6 characters

Mark Attendance

  1. Tap "Mark Attendance" on the home screen
  2. Use QR scanner or manual marking
  3. View confirmation and updated statistics

View History

  • Navigate to History tab
  • Filter by status: All, Present, Absent, Late
  • View detailed attendance records

Customize Settings

  • Switch between light/dark themes
  • Enable/disable notifications
  • Manage account preferences

Development Notes

  • Authentication: Currently uses simulated login with local storage
  • Data Storage: Uses SharedPreferences for local persistence
  • QR Scanning: Includes camera permission handling
  • Responsive Design: Optimized for mobile devices
  • Material 3: Uses latest Material Design components

Troubleshooting

Common Issues

  1. Symlink Error on Windows:

    • Enable Developer Mode as described in Prerequisites
    • Restart your IDE after enabling
  2. Camera Permission Issues:

    • Grant camera permissions when prompted
    • Check device settings if QR scanner doesn't work
  3. Build Errors:

    • Run flutter clean then flutter pub get
    • Ensure Flutter SDK is up to date

Future Enhancements

  • Backend API integration
  • Real-time notifications
  • Biometric authentication
  • Offline data synchronization
  • Advanced analytics and reporting

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

This project is for educational purposes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages