A fully functional cross-platform e-commerce shopping app built with Flutter and Firebase. Users can browse products, manage their cart, check out, track orders, and manage their profile — all backed by a real-time Firestore database.
This is the user-facing app; it pairs with a companion for managing products orders and inventory.
- 🔐 Authentication — Email/password sign up & login, with Google Sign-In
- 🛍️ Product Catalog — Browse products by category with images, pricing, and ratings
- 🔍 Search — Find products quickly across the catalog
- 🛒 Cart Management — Add, update quantities, and remove items, synced live with Firestore
- 💳 Checkout — Place orders with delivery address selection
- 📦 Order Tracking — View order history and real-time order status updates
- ❤️ Wishlist — Save favorite products for later
- 📍 Address Management — Add, edit, and select delivery addresses
- 👤 User Profile — Edit profile details and upload a profile picture (camera or gallery)
- 📱 Responsive UI — Optimized for portrait mode on Android
| Category | Technology |
|---|---|
| Framework | Flutter (Dart) |
| State Management | Provider |
| Backend | Firebase |
| Database | Cloud Firestore |
| Authentication | Firebase Auth (Email/Password, Google Sign-In) |
| Storage | Firebase Storage (product & profile images) |
| Architecture | Provider-based state management with a clean, modular folder structure |
lib/
├── models/ # Data models (Product, Order, User, Address, etc.)
├── providers/ # Provider classes for state management
├── screens/ # App screens (auth, home, cart, checkout, profile, etc.)
├── widgets/ # Reusable UI components
├── services/ # Firebase service classes (auth, firestore, storage)
└── main.dart
- Flutter SDK installed
- A Firebase project set up
- Android Studio or VS Code with the Flutter/Dart plugins
-
Clone the repository
git clone https://github.com/Monam1083/flutter-firebase-ecommerce-user.git cd flutter-firebase-ecommerce-user -
Install dependencies
flutter pub get
-
Configure Firebase
- Create a Firebase project at the Firebase Console
- Enable Authentication (Email/Password and Google Sign-In)
- Enable Cloud Firestore and Firebase Storage
- Add an Android app to your Firebase project and download
google-services.json - Place
google-services.jsoninandroid/app/
-
Run the app
flutter run
Currently configured and tested for Android (portrait mode only). iOS configuration is not included.
This project is open source and available for learning and personal use.