Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/loficrypto/fire_flutter_store
This project is designed to deliver a rich, user-friendly ecommerce experience, leveraging Flutter's capabilities to create a responsive and modern web application. Users can seamlessly interact with products, manage their accounts, and access digital products efficiently
https://github.com/loficrypto/fire_flutter_store
ecommerce ecommerce-store firebase firebase-auth firebase-database flutter flutter-app flutter-apps flutter-web
Last synced: 7 days ago
JSON representation
This project is designed to deliver a rich, user-friendly ecommerce experience, leveraging Flutter's capabilities to create a responsive and modern web application. Users can seamlessly interact with products, manage their accounts, and access digital products efficiently
- Host: GitHub
- URL: https://github.com/loficrypto/fire_flutter_store
- Owner: loficrypto
- Created: 2024-10-16T07:01:18.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-10-16T14:29:44.000Z (about 1 month ago)
- Last Synced: 2024-10-18T13:34:16.569Z (about 1 month ago)
- Topics: ecommerce, ecommerce-store, firebase, firebase-auth, firebase-database, flutter, flutter-app, flutter-apps, flutter-web
- Language: Dart
- Homepage: https://nullbite.net/
- Size: 332 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Project Overview
This project is designed to deliver a rich, user-friendly ecommerce experience, leveraging Flutter's capabilities to create a responsive and modern web application. Users can seamlessly interact with products, manage their accounts, and access digital products efficiently, while admins have full control over the platform's content and user management. 🚀📈✨## User Experience
- Home Page: The starting point where users can see featured products, get an overview of the platform, and navigate to different sections.
- Shop Page: A dedicated page displaying all products in a grid layout, allowing users to browse and add items to their cart.
- Product Details: Provides detailed information about individual products, including images, descriptions, and prices.
- Cart: Allows users to view and manage the items they intend to purchase.
- Checkout: Processes the purchase, utilizing the user's wallet balance for transactions.
## User Profile Management
- Profile Details: Displays user information such as email and personal details.
- Wallet Balance: Shows the current balance and allows users to top up their wallet using cryptocurrency (USDT, BTC, LTC).
- Purchase History: Lists recent purchases with download links for digital products.
- Top-Up History: Records all wallet top-up transactions.
- Transactions: Displays all user transactions, both purchases and top-ups.
## Admin Panel
- Manage Orders: Admins can view and manage all orders placed by users.
- Manage Products: Admins can add new products, update existing ones, or delete products. Product management includes handling product images and files stored in Firebase Storage.
- Manage Users: Admins can view and manage all registered users.
- Send Emails: Admins can send email notifications to users using Brevo's SMTP.
## Automated Email Notifications
- Order Confirmation: Sends an email with product download links upon successful purchase. This ensures users receive their digital products directly in their inbox.
## Blog
- Posts Management: Admins can create, update, or delete blog posts. Posts can include images that are stored in Firebase Storage.
- User Engagement: Users can view and read blog posts, enhancing their interaction with the platform.
## Key Technologies and Integrations
- Flutter: Provides a responsive and modern web application.## Firebase:
- Authentication: Manages user sign-up, sign-in, and authentication states.
- Firestore: A NoSQL database for storing and syncing user data, product details, orders, and blog posts.
- Storage: For storing and retrieving product files and blog images.
- Brevo's SMTP: Integrated with Nodemailer for sending automated email notifications.
- Apirone API: Handles cryptocurrency transactions for wallet top-ups.
### Project Structure
```
lib/
├── models/
│ ├── product.dart
│ ├── user.dart
├── services/
│ ├── firebase_auth_service.dart
│ ├── firestore_service.dart
│ ├── storage_service.dart
│ ├── email_service.dart
│ ├── payment_service.dart
├── views/
│ ├── home_view.dart
│ ├── shop_view.dart
│ ├── product_detail_view.dart
│ ├── cart_view.dart
│ ├── checkout_view.dart
│ ├── profile_view.dart
│ ├── admin_view.dart
│ ├── blog_view.dart
├── widgets/
│ ├── product_card.dart
│ ├── product_grid.dart
│ ├── profile_details.dart
│ ├── purchase_history.dart
│ ├── wallet_balance.dart
│ ├── transactions.dart
│ ├── admin_orders.dart
│ ├── admin_products.dart
│ ├── admin_users.dart
│ ├── admin_emails.dart
│ ├── admin_product_form.dart
├── main.dart
```## Firestore Structure:
```
Firestore Database
|
├── users (collection)
| ├── {userId} (document)
| ├── email: string
| ├── walletBalance: number
| ├── purchases: array
| ├── topUps: array
| ├── transactions: array
|
├── products (collection)
| ├── {productId} (document)
| ├── name: string
| ├── description: string
| ├── price: number
| ├── imageUrl: string
| ├── productFile: string
|
├── orders (collection)
| ├── {orderId} (document)
| ├── userId: string
| ├── items: array
| ├── totalAmount: number
| ├── date: string
|
├── blogPosts (collection)
| ├── {postId} (document)
| ├── title: string
| ├── content: string
| ├── imageUrl: string```
### `firebase/firestore.rules`
```
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
match /products/{productId} {
allow read: if true;
allow write: if request.auth.token.admin == true;
}
match /orders/{orderId} {
allow read, write: if request.auth != null;
}
match /transactions/{transactionId} {
allow read, write: if request.auth != null;
}
match /blogPosts/{postId} {
allow read: if true;
allow write: if request.auth.token.admin == true;
}
}
}```
### Firebase Configuration File
Ensure you have your Firebase configuration file (e.g., `google-services.json`) placed in the appropriate directory as per Firebase setup instructions.> This configuration will allow you to interact seamlessly with Firebase services, enabling authentication, data storage, and file storage within your Flutter project.