A Flutter mobility prototype: Taxi, Baxi, cargo & van booking with live maps, fare estimation, and driver rating.
Built with flutter_map + OpenStreetMap, Firebase, and GetX — Persian-first and production-feeling.
Visual Tour • Features • Tech Stack • Run Locally
Actual Flutter renders — light, yellow-black Baxi brand, RTL and ready for city use. Not Figma mockups.
Top: Brand splash & phone login (ورود) • Middle: Ride options & map with 4 service tiers • Bottom: Cargo van & driver rating (۵ ستاره)
📸 What you see in each screen
- Splash (
splash.jpg): 3D yellow taxi onBaxi TAXIorange badge — the brand hero. - Login (
login.jpg):ورود—شماره موبایل خود را وارد کنید+شماره همراهfield +ارسال کدamber CTA, clean GetX form. - Ride Options (
options.jpg): Illustration (phone + taxi + traveler), togglesرفت و برگشت/چند مقصده/زمان تاخیر, fareهزینه سفر 21000 تومان+درخواست تاکسیCTA. - Live Map (
map.jpg):flutter_mapOSM tiles aroundUniversity Acres, route polyline, bottom sheet with 4 tiers:تاکسی 20000/بکس بهاران 25000/بکس کلاسیک 12000/بکس بار 40000+انتخاب سرویس. - Cargo (
cargo.jpg):گزینه های سفرwith BAXI yellow truck, optionsکمک راننده در حمل بار/شکستنی/ inputارزش مالی کالا/مبدا/مقصد, fare21000 تومان. - Rating (
rating.jpg):امتیاز به راننده— avatarامیررضا منصور,به این سفر چه امتیازی میدهید؟+ 5 stars + comment box +ارسال نظر.
- Brand & Onboarding — 3D taxi splash + phone auth (
ارسال کد) with GetStorage session - Ride Booking —
گزینه های سفرwith round-trip / multi-stop / scheduled toggles, fare preview - Live Maps —
flutter_map+latlong2+flutter_map_geojson+flutter_osm_pluginsearch & routing, URL launcher for external nav - Service Tiers — 4 fare cards: classic taxi, Bakhi, van — all in Toman, selectable bottom sheet (
انتخاب سرویس) - Cargo & Logistics — BAXI truck mode with helper, fragile flag, declared value, origin/destination inputs
- Driver Rating — Post-trip
امتیاز به رانندهwith 5-star + free text +ارسال نظر(GetX controller, offline mock) - Persian UX —
Locale('fa'), RTL mirroring, Toman formatting, amber/black Baxi palette,google_fonts
| Area | Stack |
|---|---|
| Core | Flutter 3.2+ / Dart |
| State & Storage | GetX 4.6.6 + GetStorage |
| Maps | flutter_map 6.1.0, latlong2, flutter_map_geojson, flutter_osm_plugin 0.70.4, url_launcher 6.2.4 |
| Backend | dio 5.4.0, firebase_core + analytics + crashlytics + messaging (wired, can enable) |
| UI | flutter_svg, flutter_spinkit, google_fonts 6.1.0 |
| Arch | GetX controllers + Dio repositories — ready to plug REST baseUrl |
lib/
├── splash-screen.dart
├── controller/ # GetX (auth, map, booking, rating)
├── view/ # map, cargo, ride_options, rating
├── services/ # Dio, OSM, Firebase wrappers
└── main.dart # GetStorage.init() → GetMaterialApp(Locale('fa'))
git clone https://github.com/Muhammad1831/Baxi.git
cd Baxi
flutter pub get
flutter run -d chrome # web — fastest to verify RTL + maps
flutter run -d android # OSM tiles need internetFirebase (optional): Currently commented in lib/main.dart for easy local run. To enable:
- Uncomment Firebase init
- Add
android/app/google-services.json+ios/Runner/GoogleService-Info.plist flutterfire configure
No API key needed for maps — OSM is open. For production, set Dio baseUrl in your service.
- Palette: Baxi yellow
#FFB800+ black + white — high contrast for outdoor use - Typography: Bold
Baxiwordmark, Persian body with proper spacing - States: Every sheet has loading/empty/error — no dead ends
- Pricing: All fares in تومان, consistent
21000 تومانdemo fare across screens
- Real-time driver location via WebSocket
- Payment + wallet integration
- Push notifications (FCM) for driver arrival
- Unit tests for booking controller
Built with Flutter 💙 by Muhammad Saleh · Mobility that feels Persian
Actual implementation captures from the running app — 6 real screens. Map tiles © OpenStreetMap.





