Skip to main content

Setup

Prerequisites

  • Flutter 3.8.1+
  • Dart 3.0+
  • Android SDK (driver app targets Android)

Dependencies

PackageVersionPurpose
provider^6.0.0State management
dio^5.0.0HTTP client
flutter_map^6.0.0Map rendering (OpenStreetMap)
latlong2^0.9.0Lat/lng handling
flutter_map_cached_tile_provider^2.0.0Offline tile caching
socket_io_client^2.0.0Socket.IO for live tracking
geolocator^11.0.0GPS location
get_it^7.0.0Service locator
shared_preferences^2.0.0Local storage
flutter_secure_storage^9.0.0Secure token storage
intl^0.19.0Date formatting
draggable_bottom_sheet^1.0.0Draggable panel on home map

Directory Structure

lib/
├── main.dart
├── app.dart
├── service_locator.dart # GetIt registrations
├── core/
│ ├── constants/
│ │ └── endpoints.dart # All API endpoints
│ ├── configs/
│ │ ├── theme/ # AppTheme, AppColors, AppTextTheme
│ │ └── map_cache_manager.dart
│ ├── network/
│ │ ├── dio_client.dart
│ │ ├── api_error_handler.dart
│ │ ├── interceptors.dart # Auth, logging interceptors
│ │ └── routing_service.dart
│ ├── storage/
│ │ ├── preferences.dart # SharedPreferences wrapper
│ │ └── secure_storage.dart # Token storage
│ ├── socket/
│ │ └── socket_service.dart
│ └── location/
│ └── location_service.dart
├── modules/
│ ├── auth/
│ │ ├── model/
│ │ │ ├── bus_model.dart
│ │ │ ├── driver_model.dart
│ │ │ └── res/auth_response_model.dart
│ │ ├── repo/
│ │ ├── view/
│ │ │ ├── login_view.dart
│ │ │ ├── otp_verify_view.dart
│ │ │ ├── pin_login_view.dart
│ │ │ └── set_pin_view.dart
│ │ └── viewmodel/
│ ├── home/
│ │ ├── model/
│ │ │ ├── trip_model.dart
│ │ │ ├── day_trips_model.dart
│ │ │ └── bus_info_model.dart
│ │ ├── repo/
│ │ ├── view/home_view.dart
│ │ └── viewmodel/
│ ├── trip_detail/
│ │ ├── model/trip_detail_model.dart
│ │ ├── repo/
│ │ └── view/trip_detail_view.dart
│ ├── students/
│ │ ├── model/student_model.dart
│ │ ├── repo/
│ │ └── view/students_view.dart
│ ├── incidents/
│ │ ├── model/incident_model.dart
│ │ ├── repo/
│ │ └── view/
│ │ ├── incident_history_view.dart
│ │ └── incident_report_view.dart
│ └── profile/
│ ├── model/profile_model.dart
│ ├── repo/
│ └── view/profile_view.dart
└── common/
├── navigator/app_navigator.dart
└── helper/