A comprehensive Flutter mobile application for tracking student attendance with QR code scanning, authentication, and theme support.
- 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
- Enable Developer Mode:
- Run
start ms-settings:developersin Command Prompt - Or go to Settings > Update & Security > For developers
- Enable "Developer Mode"
- This is required for Flutter's symlink support on Windows
- Run
- Install Flutter SDK (>=3.9.0)
- Install Android Studio or VS Code with Flutter extensions
- Set up an Android emulator or connect a physical device
-
Clone or navigate to the project directory:
cd C:\Users\Shreya\CascadeProjects\attendance_tracker_flutter
-
Install dependencies:
flutter pub get
-
Run the app:
# For Android emulator/device flutter run # For Windows desktop flutter run -d windows # For web browser flutter run -d chrome
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
- 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
- Use demo credentials:
demo@student.com/password123 - Or any email with password length >= 6 characters
- Tap "Mark Attendance" on the home screen
- Use QR scanner or manual marking
- View confirmation and updated statistics
- Navigate to History tab
- Filter by status: All, Present, Absent, Late
- View detailed attendance records
- Switch between light/dark themes
- Enable/disable notifications
- Manage account preferences
- 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
-
Symlink Error on Windows:
- Enable Developer Mode as described in Prerequisites
- Restart your IDE after enabling
-
Camera Permission Issues:
- Grant camera permissions when prompted
- Check device settings if QR scanner doesn't work
-
Build Errors:
- Run
flutter cleanthenflutter pub get - Ensure Flutter SDK is up to date
- Run
- Backend API integration
- Real-time notifications
- Biometric authentication
- Offline data synchronization
- Advanced analytics and reporting
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is for educational purposes.