Panda-Mart is a Flutter-based e-commerce application designed for seamless and dynamic product browsing. It supports categories such as beauty products, furniture, food, and beverages. The app integrates Firebase services to provide real-time updates, notifications, and remote configuration management.
- Framework: Flutter (Dart)
- Backend Services: Firebase (Authentication, Firestore, Cloud Messaging, Remote Config)
- State Management: Provider
- Architecture: Clean Architecture (Domain, Data, Presentation Layers)
- Platform Support: iOS and Android
- Dynamic product listing based on categories.
- Remote configuration using Firebase Remote Config for displaying pricing dynamically.
- Integration with Firebase Firestore for real-time data fetching and updates.
- Flutter SDK installed (>= 3.0.0)
- Firebase CLI installed
- Android Studio or Xcode for building Android/iOS versions
-
Clone the Repository:
git clone https://github.com/Rohit-554/Panda-Mart.git
-
Navigate to the Project Directory:
cd panda-mart
-
Install Dependencies:
flutter pub get
-
Configure Firebase: Follow the Firebase Setup section below to set up your Firebase project.
-
Run the App:
flutter run
- Go to the Firebase Console.
- Click on Add Project and enter your project name (e.g.,
Panda-Mart
). - Follow the steps to complete the project creation.
- Add Firebase to your Android App:
- Download the
google-services.json
file and place it in theandroid/app/
directory.
- Download the
- Add Firebase to your iOS App:
- Download the
GoogleService-Info.plist
file and place it in theios/Runner/
directory.
- Download the
- In the Firebase Console, enable Cloud Messaging.
- Make sure to set up your Android and iOS manifests for push notifications.
- In the Firebase Console, navigate to Remote Config and add a new parameter:
- Key:
show_discounted_price
- Value:
true
orfalse
(to control whether the app shows discounted prices or original prices).
- Key:
- If the
show_discounted_price
parameter is set totrue
, the app calculates the discounted price using thediscountPercentage
from the API and displays it. Otherwise, it shows the original price.
To test push notifications using a specific device, obtain the FCM token using:
FirebaseMessaging.instance.getToken().then((token) {
print("FCM Token: $token");
});
We welcome contributions from the community! To contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature/new-feature
- Make your changes and commit:
git commit -m "Add new feature"
- Push to your fork:
git push origin feature/new-feature
- Create a Pull Request on the main repository.
- Follow the Clean Architecture structure: Separate code into
domain
,data
, andpresentation
layers. - Make sure all new code is well-documented.
Made with love by Rohit ♥