https://github.com/ahmedelazab1220/ecommerce_flower_app
The E-commerce Flower App is a comprehensive mobile application built with Flutter that enables users to browse and purchase flower products. This document provides a high-level overview of the application's architecture, key features, and core systems to help developers understand the codebase.
https://github.com/ahmedelazab1220/ecommerce_flower_app
clean-architecture cubit-bloc cubit-state-management dart dartlang dependency-injection dependency-inversion-principle dio firebase firebase-analytics firebase-app-distribution firebase-crashlytics flutter flutter-secure-storage localization mvi-pattern provider retrofit sharedpreferences state-management
Last synced: 3 months ago
JSON representation
The E-commerce Flower App is a comprehensive mobile application built with Flutter that enables users to browse and purchase flower products. This document provides a high-level overview of the application's architecture, key features, and core systems to help developers understand the codebase.
- Host: GitHub
- URL: https://github.com/ahmedelazab1220/ecommerce_flower_app
- Owner: ahmedelazab1220
- License: apache-2.0
- Created: 2025-03-19T17:54:34.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-07-18T15:07:46.000Z (3 months ago)
- Last Synced: 2025-07-18T19:44:53.410Z (3 months ago)
- Topics: clean-architecture, cubit-bloc, cubit-state-management, dart, dartlang, dependency-injection, dependency-inversion-principle, dio, firebase, firebase-analytics, firebase-app-distribution, firebase-crashlytics, flutter, flutter-secure-storage, localization, mvi-pattern, provider, retrofit, sharedpreferences, state-management
- Language: Dart
- Homepage:
- Size: 2.44 MB
- Stars: 0
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README








[](https://deepwiki.com/ahmedelazab1220/ecommerce_flower_app)# Overview
The E-commerce Flower App is a comprehensive mobile application built with Flutter that enables users to browse and purchase flower products. This document provides a high-level overview of the application's architecture, key features, and core systems to help developers understand the codebase.
# Purpose and Scope
This overview covers the fundamental structure of the application, its architectural patterns, and the interaction between core components. It serves as an entry point for understanding how various features like authentication, product browsing, shopping cart, and checkout functionality are organized and connected. For detailed information about specific subsystems, refer to the dedicated wiki pages mentioned throughout this document.
# Application Architecture
The application follows a clean architecture approach with clear separation of concerns across multiple layers. This ensures maintainability, testability, and scalability of the codebase.

Sources:
- [`lib/main.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/main.dart)
- [`lib/core/utils/app_strater.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e334d23778c754add94c95cb662a31861f1/lib/core/utils/app_strater.dart)
- [`lib/core/utils/di/di.config.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e334d23778c754add94c95cb662a31861f1/lib/core/utils/di/di.config.dart)
# Technology Stack
The application leverages a variety of modern libraries and frameworks:
| ****category**** | ****Technologies****
| :---: | :---: |
| `UI Framework` | `Flutter` |
| `State Management` | `Flutter BLoC/Cubit` |
| `Dependency Injection` | `GetIt & Injectable` |
| `Network Communication` | `Dio & Retrofit` |
| `Local Storage` | `Flutter Secure Storage, Shared Preferences, Hive` |
| `Analytics & Monitoring` | `Firebase Analytics, Firebase Crashlytics` |
| `Localization` | `Easy Localization` |
| `UI Components` | `Flutter SVG, Cached Network Image, Carousel Slider` |
| `Location Services` | `Geocoding, Location` |
| `Other Utilities` | `Logger, Flutter ScreenUtil, Flutter Slidable` |Sources:
- [`pubspec.yaml`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/pubspec.yaml)
- [`windows/flutter/generated_plugin_registrant.cc`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/windows/flutter/generated_plugin_registrant.cc#L9-L11)
- [`windows/flutter/generated_plugins.cmake`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/windows/flutter/generated_plugins.cmake#L5-L9)
- [`macos/Flutter/GeneratedPluginRegistrant.swift`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/macos/Flutter/GeneratedPluginRegistrant.swift#L8-L17)
# App Initialization Flow
The application follows a structured initialization process to ensure all required components are properly set up before presenting the UI to the user.

Sources:
- [`lib/main.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/main.dart#L15-L29)
- [`lib/core/utils/app_strater.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/app_strater.dart#L14-L45)
- [`lib/main.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/main.dart#L31-L56)
# Demo Video
🌸 E-commerce Flower App Demo | Flutter Clean Architecture | Arabic & English Support
[](https://www.youtube.com/watch?v=kt7Kp878Crs)
# Key Features and Modules
The application is organized into feature modules, each responsible for a specific functionality. The diagram below shows the main features and their relationships.

Sources:
- [`lib/core/utils/routes/routes.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/routes/routes.dart#L27-L107)
- [`lib/core/utils/l10n/locale_keys.g.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/l10n/locale_keys.g.dart#L5-L260)
- [`lib/core/utils/di/di.config.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/di/di.config.dart#L300-L799)
# State Management Pattern
The application uses the BLoC/Cubit pattern for state management, providing a unidirectional data flow that makes the app's state predictable and maintainable.

Sources:
- [`lib/core/utils/di/di.config.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/di/di.config.dart#L580-L796)
- [`lib/main.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/main.dart#L19-L19)
# Dependency Injection System
The application uses GetIt and the Injectable package for dependency injection, allowing for loose coupling between components and easier testing.

Sources:
- [`lib/core/utils/di/di.config.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/di/di.config.dart#L300-L799)
- [`lib/main.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/main.dart#L12-L12)
- [`lib/main.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/main.dart#L19-L19)
# Localization System
The application supports multiple languages (English and Arabic) through easy_localization, allowing for seamless language switching.

Sources:
- [`lib/core/utils/l10n/locale_keys.g.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/l10n/locale_keys.g.dart#L5-L260)
- [`assets/translations/en.json`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/assets/translations/en.json)
- [`assets/translations/ar.json`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/assets/translations/ar.json)
- [`lib/main.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/main.dart#L20-L28)
- [`lib/core/utils/app_strater.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/app_strater.dart#L37-L38)
# Network Layer
The application communicates with backend services through a structured network layer using Dio and Retrofit.

Sources:
- [`lib/core/utils/di/di.config.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/di/di.config.dart#L351-L353)
- [`lib/core/utils/di/di.config.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/di/di.config.dart#L363-L407)
- [`lib/core/utils/di/di.config.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/di/di.config.dart#L411-L496)
# Summary
The E-commerce Flower App is a well-structured Flutter application following clean architecture principles. It separates concerns into distinct layers (presentation, domain, data) and uses modern patterns and libraries for state management, dependency injection, and API communication. The app supports multiple languages and provides a comprehensive set of features for browsing and purchasing flower products.
Sources:
- [`lib/main.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/main.dart)
- [`lib/core/utils/app_strater.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/app_strater.dart)
- [`lib/core/utils/di/di.config.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/di/di.config.dart)
- [`lib/core/utils/routes/routes.dart`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/lib/core/utils/routes/routes.dart)
- [`pubspec.yaml`](https://github.com/ahmedelazab1220/ecommerce_flower_app/blob/c08d0e33/pubspec.yaml)
# License
This project is licensed under the Apache 2.0 License – see the LICENSE file for details.