How edemekong/city-cab works
City Cab is a Flutter ride-hailing app backed by Firebase. Its documented user journey includes phone authentication and account setup, map-based location search, ride selection and confirmation, then ride tracking and completion; the README also describes driver roles and ride boarding, loading, and cancellation. The README outlines UI → state → repositories/services → models, but the Dart implementation was not sampled, so some feature wiring and external-service details remain uncertain.
Main entry points: ride_repository.dart Ride repository · map_state.dart Map state · main.dart Flutter entry · user_repository.dart User repository
Components 20
App and access
- Flutter entry
lib/main.dart - Authentication UI
lib/pages/auth - Phone and OTP
lib/pages/auth/widgets - Account setup
lib/pages/auth/widgets/set_up_account.dart
Ride experience
- Home screen
lib/pages/home/home.dart - Map experience
lib/pages/map - Location search
lib/pages/map/widgets/search_map_address.dart - Ride selection
lib/pages/map/widgets/select_ride.dart - Ride confirmation
lib/pages/map/widgets/confirm_ride.dart - Trip status UI
lib/pages/map/widgets
State and models
- Authentication state
lib/pages/auth/auth_state.dart - Map state
lib/pages/map/map_state.dart - Ride and user models
lib/models
Repositories and services
- User repository
lib/repositories/user_repository.dart - Ride repository
lib/repositories/ride_repository.dart - Authentication service
lib/services/auth.dart - Map services
lib/services/map_services.dart
Other components
- Rider or driver
- Firebase
- Google Maps
Connections 20
- Rider or driver → Flutter entry: opens app
- Flutter entry → Authentication UI: starts UI
- Authentication UI → Phone and OTP: requests sign-in
- Phone and OTP → Authentication state: updates state
- Authentication state → Authentication service: requests auth
- Authentication service → Firebase: phone auth
- Account setup → User repository: sets up account
- User repository → Firebase: reads and writes
- Flutter entry → Home screen: starts UI
- Home screen → Map experience: shows map
- Map experience → Map state: updates state
- Location search → Map state: updates locations
- Map state → Map services: requests map operations
- Map services → Google Maps: uses map services
- Ride selection → Map state: updates selection
- Ride confirmation → Ride repository: submits ride
- Trip status UI → Ride repository: loads ride state
- Ride repository → Firebase: ride operations
- User repository → Ride and user models: uses models
- Ride repository → Ride and user models: uses models