Core Features - AttendanceTracker
This document outlines the core functionalities of the AttendanceTracker application, suitable for creating User Guides.
1. Authentication & User Profile
- Secure Login/Registration: Users can create accounts and log in securely (powered by Firebase).
- Profile Management: Users can update their profile details and set a profile picture (Avatar) via the dedicated Edit Profile screen.
- Custom Profile Images: Users can upload a custom photo as their profile picture in addition to selecting built-in avatars.
- Password Update: Users can change their password from within the Edit Profile screen.
- Username Safety: Profanity filtering prevents offensive usernames.
- Account Deletion: Users can permanently delete their account and all associated data via Settings, with built-in security re-authentication checks.
2. Timetable Management
- Manual Creation: Users can manually create timetables and add class entries.
- AI-Powered Import:
- Upload & Parse: Users can upload images or PDFs of their timetables.
- AI Extraction: The app uses Gemini AI (
gemini-2.5-flash model) to automatically parse and extract class schedules.
- Background Processing: For complex files, processing runs in the background so you can continue using the app. You will receive an in-app notification when the draft is ready.
- Multi-API Key Support: Configure multiple Gemini API keys to handle rate limits and ensure uninterrupted parsing.
- Draft Review: Timetables are saved as drafts first, allowing you to review and edit before activating them.
- Multiple Timetables: Support for managing multiple timetables (e.g., for different semesters or institutes).
- Sharing: Users can share their timetables via ephemeral QR codes with sender-controlled privacy.
3. Attendance Tracking
- Dashboard Overview: A dashboard shows upcoming classes and quick actions.
- Mark Attendance: Users can mark their status for each class:
- Present: Attended the class.
- Absent: Missed the class.
- Cancelled: Class was cancelled (does not count against attendance percentage).
- Absence / Cancellation Reason: When marking a session as Absent or Cancelled, users are prompted to optionally record a reason via a dropdown of common options (e.g., Sick / Unwell, Medical Appointment, Family Emergency, Lecturer Absent, Public Holiday, etc.). Selecting "Other" reveals a free-text field. Reasons are displayed in the Attendance History screen.
- Entry Types: Supports Lecture, Tutorial, Lab, and Group Assignment session types.
- History Log: A detailed history view (
AttendanceHistoryScreen) of all past attendance records, including recorded reasons.