Welcome to eMart, the all-in-one solution for your everyday needs. Our platform seamlessly integrates multiple services into one convenient app, providing you with everything from delicious meals to reliable transportation, all with the click of a button. With eMart, convenience is just a tap away.
eMart is a comprehensive solution for multi-vendor delivery systems, created with Flutter, Firebase, and the Laravel Framework, known for its expressive and elegant syntax. This product includes three apps: Customer, Store, and Driver. This documentation provides guidance for setting up the eMart website and applications. It's recommended to use Laravel Homestead, a virtual machine that satisfies all system requirements, as your local development environment. Ensure your server meets the following requirements.
1.1 : Multi Vendor Items Delivery:
Craving your favorite dish? Explore a wide range of cuisines from local restaurants and food vendors. Order in with ease and have your meal delivered straight to your doorstep. With eMart's multivendor food delivery service, you're spoiled for choice.
1.2 : eCommerce Marketplace:
Experience non-stop shopping excitement with our extensive eCommerce marketplace. Browse through a diverse selection of products from various vendors, ranging from electronics and clothing to home goods and accessories. Find exactly what you need, all in one place.
1.3 : Parcel Delivery:
Need to send a package? No problem. Our parcel delivery service connects you with reliable couriers who can deliver your parcels safely and on time. Whether it's a small envelope or a large package, we've got you covered.
1.4 : Taxi Booking:
Getting around town has never been easier. Book a taxi with just a few taps and enjoy hassle-free transportation to your destination. Our network of drivers ensures prompt service and comfortable rides wherever you need to go.
1.5 : Car Rental:
Planning a road trip? Rent a car through eMart and hit the road with confidence. Choose from a variety of vehicles to suit your needs, whether it's a compact car for city driving or an SUV for a family adventure. Our seamless booking process makes renting a car a breeze.
1.6 : Admin Panel:
For vendors, our user-friendly admin panel provides all the tools you need to manage your products, orders, and deliveries efficiently. Monitor sales, update inventory, and communicate with customers—all from one centralized dashboard.
1.7 : Website Integration:
Our website complements our app, offering users another convenient way to access our services. Whether you prefer browsing on your desktop or mobile device, our website provides the same seamless experience as our app.
1.8 : Secure Payments:
Shop and pay with confidence thanks to our secure payment system. We support various payment methods, including credit/debit cards, mobile wallets, and cash on delivery, ensuring a smooth and secure transaction every time.
1.9 : Customer Support:
Have questions or need assistance? Our dedicated customer support team is here to help. Whether it's tracking an order, resolving an issue, or providing general assistance, we're just a message away.
1.10 : Promotions and Deals:
Take advantage of special promotions and deals offered by our vendors. From discounts on food orders to exclusive offers on car rentals, there's always a way to save with eMart.
Experience the Convenience of eMart Today:
Whether you're craving a meal, shopping for essentials, sending a package, booking a ride, or renting a car, eMart has you covered. Download the app or visit our website to discover the ultimate convenience of eMart. Welcome to a world where everything you need is just a tap away. Welcome to eMart.
Ensure your system meets the minimum requirements for Flutter development. Flutter supports development on Windows, macOS, and Linux. Make sure your system has the necessary hardware and software requirements as specified by Flutter documentation.
Download the Flutter SDK from the official Flutter website.
Extract the downloaded file to a location on your system. For example, on macOS or Linux, you can extract it to /usr/local and on Windows to C:\.
Add the Flutter bin directory to your system PATH to run Flutter commands from the command line. This step is important for executing Flutter commands globally in your system.
For Android: Install Android Studio and configure the Flutter plugin. Android Studio provides the Android SDK, which Flutter uses to develop for Android. Ensure you have the Android SDK and the necessary tools installed through Android Studio.
For iOS: You need a macOS system with Xcode installed to develop and deploy Flutter apps for iOS.
For Android development, set up an Android Virtual Device (AVD) using Android Studio’s AVD Manager.
For iOS development, use the iOS Simulator provided by Xcode.
Run flutter doctor:
Open a terminal and run flutter doctor. This command checks your system for any dependencies needed for Flutter development.
It will provide feedback on any missing or outdated components and instructions on how to resolve them.
If you’re using VS Code, install the Flutter and Dart plugins to enhance your development experience.
Android Studio also has built-in support for Flutter, but make sure to install the Flutter plugin if it’s not already installed.
Use the flutter create command to create a new Flutter project.
Navigate to the project directory and explore the file structure. You’ll find the main Dart file (main.dart) in the lib directory, where you’ll write your Flutter code.
Connect a device or start an emulator/simulator.
Navigate to your Flutter project directory in the terminal and run flutter run.
This will compile your Flutter app and launch it on the connected device or
emulator.
Once your app is running, you can start developing your Flutter UI and logic. Flutter’s hot reload feature allows you to see your changes instantly without restarting the app.
Flutter has an extensive set of widgets and libraries. Explore the official Flutter documentation and community resources to learn more about Flutter development.
Navigate to the android directory within your Flutter project.
Open the AndroidManifest.xml file located in the app/src/main directory.
File Location: "project/android/app/src/main/AndroidManifest.xml"
Find the package attribute in the manifest tag and change its value to your desired package name.
Open the MainActivity.java file located in android/app/src/main/java/com/your_old_package_name.
Replace occurrences of the old package name with the new package name.
First, prepare the new launcher icon images in the required sizes. Android and iOS have different size requirements. You typically need icons in various sizes to support different screen densities.
For Android, you need to replace the existing launcher icon files with your new ones. The launcher icons for Android are stored in the mipmap folders inside the android/app/src/main/res directory.
Replace the existing icon files (ic_launcher.png) in the mipmap folders with your new icon files. Make sure to maintain the same file names and sizes.
You may need to replace icons in various drawable folders for different screen densities (e.g., mipmap-hdpi, mipmap-mdpi, mipmap-xhdpi, mipmap-xxhdpi, mipmap-xxxhdpi).
3.4.1. For Open the android/app/src/main/AndroidManifest.xml file.
3.4.2. Locate the application tag.
3.4.3. Change the value of the android:label attribute to your desired app name.
3.5.1. Navigate to your Flutter project's android/app/src/main/AndroidManifest.xml file.
3.5.2. Inside the application element, locate the meta-data tag with the name com.google.android.geo.API_KEY.
3.5.3. Replace the android:value attribute with your new Google Maps API key.
meta-data android:name="com.google.android.geo.API_KEY"
android: value="YOUR_API_KEY_HERE"/>
keytool -genkey -v -keystore ~/my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
3.6.2. Explanation
3.6.2.1. -keystore: The path where the .jks file will be created (~/my-release-key.jks for Unix/macOS, C:\Users\YourName\my-release-key.jks for Windows).
3.6.2.2. -keyalg RSA: Algorithm used.
3.6.2.3. -keysize 2048: Key length.
3.6.2.4. validity 10000: Validity in days (~27 years).
3.6.2.5. -alias my-key-alias: Name of the key within the keystore.
3.6.3.1. Keystore password
3.6.3.2. Key password
3.6.3.3. Your name, organization, city, state, and country code
3.6.4.1. Create a file: android/key.properties
storePassword=your-store-password
keyPassword=your-key-password
keyAlias=my-key-alias
storeFile=/Users/yourusername/my-release-key.jks
(This important for Phone Auth, Google Sign-In )
3.7.1.1. Navigate to your JDK's bin directory in the command line.
3.7.1.2. Execute the following command to generate the SHA-1 key:
keytool -list -v -keystore path-to-your-keystore-file -alias your-alias-name
3.7.1.3. Replace path-to-your-keystore-file with the path to your keystore file (usually debug.keystore for debug builds and a custom keystore for release builds) and your-alias-name with the alias name used to generate the keystore.
3.7.1.4. Similarly, execute the following command to generate the SHA-256 key:
keytool -list -v -keystore path-to-your-keystore-file -alias your-alias-name -storetype PKCS12 -keyalg RSA
3.7.2.1. Open your Flutter project in Android Studio.
3.7.2.2. In the Android view, navigate to app -> Gradle Scripts -> build.gradle (Module: app).
3.7.2.3. Add the following lines to the android block
android {
signingConfigs {
debug {
storeFile file('path-to-debug.keystore')
storePassword 'password'
keyAlias 'key-alias'
keyPassword 'password'
}
}
}
3.7.2.4. Replace path-to-debug.keystore, password, and key-alias with your keystore file path, password, and key alias respectively.
3.7.2.5. Sync your project to apply changes.
3.7.2.6. Run the following Gradle task in the terminal to get the SHA-1 and SHA-256 keys
./gradlew signingReport
3.7.3.1. Go to the Firebase Console.
3.7.3.2. Select your project.
Click on the Android icon to add an Android app.
Follow the setup instructions, including adding the google-services.json file to your Flutter project's android/app directory.
During setup, you'll be asked for your SHA-1 key. Paste the SHA-1 key you generated earlier.
After setup is complete, you'll have the option to download the google-services.json file again. Replace the existing file in your project if needed.
Click on the iOS icon to add an iOS app.
Follow the setup instructions, including downloading the GoogleService-Info.plist file.
There's no need to add SHA-1 or SHA-256 keys for iOS.
Add the downloaded GoogleService-Info.plist file to your Flutter project's ios/Runner directory.
Navigate to the ios directory within your Flutter project.
Open the Runner.xcodeproj project file using Xcode.
In Xcode, select the Runner project from the project navigator.
Go to the Runner target's settings.
Under the General tab, find the Bundle Identifier field and change it to your desired bundle identifier.
4.2.1. For iOS, you need to replace the existing icon files with your new ones. The icons for iOS are stored in the Assets.xcassets directory in the ios/Runner directory.
4.2.2. Open your Flutter project in Xcode by navigating to the ios directory and opening the .xcworkspace file with Xcode.
4.2.3. In Xcode, navigate to Runner > Assets.xcassets.
4.2.4. Replace the existing AppIcon with your new icon files. You'll typically find different sizes labelled for various devices (e.g., iPhone, iPad).
4.3.1. Open the ios/Runner/Info.plist file.
4.3.2. Locate the
entry.
4.3.3. Change the value associated with string to your desired app name.
CFBundleDisplayName My New App
4.4.1. Open your Flutter project in a text editor or IDE.
4.4.2. Navigate to the ios/Runner directory within your Flutter project.
4.4.3. Locate the AppDelegate.swift file.
4.4.4. In the didFinishLaunchingWithOptions method, set the Google Maps API key.
Replace "YOUR_NEW_API_KEY_HERE" with your actual Google Maps API key.
After updating the API key in the AppDelegate.swift file, rebuild your Flutter app for iOS to apply the changes.
By following these steps, your Flutter app will use the new Google Maps API key specifically for iOS. Make sure you've also updated the API key in the Android configuration as described earlier if you want to apply changes to both platforms.
5.1.1. Install Firebase CLI:
First, you need to install the Firebase CLI if you haven't already. You can install it via npm (Node Package Manager) by running the following command in your terminal or command prompt:
npm install -g firebase-tools
5.1.2. Login to Firebase:
After installing the Firebase CLI, log in to your Firebase account by running the following command:
firebase login
This will open a browser window prompting you to log in to your Google account associated with Firebase.
5.1.3. Create a Firebase Project:
If you haven't already created a Firebase project, you can create one using the Firebase CLI by running:
firebase projects:create
Follow the prompts to create a new project.
5.1.4. Initialize Firebase in Your Flutter Project:
Navigate to your Flutter project directory in the terminal.
Initialize Firebase in your project by running:
firebase init
This command will prompt you to select the Firebase features you want to set up. Choose the Firebase services you intend to use, such as Authentication, Firestore, etc.
5.1.5. Configure Firebase:
During the initialization process (firebase init), you'll be asked to select the Firebase project you created or configured earlier. Choose the appropriate project from the list.
5.1.6. Install Required Dependencies:
After selecting the Firebase features, Firebase CLI will generate the necessary configuration files for your project.
Next, you need to install the required Firebase packages in your Flutter project. You can do this by adding the dependencies to your pubspec.yaml file:
dependencies: firebase_core: latest_version firebase_auth: latest_version # (if you need Firebase Authentication) cloud_firestore: latest_version # (if you need Cloud Firestore) # Add other Firebase plugins as needed
Replace latest_version with the actual version numbers of the Firebase plugins you want to use. You can find the latest versions on pub.dev.
5.1.7. Initialize Firebase in Your Flutter App:
5.1.8. Using Firebase Services:
Now you can use Firebase services in your Flutter app. Import the necessary Firebase packages and follow the respective documentation for each service you want to use (e.g., Firebase Authentication, Cloud Firestore).
5.1.9. Testing:
Run your Flutter app on a device or emulator to verify that Firebase services are correctly integrated and working.
5.2.1. Create a Firebase Project:
Go to the Firebase Console: https://console.firebase.google.com
Click on "Add Project" and follow the instructions to create a new project.
Once your project is created, you'll be redirected to the project dashboard.
5.2.2. Add an App to Your Firebase Project:
In the Firebase console, select your project.
Click on the "Add app" button (usually represented by an Android or iOS icon).
Follow the setup instructions to register your app with Firebase.
Download the google-services.json file for Android or GoogleService-Info.plist file for iOS. These files contain your Firebase project configuration details.
5.2.3. Flutter Project Setup:
Open your Flutter project in your preferred editor.
Navigate to the android/app directory for Android or ios/Runner directory for iOS, and paste the google-services.json (for Android) or GoogleService-Info.plist (for iOS) file that you downloaded earlier.
5.2.4. Add Firebase SDK to Your Flutter Project:
Open your Flutter project's pubspec.yaml file.
Add the following dependencies:
Replace latest_version with the latest version numbers of the Firebase plugins you want to use. You can find the latest versions on pub.dev.
5.2.5. Using Firebase Services:
You can now use Firebase services in your Flutter app. Import the necessary Firebase packages and follow the respective documentation for each service you want to use (e.g., Firebase Authentication, Cloud Firestore).
5.2.6. Testing:
Run your Flutter app on a device or emulator to verify that Firebase services are correctly integrated and working.
1. Stripe
Steps to Configure:
1. Go to Administration Settings > Payment Methods > Stripe.
2. Check Enable Stripe.
3. Enter the Stripe Key and Stripe Secret.
4. Click Save.
2. COD (Cash on Delivery)
Steps to Configure:
1. Go to Administration Settings > Payment Methods > COD.
2. Check Enable COD.
3. Click Save.
4. Razorpay
Steps to Configure:
1. Go to Administration Settings > Payment Methods > Razorpay.
2. Check Enable Razorpay.
3. Enter the Razorpay Key and Razorpay Secret.
4. Click Save.
5. PayPal
Steps to Configure:
1. Go to Administration Settings > Payment Methods > PayPal.
2. Check Enable PayPal.
3. Enter the Client ID and Client Secret.
4. Click Save.
6. Wallet
7. PayFast
Steps to Configure:
1. Go to Administration Settings > Payment Methods > PayFast.
2. Check Enable PayFast.
3. Enter the Merchant ID and Merchant Key.
4. Click Save.
8. PayStack
Steps to Configure:
1. Go to Administration Settings > Payment Methods > PayStack.
2. Check Enable PayStack.
3. Enter the PayStack Key and PayStack Secret.
4. Click Save.
9. FlutterWave
Steps to Configure:
1. Go to Administration Settings > Payment Methods > FlutterWave.
2. Check Enable FlutterWave.
3. Enter the Public Key and Secret Key.
4. Click Save.
10. MercadoPago
Steps to Configure:
1. Go to Administration Settings > Payment Methods > MercadoPago.
2. Check Enable MercadoPago.
3. Enter the Public Key and Access Token.
4. Click Save.
11. Xendit
Steps to Configure:
1. Go to Administration Settings > Payment Methods > Xendit.
2. Check Enable Xendit.
3. Enter the API Key.
4. Click Save.
12. OrangePay
Steps to Configure:
1. Go to Administration Settings > Payment Methods > OrangePay.
2. Check Enable OrangePay.
3. Enter the API Key.
4. Click Save.
13. MidTrans
Steps to Configure:
1. Go to Administration Settings > Payment Methods > MidTrans.
2. Check Enable MidTrans.
3. Enter the Merchant ID and API Key.
4. Click Save.
The error message you're encountering, "Missing project_info object," typically arises in Flutter projects when there's a misconfiguration or missing information related to Firebase services. Here's how you can troubleshoot and potentially resolve this issue
7.1.1. Check google-services.json: If you're using Firebase services in your Flutter app, ensure that you have the google-services.json file placed in the correct location within your Android project. This file contains important configuration information for Firebase services. It should be located in the android/app directory of your Flutter project.
7.1.2. Verify Firebase Setup: Double-check that you've completed all the necessary steps to set up Firebase for your Flutter project. This includes adding your app to the Firebase project using the Firebase Console, downloading and adding the google-services.json file to your Android project, and configuring Firebase services in your Flutter app's code (if applicable).
7.1.3. Update Google Services Plugin: Ensure that you're using the latest version of the Google Services Gradle plugin in your Android project. You can check the latest version on the Google Services Gradle Plugin page and update the version number in your android/build.gradle file accordingly.
7.1.4. Check Flutter and Firebase Versions Compatibility: Make sure that you're using compatible versions of Flutter and Firebase. Sometimes, using outdated versions of either can lead to compatibility issues. Refer to the Firebase Flutter documentation and ensure compatibility with your Flutter version.
7.1.5. Sync Gradle Files: After making any changes to your Android project configuration, such as updating the google-services.json file or modifying the Gradle build files, make sure to sync your Gradle files in Android Studio. This can be done by clicking on the "Sync Project with Gradle Files" button.
7.1.6. Rebuild the Project: After ensuring all configurations are correct, try rebuilding your Flutter project. You can do this by running flutter clean followed by flutter pub get and then rebuilding the project (flutter run or flutter build).
7.1.7. Check for Error Logs: Look for more detailed error messages or stack traces in the console output or build logs. These can provide additional clues about the underlying issue causing the "Missing project_info object" error.
Welcome to eMart, the all-in-one solution for your everyday needs. Our platform seamlessly integrates multiple services into one convenient app, providing you with everything from delicious meals to reliable transportation, all with the click of a button. With eMart, convenience is just a tap away.
eMart is a comprehensive solution for multi-vendor delivery systems, created with Flutter, Firebase, and the Laravel Framework, known for its expressive and elegant syntax. This product includes three apps: Customer, Store, and Driver. This documentation provides guidance for setting up the eMart website and applications. It's recommended to use Laravel Homestead, a virtual machine that satisfies all system requirements, as your local development environment. Ensure your server meets the following requirements.
1. Multi Vendor Items Delivery: Craving your favorite dish? Explore a wide range of cuisines from local restaurants and food vendors. Order in with ease and have your meal delivered straight to your doorstep. With eMart's multivendor food delivery service, you're spoiled for choice.
2. eCommerce Marketplace: Experience non-stop shopping excitement with our extensive eCommerce marketplace. Browse through a diverse selection of products from various vendors, ranging from electronics and clothing to home goods and accessories. Find exactly what you need, all in one place.
3. Parcel Delivery: Need to send a package? No problem. Our parcel delivery service connects you with reliable couriers who can deliver your parcels safely and on time. Whether it's a small envelope or a large package, we've got you covered.
4. Taxi Booking: Getting around town has never been easier. Book a taxi with just a few taps and enjoy hassle-free transportation to your destination. Our network of drivers ensures prompt service and comfortable rides wherever you need to go.
5. Car Rental: Planning a road trip? Rent a car through eMart and hit the road with confidence. Choose from a variety of vehicles to suit your needs, whether it's a compact car for city driving or an SUV for a family adventure. Our seamless booking process makes renting a car a breeze.
6. Admin Panel: For vendors, our user-friendly admin panel provides all the tools you need to manage your products, orders, and deliveries efficiently. Monitor sales, update inventory, and communicate with customers—all from one centralized dashboard.
7. Website Integration: Our website complements our app, offering users another convenient way to access our services. Whether you prefer browsing on your desktop or mobile device, our website provides the same seamless experience as our app.
8. Secure Payments: Shop and pay with confidence thanks to our secure payment system. We support various payment methods, including credit/debit cards, mobile wallets, and cash on delivery, ensuring a smooth and secure transaction every time.
9. Customer Support: Have questions or need assistance? Our dedicated customer support team is here to help. Whether it's tracking an order, resolving an issue, or providing general assistance, we're just a message away.
10. Promotions and Deals: Take advantage of special promotions and deals offered by our vendors. From discounts on food orders to exclusive offers on car rentals, there's always a way to save with eMart.
Whether you're craving a meal, shopping for essentials, sending a package, booking a ride, or renting a car, eMart has you covered. Download the app or visit our website to discover the ultimate convenience of eMart. Welcome to a world where everything you need is just a tap away. Welcome to eMart.
To run eMart smoothly, your server must meet the following minimum requirements:
2.1. Prerequisites
2.2. APIs & External Services
3.1 : Go to firebase console through this link: https://firebase.google.com
3.2 : Click on “Go to console” in the top right corner.

3.3 : Click on “Add project”, it will redirect you to the new project creation page Enter your project name and click on “Continue” again click on “Continue” after that select “Default Account fo firebase” and then click on “Create Project”

3.4 : After successfully creating a new project, you will be directed to the overview page. From there, simply navigate to the icons link to proceed further.

Upon redirection, you’ll land on the ‘Add Firebase to your web app’ page. Here, input your app’s nickname and proceed by clicking ‘Register app’. Afterward, scroll down to find detailed information as outlined below.

All of these details will be incorporated into both the app and admin panel documentation for comprehensive reference and seamless integration.
3.5 : Next, navigate to ‘Firestore Database’ in the left sidebar. Select your project name from the drop-down menu, and then proceed by clicking on ‘Create database’.

3.6 : Choose your preferred option and click on the ‘Next’ button. Subsequently, proceed by clicking on “Enable”
3.7 : Following that, locate “Realtime Database” in the left sidebar. Select your project name from the drop-down menu, and proceed by clicking on “Create Database”

3.8 : Choose your preferred option and proceed by clicking the “Next” button, then click on “Enable” to activate the selected feature.
3.9 : Firstore Database Rules Update.


Ensure that your server meets the requirements outlined in the documentation's Server Requirement section. Upon downloading the code, upload the admin zip file to your server and extract it. The admin panel can be installed on either a domain or a subdomain.
Follow these instructions to connect to your server using FTP and complete the application setup:
4.1.1 Connect to the server using FTP: Use an FTP client like FileZilla to connect to your server. Enter the server's IP address, username, and password. Use port 21 for FTP or port 22 for SFTP.
4.1.2. Transfer the ZIP file: Upload your admin panel’s ZIP file to the server’s local path (e.g., /var/www/html).
4.1.3. Unzip the file: Navigate to the file's location on the server and run the following command to extract the ZIP file: "sudo unzip your-application.zip" or you can do it from cpanel directly.
4.1.4. Update the .env file with your configuration: Modify the database and application settings which are mentioned in the .env file. Below is an example configuration:
4.1.5. Run the following command from the root directory of your admin panel terminal to install Firebase dependency modules required for scheduler functions.
4.1.6. Setup Node Js Path
To get the Node path from the terminal, you typically want to determine the location of Node.js or a specific file related to Node. Here are common ways to do this from the terminal:
To find out where Node.js is installed on your system, you can use the which command (on Linux/macOS):
which node
This will return the full path to the Node.js binary. For example:
/usr/local/bin/node
See this example: In our case, the Node.js path is something like the one below.
Copy this path and update it in your NODE_PATH variable.
A cron job is a scheduled task in Unix-based operating systems that runs scripts or commands at specified intervals. Here's how to set up a cron job on a server:
Steps to Set Up a Cron Job:
4.2.1 Log in to cPanel or in your web server
4.2.2 Navigate to the "Cron Jobs" Section
4.2.3 Add a New Cron Job
In the command field, enter the command or the path to the script you want to run.
For example: Run a script every minutes:
For example: Run a script every day at midnight:
4.2.4: Save the Cron Job
Please Note: Ensure the script you’re running has the correct permissions and is executable. You need to specify the correct PHP path (/usr/local/bin/php is common but may vary depending on your server setup) and please use your admin panel path in the CRON JOB command.
Please choose your preferred map by navigating to the Admin Panel > General Settings > Map Tracking Options.
Note: Recommended Google Map for accurate location and mapping results.
To work firebase push notification feature functions correctly, please upload your Firebase credentials file in the Admin Panel by navigating to General Settings > Notifications Settings.
Navigate to your Firebase Project Settings > Cloud Messaging. Under Firebase Cloud Messaging API, you will find the Sender ID.
Go to Firebase Project Settings > Service accounts, scroll down and click on the 'Generate new private key' button. A JSON file will be downloaded.
Steps to Configure:
To enable real-time push notifications for customers and drivers, you need to connect your application with Firebase Cloud Messaging (FCM).
1. Generate Firebase Credentials File
2. Upload Firebase Credentials in Admin Panel
3. Save & Apply Settings
4. Verify Push Notifications
Default Admin User Credentials
URL: Your desired URL where the admin panel is set up.
Email: admin@emart.com
Password: 12345678
To perform Firebase Collection Import Export, follow these straightforward steps:
6.1. To set up NPM on your computer, download Node.js from the following link: https://nodejs.org/en/download/ Node.js Download Page.
6.2. Unzip the source code file named "Firebase Import Export Collections.zip"
6.3. If you haven't already created a Firebase project, set it up now.
6.4. Configure the credentials.json file, which you can obtain from your Firebase Project settings. Then navigate to the Service account, then select Node.js. Generate a new private key and wait until the key is created. It will automatically download and replace the current credentials.json file.
6.5. Navigate to the extracted Firebase Import Export Collections zip file path and then press and hold the Ctrl+Shift buttons. While holding them, right-click the mouse button, and select "Open PowerShell window here" from the context menu. This will open a PowerShell window where you can run the import/export command.
6.6. Execute the following commands to perform import/export operations for collections:
To Import all collections, execute the following command:
npx -p node-firestore-import-export firestore-import -a credentials.json -b collections.json
To export all collections, execute the following command:
npx -p node-firestore-import-export firestore-export -a credentials.json -b collections.json
Once the export command is executed, the collections.json file will be downloaded.
Please Note: Prior to executing the above command, ensure that you have correctly updated your Firebase credentials in the credentials.json file.
1. The customer initiates a new order
2. The store approves/rejects the new order
3. If the store accepts the order, it is assigned to a nearby available driver.
4. The driver can choose to either accept or decline the order. If the driver accepts the order, they are assigned to pick up and deliver the items.
5. The driver arrives at the store to collect the order. Once picked up, the driver updates the order status in the app for the customer. After delivery, the driver can mark the order as completed in the driver app.
6. If the driver rejects the order, the dispatch process restarts to find another available driver nearby.
7. Customers can track the delivery status of all their orders on their delivery app. The app utilizes Flutter code to handle most order updates. However, the backend system, which manages access to all available nearby drivers and stores, facilitates the delivery process.
All the necessary Firebase Functions have been initially coded by us, you just need to deploy these functions to your own Firebase account. This means that you need to upload the source code inside the Firebase Functions folder to your account. If a Firebase account has been created, find a Firebase project, and 2 apps (iOS and Android)
For comprehensive guidance, refer to the official Firebase documentation on getting started: "Write, test, and deploy your first functions" in Cloud Functions for Firebase.
You'll need Node.js and the Firebase CLI to write functions and deploy them to Cloud Functions.
To set up NPM on your computer, download Node.js from the following link: Node.js download. Once Node.js is installed, proceed to install the Firebase CLI.
Use the following command to install the CLI via npm:
npm install -g firebase-tools
If you've already set up the Firebase tools, you can simply run the following command:
npm install
These steps will ensure you're ready to start writing and deploying functions with Firebase. If you encounter any issues, consult the Firebase documentation for troubleshooting assistance.
To initialize the project, authenticate the Firebase tool by running the following command. You'll be prompted to log in to your account via your web browser:
firebase login
Since we're providing the complete source code for your Firebase Cloud Functions:
Extract the zip file Firebase Cloud Functions.zip.
Fill in the necessary credentials in the following files located within the zip:
1. .firebaserc (Add your Firestore Project ID)
2. index.js (Add your Firestore database URL)
3. serviceAccountKey.json (Add your Firebase service account credentials)
With these steps, you've successfully set up the required credentials.
Simply run the following command in the Firebase Cloud Functions > functions directory.
firebase deploy --only functions
Now you can go to your Firebase Console and check, as the functions have been deployed. It is possible to see the logs for each function, understand the output, and know when it gets called.
To perform Firebase indexing, follow these straightforward steps:
8.1 : To set up NPM on your computer, download Node.js from the following link:https://nodejs.org/en/download/
8.2 : Unzip the source code file named “Firebase Indexing.zip” here.
8.3 : Navigate to the extracted directory of “Firebase Indexing” zip file. Press and hold the ctrl+shift buttons, then right-click the mouse button. From the context menu, select “Open PowerShell window here” to launch Windows PowerShell and execute import/export commands.
8.4 : Execute the command firebase login to log in to Firebase, if you haven’t already done so.
8.5 : Execute the command firebase init
8.6 : Proceed with Y and press the enter button.
8.7 : Choose the Option > Firestore: Configure security rules and index files for Firestore.
Please Note: Choose the arrow down key to navigate and select options, and press the space button to confirm your selection.
8.8 : Choose the Option > Use an existing project
8.9 : Choose your project
8.10 : Press Enter > ? What file should be used for Firestore Rules? firestore.rules
8.11 : Press Enter > ? What file should be used for Firestore indexes? (firestore.indexes.json)
8.12 : Now, the firestore.indexes.json file will be downloaded. Open this file and copy all the code from firestore_indexes.json file, then paste it into
firestore.indexes.json file.
8.13 : Now execute the command firebase deploy --only firestore:indexes to import indexing in firestore.
Follow these instructions to connect to your server using FTP and complete the application setup:
9.1.1 : Connect to the server using FTP. Use an FTP client like FileZilla to connect to your server. Enter the server's IP address, username, and password. Use port 21 for FTP or port 22 for SFTP.
9.1.2. Transfer the ZIP file: Upload your web panel’s ZIP file to the server’s local path (e.g., /var/www/html).
9.1.3. Unzip the file: Navigate to the file's location on the server and run the following command to extract the ZIP file: "sudo unzip your-application.zip" or you can do it from cpanel directly.
9.1.4. Update the .env file with your configuration: Modify the database and application settings which are mentioned in the .env file. Below is an example configuration:
Now you can access your owner panel at your desired domain For ex: https://owner.yourdomain.com/
Please follow the same instructions provided above for the web panel setup to connect to your server via FTP and complete the application setup.
And after that you can access your store panel at your desired domain For ex: https://store.yourdomain.com/
9.1. Dashboard
The Dashboard provides a summarized view of the platform’s key metrics and activities. It helps the vendor monitor business performance in real time
9.2. My Store
Used to manage the store’s profile and settings. The vendor can update business details such as name, address, contact info, operating hours, delivery settings, and logo or banner images. It helps keep the store’s information accurate and up to date on the platform.
9.3. Change Subscription
Used to view available subscription plans and upgrade the current plan. The vendor can select a new plan based on features, duration, or pricing to continue offering services on the platform.
9.4. My Subscriptions
Used to view all current and past subscription details. The vendor can track plan validity, renewal dates, payment history, and active benefits associated with each subscription.
9.5. Items
Used to manage all products or menu items offered by the store. The vendor can add new items, update prices, descriptions, images, or stock status, and organize items under appropriate categories.
9.6. Orders
Used to view and manage all customer orders received by the store. The vendor can track order status (pending, confirmed, preparing, delivered, or cancelled), update progress, and view order details like items, customer info, and payments.
9.7. Coupons
Used to create and manage discount coupons specific to the store. The vendor can define coupon codes, set discount values, usage limits, and validity periods to attract more customers and boost sales.
9.8. Payouts
Used to view the store’s earnings and payment disbursements from the platform. The vendor can check completed and pending payouts, commission details, and overall financial summaries.
9.9. Special Offer
Used to create and manage limited-time offers or discounts on selected items. The vendor can set offer periods, discount percentages, and eligible products to increase visibility and sales.
9.10. Wallet Transaction
Used to track all wallet-related transactions within the store account. The vendor can view credits, debits, refunds, and order-related adjustments for complete financial transparency.
9.11. Withdrawal Methods
Used to manage payment methods for receiving payouts. The vendor can add or edit bank details, digital payment accounts, or other withdrawal options for smooth and secure fund transfers.
Please follow the same instructions provided above for the web panel setup to connect to your server via FTP and complete the application setup.
And after that you can access your provider panel at your desired domain For ex: https://provider.yourdomain.com/
10.1. Dashboard
The Dashboard provides a summarized view of the platform’s key metrics and activities. It helps the provider monitor business performance in real time.
10.2. Change Subscription
Used to view available subscription plans and upgrade the current plan. The provider can select a new plan based on features, duration, or pricing to continue offering services on the platform.
10.3. My Subscriptions
Used to view all current and past subscription details. The provider can track plan validity, renewal dates, payment history, and active benefits associated with each subscription.
10.4. Services
Used to manage all on-demand services offered by the provider. From this section, providers can add, edit, or remove services, set pricing, availability, and service details, upload media, and monitor performance through ratings and bookings.
10.5. Workers
Used to manage the provider’s team members who deliver on-demand services. Providers can add new workers, assign them to specific services, track their availability, view performance metrics, and manage their status (active/inactive).
10.6. Bookings
Used to manage all service bookings received by the provider. From this section, providers can view booking details, update statuses (accepted, in-progress, completed, or canceled), track assigned workers, and communicate with customers in real time.
10.7. Coupons
Used to create and manage discount coupons for customers. Providers can set coupon codes, discount types, usage limits, and validity periods to attract more bookings and retain customers.
10.8. Payouts
Used to view and manage earnings received from completed service bookings. Providers can track payout history, payment status, and details of each transaction processed by the admin.
10.9. Wallet Transaction
Used to track all wallet-related activities, including credits, debits, bonuses, and payments for services. Providers can view their wallet balance and detailed transaction history.
10.10. Withdrawal Methods
Used to manage the payment methods available for withdrawing earnings. Providers can add, edit, or remove withdrawal options such as bank transfer, PayPal, or other supported methods.