Mobile e-commerce application built with Flutter to sell clothing, electronics, and accessories.
Supports multi-language, online/offline usage, and secure online payments. Designed with Clean Architecture for scalability and maintainability.
- Screenshots
- Features
- Tech Stack
- Architecture
- State Management
- Local Storage (Hive)
- API Integration
- Dependency Injection
- Performance
- License
- Local Notifications
Add your screenshots inside:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- 🛍️ Products – Browse clothing, electronics, and accessories
- 🛒 Shopping Cart – Add/remove items, edit quantities
- 🔐 User Authentication – Login/Signup with
Firebase Auth - 🌐 Multi-language Support – Using
AppLocalization - 📶 Online & Offline Support – Smooth experience in any network condition
- 📺 Streaming Page – Display promotions or live content
- 💳 Online Payments – Support for Paymob & PayPal
- 🌙 Dark Mode / Light Mode – User preference
- 🏗️ Clean Architecture – Scalable and maintainable code
- 🧩 Dependency Injection – Using
GetIt/Injectable - ⚡ Optimized Performance – Caching, pagination, and isolates for heavy operations
- Flutter (Frontend)
- Dart (Programming Language)
- Firebase (Auth, Firestore, Storage)
- Cubit (Bloc) (State Management)
- Hive (Local Storage)
- Dio (API requests)
- AppLocalization (Multi-language support)
- Clean Architecture
- Dependency Injection (
GetIt/Injectable) - Isolates (Performance optimization)
This project follows Clean Architecture, providing:
- Separation of concerns
- Scalability for future features
- Testable modules
- Maintainable and modular code structure
Using Cubit (Bloc) for:
- UI State Control
- Loading & Error Handling
- Cart Management
- Checkout State
- Product List & Details State
Hive is used to:
- Cache products & categories
- Save user preferences
- Improve app performance
- Reduce unnecessary API calls
Benefits:
- Very fast
- Non-blocking UI
- Supports large datasets
- Fetch products, categories, and orders
- Handle online payments via Paymob & PayPal
- Network requests using Dio
- Interceptors for logging & error handling
- Retry mechanism
- Clean API service layer
Using GetIt / Injectable for:
- Repositories
- UseCases
- API Services
- Cubits
- Local storage
Ensures modular, testable, and maintainable architecture.
- Isolates for heavy operations
- Hive caching for offline & fast data load
- Pagination for product lists
- Low memory usage
- Smooth and responsive UI
The app uses local notifications to alert users about important events and updates within the app itself, without requiring an internet connection.
- flutter_local_notifications package for scheduling notifications
- Supports immediate and scheduled notifications
- Can show notifications for orders, promotions, or reminders
- Fully works in offline mode
- Customizable title, body, and icons
This project is licensed under the MIT License - see the LICENSE file for details.







