Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ahmedasaber/fruits_ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍎 FruitHub - E-Commerce Flutter App

A modern, feature-rich e-commerce mobile application built with Flutter for selling fresh fruits and seasonal produce. The app provides a seamless shopping experience with bilingual support (Arabic/English) and integrated payment solutions.

πŸ“± Screenshots

✨ Features

πŸ›οΈ Shopping Features

  • Browse fresh fruits with high-quality images
  • Best-selling products section
  • Advanced search with history
  • Filter & sort products (price, alphabetical)
  • Product details with reviews and ratings
  • Shopping cart with quantity management
  • Favorites/Wishlist functionality

πŸ’³ Payment & Checkout

  • Cash on delivery
  • Online payment via PayPal integration
  • Secure checkout process
  • Order tracking
  • Order history

πŸ‘€ User Management

  • Email/Password authentication
  • Google Sign-In
  • Facebook Sign-In
  • Password reset functionality
  • Personal profile management
  • Change password feature

🌐 Localization

  • Full bilingual support (Arabic/English)
  • RTL support for Arabic
  • Dynamic language switching
  • Localized content and dates

πŸ“Š State Management

  • BLoC pattern implementation
  • Hydrated BLoC for persistent state
  • Cubit for simpler state management

πŸ’Ύ Data Persistence

  • Firebase Firestore for backend
  • Hive for local caching
  • SharedPreferences for user settings
  • Favorites stored locally

πŸ—οΈ Architecture

The app follows Clean Architecture principles with clear separation of concerns:

lib/
β”œβ”€β”€ core/                    # Core functionality
β”‚   β”œβ”€β”€ entities/           # Business entities
β”‚   β”œβ”€β”€ models/             # Data models
β”‚   β”œβ”€β”€ repos/              # Repository interfaces & implementations
β”‚   β”œβ”€β”€ services/           # App services (Firebase, Storage, etc.)
β”‚   β”œβ”€β”€ utils/              # Utilities and helpers
β”‚   └── widgets/            # Reusable widgets
β”œβ”€β”€ features/               # Feature modules
β”‚   β”œβ”€β”€ authentication/     # Auth features
β”‚   β”œβ”€β”€ home/              # Home & main features
β”‚   β”œβ”€β”€ checkout/          # Payment & checkout
β”‚   β”œβ”€β”€ favorites/         # Favorites management
β”‚   β”œβ”€β”€ search/            # Search functionality
β”‚   └── ...                # Other features
└── generated/             # Generated localization files

πŸ› οΈ Technologies & Packages

Core

  • Flutter SDK: Cross-platform development
  • Dart: Programming language

State Management

  • flutter_bloc / bloc: State management
  • hydrated_bloc: Persistent state
  • equatable: Value equality

Backend & Database

  • firebase_core & firebase_auth: Authentication
  • cloud_firestore: Cloud database
  • hive & hive_flutter: Local database

UI & Design

  • flutter_svg: SVG rendering
  • skeletonizer: Loading skeletons
  • dots_indicator: Page indicators
  • modal_progress_hud_nsn: Loading overlays

Payments

  • flutter_paypal_payment: PayPal integration

Social Auth

  • google_sign_in: Google authentication
  • flutter_facebook_auth: Facebook authentication

Localization

  • intl: Internationalization
  • flutter_localizations: Flutter localization support

Utilities

  • get_it: Dependency injection
  • dartz: Functional programming
  • uuid: Unique ID generation
  • logger: Logging
  • shared_preferences: Key-value storage

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (3.0.0 or higher)
  • Dart SDK (3.0.0 or higher)
  • Android Studio / VS Code
  • Firebase account

πŸ“Š Admin Dashboard

For managing products and orders, please use our admin dashboard:

Dashboard Link: [https://github.com/ahmedasaber/fruit_dashboard]

Features:

  • Product management (Add)
  • Order tracking and management

πŸ”₯ Firebase Structure

Collections

users

{
  "name": "string",
  "email": "string",
  "uId": "string"
}

products

{
  "name": "string",
  "code": "string",
  "description": "string",
  "price": "number",
  "imageUrl": "string",
  "isFeatured": "boolean",
  "expirationsMonth": "number",
  "numOfCalories": "number",
  "unitAmount": "number",
  "isOrganic": "boolean",
  "reviews": "array",
  "avgRating": "number",
  "sellingCount": "number"
}

orders

{
  "orderId": "string",
  "totalPrice": "number",
  "uld": "string",
  "status": "string",
  "date": "string",
  "shippingAddressModel": "object",
  "orderProducts": "array",
  "paymentMethod": "string"
}

πŸ“± Screens Overview

  1. Onboarding - Introduction to app features
  2. Authentication - Login, Register, Forgot Password
  3. Home - Featured products, Best sellers
  4. Products - Browse all products with filters
  5. Product Details - Detailed product information
  6. Search - Search products with history
  7. Cart - Shopping cart management
  8. Checkout - Shipping and payment
  9. Profile - User profile and settings
  10. Favorites - Saved products
  11. Orders - Order history
  12. Notifications - App notifications

🎨 Theming

The app uses a custom theme with:

  • Primary Color: #1B5E37 (Green)
  • Secondary Color: #f4a91f (Orange)
  • Cairo font family
  • Material Design 3 components

🌍 Localization

To add new translations:

  1. Edit lib/l10n/intl_en.arb and lib/l10n/intl_ar.arb
  2. Run code generation:
flutter pub run intl_utils:generate

πŸ“¦ Build APK/IPA

Android APK

flutter build apk --release

iOS IPA

flutter build ios --release

πŸ‘¨β€πŸ’» Developer

Ahmed Ashraf

πŸ“ž Support

For support, email: [email protected].

Made with ❀️ by Ahmed Ashraf

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages