Maxie254's picture
Full App Build Project Goal: Build a secure, scalable, and user-friendly mobile app for ZETECH UNIVERSITY that tracks student attendance in real-time using BLE beacons, automates reporting, and enhances communication between students, parents, and administrators. Must-Have Features (Expanded & Refined): 1. Authentication & Security (Supabase Auth + Extras) No sign-up allowed (only pre-registered students/admins can log in). Login options: Admission number + password ID number + password Birth certificate number + password School email + password Role-based access control (RBAC): Students: View attendance, submit absence explanations. Lecturers: Mark manual attendance (fallback if BLE fails). Admins: Full access to reports and settings. Multi-factor authentication (MFA) option for admins. Session timeout after 30 minutes of inactivity. Biometric login support (fingerprint/face unlock). Device Binding: On first login, the app generates and stores a unique device ID. This ID is saved locally and in Supabase. All future logins validate that the device matches the registered ID. Reinstallation is discouraged, and the device ID cannot be regenerated without admin approval. Admin Portal includes a section to manually update device ID (with logs). When admin changes a device ID, a verification email is sent to the student before changes apply. Notifications are sent to both student and admin whenever a device ID is changed. 2. Student Dashboard (Enhanced UI/UX) Attendance Overview: Current attendance percentage (progress bar) Classes attended vs. missed (weekly/monthly) Next class (time, location, lecturer) Absence Explanation: Rich-text editor (supports images if needed) Word counter (enforces 300-word minimum) Draft saving (auto-save progress) Push Notifications: Class reminders (30 mins before) Bluetooth reminders (if off) Report availability alerts Dark/Light mode support 3. Bluetooth Attendance (Optimized BLE Logic) BLE Beacon Detection: UUID-based filtering (only uni beacons are recognized) Signal strength threshold (-70dBm for reliable detection) 1-minute stable signal before marking attendance Face Verification Before Attendance: When BLE is detected, prompt for facial recognition scan before allowing attendance check-in Ensures only the real student can verify presence (prevents phone-sharing cheat) Uses local device camera and stored biometric data or face ID capture Fallback Options: QR code scan (if BLE fails) Lecturer override (manual entry) Background Scanning: Foreground service for Android 8+ Battery optimization (adaptive scan intervals) Privacy: No GPS/location permissions needed Beacons only store class ID (no personal data) 4. Absence Explanation (Improved Workflow) Submission Flow: Form with: Reason (300+ words) Supporting docs (optional PDF/image upload) Urgency level (low/medium/high) AI Pre-Screening: Flags invalid/incomplete submissions Suggests improvements (via GPT-4) Status Tracking: Pending/Approved/Rejected status updates Notifications when reviewed 5. Weekly Reports (AI-Powered + Email) Automated Reports (Every Saturday): Attendance stats (visual charts) Missed classes list AI-Generated Insights: You missed 3 classes in Programming. Consider catching up! Your attendance is below 75%. Contact your advisor. Email Integration: Sent via Supabase Edge Functions + Resend/SendGrid Customizable templates (HTML + plaintext) Parent Portal Link (view child’s attendance) 6. AI Mail Assistant (Optional but Powerful) Auto-Reply Logic: GPT-4 analyzes emails (student/parent queries) Responds to common questions (e.g., When is the next exam?) Escalates complex issues to admin (Maxwell) Admin Workflow: Draft responses in app → AI formats professionally Sent via official university email 7. Admin Dashboard (Web + Mobile) Attendance Management: Real-time logs (filter by date/class/student) Export to CSV/PDF Absence Approvals: Bulk actions (approve/reject) Comment on rejections BLE Beacon Management: Register new beacons (UUID, class mapping) Test signal strength Threshold Adjustments: Set attendance warning levels (e.g., 75%) Customize report frequency Device ID Editor: View and modify student device bindings Logs of change attempts and verification status Triggers verification email before applying changes Notifies both admin and student upon successful updates Additional Technical Considerations: 1. Offline Support: Cache attendance data locally (Room DB) Sync when back online 2. Data Privacy: GDPR compliance (Supabase anonymization) Auto-delete logs after 1 year 3. Testing: Mock BLE beacons for development Unit tests for attendance logic 4. Analytics: Track app usage (Firebase/Crashlytics) Monitor BLE reliability 5. Accessibility: Screen reader support Font scaling Suggested Supabase Table Structure: | Table | Fields (Key Columns) | |---------------------|-----------------------------------------------| | users | id, email, role, parent_email, etc. | | classes | id, name, lecturer_id, schedule | | attendance_logs | student_id, class_id, timestamp, method (BLE/QR/manual) | | absence_requests | student_id, class_id, reason, status | | ble_beacons | uuid, class_id, location | | weekly_reports | student_id, week_number, content | Optional but Nice-to-Have Features: Class Chatbot (GPT): Answer FAQs about assignments/deadlines Emergency Alerts: Notify students of class cancellations Parent App Link: Separate app for parents (attendance tracking) Lecturer Notes: Allow lecturers to flag at-risk students Final Notes: Prioritize battery efficiency (BLE scanning intervals) Use Jetpack Compose for modern UI Supabase Realtime for live updates (e.g., new absence requests) Backup Strategy: Daily Supabase exports to S3 Note that its a mobile App so let it be mobile! - Initial Deployment
c6cffe2 verified