A comprehensive Flutter application for on-demand home services, built with modern architecture patterns and cloud services.
API Call: home_items_repo.dart โ Processing: home_items_controller.dart โ Parsing: popular_specialty_model.dart โ State Update: home_items_controller.dart โ UI Update: light_theme_home.dart โ specialty_widget.dart
This project is a starting point for a Flutter application.
Frontend: Flutter with Dart
State Management: Provider + GetX
Backend: Node.js/Express API hosted on Netlify
Database: Firebase (Firestore, Auth, Storage)
Authentication: Firebase Auth + Phone Verification
๐งบ Laundry & Dry Cleaning
โฝ Gas Refill & Exchange
๐พ Pet Care & Grooming
๐งน Home Cleaning Services
๐ Mobile Car Wash
๐ Sneaker & Blanket Cleaning
Real-time service booking
Live order tracking
Secure in-app payments
Multi-service cart management
Push notifications
Location-based services
dependencies: get: ^4.6.1 # State management provider: ^6.0.4 # State management firebase_core: 4.2.0 # Firebase integration firebase_auth: 6.1.1 # Authentication cloud_firestore: 6.0.3 # Database http: ^1.5.0 # API calls shared_preferences: ^2.0.13 # Local storage
Backend endpoints served via Netlify Functions:
/recommended - Featured services
/laundry - Laundry services
/gas-refill - Gas delivery
/pet-care - Pet services
/home-items - Main categories
And 10+ additional service endpoints
lib/ โโโ controllers/ # Business logic & state management โ โโโ home_items_controller.dart โ โโโ pet_care_specialty_controller.dart โ โโโ gas_refill_specialty_controller.dart โ โโโ new_cart_controller.dart โโโ helpers/data/ โ โโโ repository/ # API data repositories โ โ โโโ home_items_repo.dart โ โ โโโ pet_care_specialty_repo.dart โ โ โโโ cart_repo.dart โ โโโ api/ โ โโโ api_client.dart # HTTP client configuration โโโ models/ # Data models โ โโโ new_specialty_model.dart โ โโโ popular_specialty_model.dart โ โโโ new_cart_model.dart โโโ live/view/ # UI screens โ โโโ home_view/ โ โโโ cart_view/ โ โโโ auth_view/ โ โโโ checkout_view/ โโโ utils/ โโโ dimensions.dart # Responsive sizing โโโ app_constants.dart # App constants & URLs
// Provider for app-wide state Provider( create: (_) => AuthService(), child: MyApp(), )
// GetX for feature-specific controllers Get.lazyPut(() => HomeItemsController(homeItemsRepo: Get.find())) Get.lazyPut(() => PetCareSpecialtyController(petCareRepo: Get.find()))
class PetCareSpecialtyController extends GetxController { final RxList _petCareSpecialtyList = [].obs; final RxBool _isLoaded = false.obs;
@override void onInit() { super.onInit(); getPetCareSpecialtyList(); }
Future getPetCareSpecialtyList() async { // API call implementation } }
// Netlify functions structure router.get("/pet-care", (req, res) => { res.send(importPetCare); });
router.get("/gas-refill", (req, res) => { res.send(importGasRefill); });
app.use("/.netlify/functions/api", router);
class ApiClient extends GetxService { final String appBaseUrl; final SharedPreferences sharedPreferences;
Future getData(String uri) async { try { Response response = await http.get( Uri.parse(appBaseUrl + uri), headers: _mainHeaders, ); return response; } catch (e) { return Response(statusCode: 1, statusText: e.toString()); } } }
class NewSpecialtyModel { int? id; String? name; String? introduction; List? price; List? size; String? img; String? type; String? material; String? provider;
// Size variant support String? selectedSize; bool? isSizeVariant; int? originalId; }
class NewCartModel { int? id; String? name; int? price; String? img; String? type; int? quantity; dynamic specialty; // Can be NewSpecialtyModel or Map }
Custom dimension system using Dimensions.dart
Adaptive layouts for various screen sizes
Consistent spacing and typography
Home โ Category View โ Service Details โ Cart โ Checkout โ Auth Flow โ โ Favorite โ
GenericWhiteContainer - Reusable card container
ServiceWidget - Service display component
CartProductView - Cart item display
SafePetCareWidget - Error-boundary wrapper
Phone number authentication
User profile management
Secure session handling
Guest mode support
Firebase Security Rules
Input validation
Error boundary implementation
Safe controller access patterns
Get.lazyPut(() => HomeItemsController(homeItemsRepo: Get.find()));
environment: sdk: ">=3.0.0 <4.0.0"
flutter_native_splash: color: "#ffffff" image: assets/splash/splash.jpg
Flutter SDK 3.0+
Firebase project configuration
Node.js for backend development
Clone the repository
Run flutter pub get
Configure Firebase
Set up environment variables
Run flutter run
Support for different service types
Size variant handling
Quantity management
Price calculation
Firebase listeners
State synchronization
Offline capability with local storage
Network error recovery
Controller lifecycle management
User-friendly error messages
Advanced analytics integration
Advanced payment options
Built with Flutter, Firebase, and modern development practices for reliable on-demand service delivery.