A polished Flutter ride-hailing prototype built for Nigeria, featuring real maps, live location, in-app chat, voice calls, trip history, and a full dark-mode UI.
# Glide — Ride-Hailing App
A polished Flutter ride-hailing prototype built for Nigeria, featuring real maps, live location, in-app chat, voice calls, trip history, and a full dark-mode UI.
---
## Screenshots
Choose a Ride
Finding Your Ride
Driver Arriving
In-App Chat
Voice Call
Messages Inbox
Account Settings
User Profile
---
## Features
- **Interactive map** — Real CartoDB tiles (light + dark), GPS-centred on the user's location in Nigeria
- **Full ride flow** — Home → Plan ride → Choose vehicle → Searching → Driver en route → Trip complete
- **Live location detection** — Uses `geolocator` with Nigerian bounding-box validation; falls back to Lagos gracefully
- **In-app messaging** — Chat threads with drivers, quick-reply chips, animated message bubbles
- **Voice call screen** — Animated ripple rings, mute / speaker / end-call controls
- **Trip history** — Expandable past trips with vehicle type badges and ratings
- **User profile** — Avatar, stats (trips / rating / since), editable info rows
- **Account settings** — Dark mode toggle, discount notifications, wallet top-up sheet
- **Search** — Live-filtered location search with saved places and recent history
- **Dark mode by default** — Fully themed with `GlideTokens`; persisted across sessions via `SharedPreferences`
---
## Tech Stack
| Layer | Technology |
|---|---|
| Framework | Flutter 3 / Dart |
| State management | `flutter_bloc` (Cubits) |
| Dependency injection | `get_it` |
| Maps | `flutter_map` + CartoDB tiles |
| Location | `geolocator` |
| Persistence | `shared_preferences` |
| Icons | `lucide_icons_flutter` |
| Functional helpers | `fpdart` |
---
## Architecture
Clean Architecture with a strict four-layer dependency rule:
```
lib/
├── core/ # Shared services (PreferencesService)
├── domain/ # Entities, repository interfaces, use cases
├── data/ # Repository implementations, local data sources
├── presentation/ # Pages, cubits, widgets, …