How leoz3r0/smart_campus_fyp works
Smart Campus is a Flutter/Supabase app for student, staff, administrator, and stall-chef workflows. Users enter through sign-in and role-aware screens, then use campus services such as attendance, NFC access, navigation, events, food ordering, lost-and-found, and chat; staff and administrators also manage operational data. The README documents these capabilities and module responsibilities, while sampled implementation confirms the navigation-route and NFC-verification functions’ database reads and writes. Most Dart call wiring was not sampled, so those links reflect documented responsibility rather than inspected call sites.
Main entry points: home_screen.dart Role dashboards · map_screen.dart Campus map · sign_in_screen.dart Sign in · nfc_card_service.dart NFC card handling
Components 29
App and identity
- App entry
lib/main.dart - Sign in
lib/screens/sign_in_screen.dart - Authentication
lib/services/auth_service.dart - Profiles and roles
lib/services/user_service.dart - Role dashboards
lib/screens/home_screen.dart
Attendance and access
- Attendance marking
lib/services/attendance_service.dart - NFC card handling
lib/services/nfc_card_service.dart - NFC verification
supabase/functions/nfc-verify/index.ts - Biometric check
lib/services/biometric_service.dart - Digital student ID
lib/jy/student_card.dart
Campus discovery
- Campus map
lib/screens/map_screen.dart - Building data
lib/services/building_service.dart - Route calculation
supabase/functions/navigation-route/index.ts - GPS location
- OpenStreetMap
Campus services
- Events and news
lib/jy/events.dart - Food ordering
lib/jy/restaurant.dart - Cart and payment
lib/jy/cart_page.dart - Order tracking
lib/jy/order_tracking_page.dart - Lost and found
lib/jy/lost_n_found.dart - Item messaging
lib/jy/lost_item_chat_screen.dart - Campus assistant
lib/screens/chat_screen.dart
Role operations
- Admin management
lib/screens/admin/admin_main_screen.dart - Staff tools
lib/screens/staff/staff_main_screen.dart - Kitchen operations
lib/screens/stall_chef/stall_chef_main_screen.dart
Other components
- Campus user
- Botpress Cloud
- Supabase data
- NFC and access records
sql/nfc_security_schema.sql
Connections 40
- Campus user → App entry: opens app
- App entry → Sign in: starts at
- Sign in → Authentication: authenticates
- Authentication → Supabase data: checks credentials
- Sign in → Profiles and roles: loads role
- Profiles and roles → Supabase data: reads profile
- Campus user → Role dashboards: uses dashboard
- Role dashboards → Attendance marking: marks attendance
- Role dashboards → NFC card handling: scans card
- NFC card handling → Biometric check: requires check
- NFC card handling → NFC verification: verifies card
- NFC verification → NFC and access records: reads cards
- NFC verification → NFC and access records: logs access
- Role dashboards → Digital student ID: opens ID
- Role dashboards → Campus map: opens map
- Campus map → Building data: loads buildings
- Building data → Supabase data: reads locations
- Campus map → GPS location: gets position
- Campus map → OpenStreetMap: shows map tiles
- Campus map → Route calculation: requests route
- Route calculation → Supabase data: reads buildings
- Role dashboards → Events and news: browses events
- Events and news → Supabase data: loads events
- Role dashboards → Food ordering: browses food
- Food ordering → Supabase data: loads menus
- Food ordering → Cart and payment: adds items
- Cart and payment → Supabase data: records order
- Cart and payment → Order tracking: views status
- Role dashboards → Lost and found: browses items
- Lost and found → Supabase data: stores listings
- Lost and found → Item messaging: opens conversation
- Item messaging → Supabase data: stores messages
- Role dashboards → Campus assistant: asks assistant
- Campus assistant → Botpress Cloud: sends queries
- Campus user → Admin management: administers campus
- Campus user → Staff tools: runs attendance
- Campus user → Kitchen operations: handles orders
- Admin management → Supabase data: manages records
- Staff tools → Attendance marking: creates sessions
- Kitchen operations → Supabase data: updates operations