How imondol41/bus-tracking works
University Bus Tracker is a Flutter app for students tracking buses and for administrators managing users and the fleet. The principal workflow is role-based sign-in, viewing buses and their locations, and opening a tracked bus on a map with distance and ETA information. Admins manage bus records; super admins review admin requests and oversee users. The README documents Supabase authentication/realtime and mapping capabilities, but the sampled source does not show call sites, so links among UI, providers, services, and external systems are intentionally limited.
Main entry points: auth_provider.dart Auth state · map_tracker_screen.dart Map tracking · signup_screen.dart Sign up · admin_panel_screen.dart Fleet management
Components 25
App entry
- App entry
lib/main.dart - Navigation
lib/config/app_router.dart - Theme state
lib/providers/theme_provider.dart
Identity and roles
- Auth routing
lib/screens/auth/auth_checker_screen.dart - Sign in
lib/screens/auth/login_screen.dart - Sign up
lib/screens/auth/signup_screen.dart - Email verification
lib/screens/auth/otp_verification_screen.dart - Auth state
lib/providers/auth_provider.dart - User profile
lib/screens/student/profile_screen.dart - User model
lib/models/user_model.dart
Bus tracking
- Bus dashboard
lib/screens/student/dashboard_screen.dart - Map tracking
lib/screens/student/map_tracker_screen.dart - Bus tracking state
lib/providers/bus_tracker_provider.dart - Bus model
lib/models/bus_model.dart - GPS location
lib/services/location_service.dart - Distance and ETA
lib/services/distance_service.dart - Plus Codes
lib/services/plus_code_service.dart - Map integration
lib/services/openlayers_map_service.dart - Distance display
lib/widgets/distance_info_widget.dart
Administration
- Fleet management
lib/screens/admin/admin_panel_screen.dart - Bus editor
lib/screens/admin/bus_form_screen.dart - Admin oversight
lib/screens/super_admin/super_admin_panel_screen.dart
Other components
- App user
- Supabase
- Mapping platform
Connections 28
- App user → App entry: opens
- App entry → Navigation: starts navigation
- App user → Auth routing: enters app
- Auth routing → Sign in: routes unauthenticated
- App user → Sign in: signs in
- App user → Sign up: registers
- Sign up → Email verification: verifies email
- Sign in → Auth state: uses auth state
- Sign up → Auth state: uses auth state
- Email verification → Auth state: uses auth state
- Auth state → Supabase: authenticates
- App user → Bus dashboard: browses buses
- Bus dashboard → Bus tracking state: shows tracking state
- Bus tracking state → Supabase: syncs bus data
- App user → Map tracking: tracks bus
- Map tracking → Map integration: renders map
- Map integration → Mapping platform: displays map
- Map tracking → GPS location: uses GPS
- Map tracking → Distance and ETA: calculates distance
- Distance and ETA → Distance display: provides metrics
- Map tracking → Plus Codes: uses location codes
- App user → User profile: edits profile
- User profile → Auth state: uses account state
- App user → Fleet management: manages fleet
- Fleet management → Bus editor: edits buses
- Fleet management → Bus tracking state: manages bus state
- App user → Admin oversight: reviews requests
- Admin oversight → Auth state: manages roles