Customers book services, workers manage jobs — Real time chat, quote negotiation, one Flutter codebase.
- 🔍 Browse & Search — Find workers across 6 categories (Plumber, Electrician, Carpenter, Painter, AC Repair, Cleaner)
- 📅 Instant Booking — Book service packages or request custom quotes with price negotiation
- 💬 Real-Time Chat — Full messaging with typing indicators, read receipts, image sharing, emoji reactions, and reply threads
- 💳 Flexible Payments — Cash or online (FIB, FastPay) with full payment status tracking
- ⭐ Reviews & Ratings — Rate completed jobs and read worker reviews
- 💼 Service Management — Create service packages with fixed pricing or accept custom quote requests
- 📋 Job Requests — Accept or decline bookings, respond to quote requests with pricing
- 📊 Earnings Dashboard — Track completed jobs, pending requests, and total earnings
- 🔄 Real-Time Sync — Firestore streams for instant updates across all screens
- 💬 Presence System — Live online/offline status with typing indicators
- 🌙 Dark Mode — Full dark theme support
- 📱 Adaptive Layout — Master-detail views on tablet/desktop, responsive on mobile
- 🔐 Secure Auth — Email/password + Google Sign-In
- 🧪 103 Unit Tests — Comprehensive test coverage
┌─────────────────────────────────────────────────────────┐
│ Presentation Layer │
│ (Screens, Widgets, GetX Controllers) │
├─────────────────────────────────────────────────────────┤
│ Domain Layer │
│ (Entities, Use Cases, Repositories) │
├─────────────────────────────────────────────────────────┤
│ Data Layer │
│ (Models, Remote DataSources, Firestore) │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ External Services │
│ Firebase Auth │ Firestore │ Cloudinary │
└─────────────────────────────────────────────────────────┘
Key Patterns: Clean Architecture • Feature-based Modules • Repository Pattern • GetX State Management • GetIt DI • go_router Navigation
Shahin Wahab — Software Engineer
Repository created on: 2025-12-08, 22:33 (UTC+3)