Gromart is a revolutionary grocery items delivery app designed to bring a variety of delicious cuisines from multiple stores straight to your doorstep. Built with Laravel & Flutter. Gromart offers a seamless and intuitive user experience, making it easier than ever to discover, order, and enjoy your favourite meals from local eateries.
1. Wide Selection of Stores: Explore a vast array of stores, from local favourites to popular chains, all available at your fingertips.
2. User-Friendly Interface: Enjoy a sleek and intuitive design that makes browsing menus, placing orders, and tracking deliveries effortless.
3. Real-Time Order Tracking: Stay updated with real-time tracking of your order from preparation to delivery, ensuring you know exactly when your grocery items will arrive.
4. Customizable Orders: Personalise your meals with special instructions and dietary preferences to suit your taste and dietary needs.
5. Secure Payment Options: Choose from multiple secure payment methods, including credit/debit cards, digital wallets, and cash on delivery.
6. Exclusive Deals and Discounts: Take advantage of exclusive offers, promotions, and discounts available only through the Gromart app
7. Easy Reordering: Quickly reorder your favourite meals with just a few taps, thanks to a user-friendly reorder feature.
8. Ratings and Reviews:: Make informed decisions with access to detailed ratings and reviews from other Gromart users.
9. 24/7 Customer Support: Receive dedicated support anytime you need assistance, ensuring a smooth and satisfying grocery items delivery experience
10. Multi-Platform Accessibility: Enjoy Gromart on both Android and iOS devices, with a consistent and optimised performance across platforms.
Why Choose Gromart?
Gromart stands out as a top-tier grocery items delivery app by combining an extensive store selection with a user-centric design, reliable delivery service, and secure payment options. Whether you're craving a gourmet meal, a quick bite, or something in between, Gromart makes it easy to satisfy your hunger with convenience and style.
Note : This setup documentation is common and applicable across all application types, including Customer, Store, Driver apps.All installation steps, configuration requirements, environment setup instructions, and system prerequisites described here follow a unified structure that works consistently for every module within the platform.
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.
Gromart is a revolutionary grocery items delivery app designed to bring a variety of delicious cuisines from multiple stores straight to your doorstep. Built with Laravel & Flutter. Gromart offers a seamless and intuitive user experience, making it easier than ever to discover, order, and enjoy your favorite meals from local eateries.
Gromart stands out as a top-tier grocery items delivery app by combining an extensive store selection with a user-centric design, reliable delivery service, and secure payment options. Whether you're craving a gourmet meal, a quick bite, or something in between, Gromart makes it easy to satisfy your hunger with convenience and style.
To run Gromart 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
Please set up your AI settings by navigating to Settings > AI Settings menu
This AI feature enables automatic generation of product information by analyzing the product image along with the provided title and description. It extracts meaningful details and creates structured product data such as enhanced descriptions, specifications, variations and other relevant attributes to help streamline product listing and improve accuracy.
Please add your API Secure Key used in the application for AI features by navigating to Settings > Global Settings menu
Default Admin User Credentials
URL: Your desired URL where the admin panel is set up.
Email: admin@gromart.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.
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:
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.
root > storage > app > firebaseThese scripts handle automated operations such as scheduled services, order cancellations, and notifications. Available Scripts
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 store 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:
Note: Add Your Google Client ID for Google Login Functionality To enable Google login, you need to provide your Google Client ID.
Steps to find your Google Client ID:
Steps to Check/Add Authorized Domains for OAuth 2.0 Client ID
Now you can access your owner panel at your desired domain For ex: https://owner.yourdomain.com/
9.2.1. Dashboard
Provides an at-a-glance overview of the vendor’s business operations. Displays analytics such as total drivers, active orders, completed orders, ongoing orders, latest orders, top-performing drivers, and overall earnings summary. Helps vendors quickly monitor performance, track fleet efficiency, and make informed operational decisions.
9.2.2. Point of Sale
Manage in-person or counter sales using the Point of Sale system. This feature allows staff to quickly create orders, add products or services, apply taxes, and process payments in real time. It’s ideal for handling walk-in customers, improving checkout efficiency, and keeping all transactions synchronized with platform order records.
9.2.3. POS Orders
View and manage all orders generated through the Point of Sale system. This section provides access to order details, item breakdowns. It helps track sales activity, resolve disputes, generate reports, and maintain accurate records
9.2.4. Document Verification
Document Verification allows vendors to securely upload and submit required documentation for approval. This can include identity proof, business licenses and other necessary certificates. The system ensures that all submitted documents are verified before activating the vendor’s account, helping maintain compliance, safety, and trust on the platform.
9.2.5. Change Subscription
The Change Subscription feature allows vendors to upgrade, downgrade, or switch their current subscription plan. It provides details of available plans, pricing, features, and renewal options. This helps vendors select the most suitable plan for their business needs, ensuring access to desired features and optimal platform usage.
9.2.6. My Subscriptions
The My Subscriptions section allows owners to view and manage their active subscription plans on the platform. It displays details such as subscription type, start and expiry dates, features included, payment history, and renewal options. This helps owners keep track of their plan benefits, ensure uninterrupted access to platform services, and manage upgrades or renewals efficiently.
9.2.7. My Store
This section allows store owners to manage all key details of their own store from the vendor panel. Owners can update basic information such as name, logo, address, contact details, operating hours, and delivery settings. It also includes options to configure tax details, delivery radius, and store status (open/closed). This section ensures that vendors can easily keep their store information accurate and up to date, helping maintain consistency across listings and improving customer trust.
9.2.8. Items
This section allows owners to manage all the items listed under their restaurant. Vendors can add, edit, or delete menu items and define details such as name, category, price, description, image, and availability status. They can also manage add-ons or variations like size and flavor. This section helps restaurants keep their menus organized, accurate, and appealing to customers, ensuring that available dishes are always up to date for online ordering. Additionally, vendors can access and add items imported by the admin through the Import Items from Global Menu, allowing them to quickly populate their store with pre-created products.
9.2.9. Orders
This section allows owners to view and manage all customer orders received by their store. Vendors can track order details such as customer information, order items, total amount, payment status, and delivery type. They can update order statuses — for example, accepted, preparing, ready for pickup, or delivered in real time. The section also supports order cancellation and delivery assignment. This feature ensures smooth order processing, efficient communication, and timely service for customers.
9.2.10. Coupons
This section allows store owners to create and manage discount coupons for their customers. Vendors can define coupon codes, discount types (percentage or fixed), minimum order values, validity periods, and usage limits. Coupons can be applied to specific menu items or the entire store. This helps attract new customers, boost repeat orders, and promote special offers or events. The system automatically validates coupons during checkout, ensuring a smooth and rewarding experience for users.
9.2.11. Advertisements
This section allows store owners to create and manage advertisements to promote their store or specific menu items. Vendors can upload banner images, set titles, add links, and choose where the ads will appear on the platform (such as homepage or category sections). They can also define the duration and visibility of each advertisement. This feature helps stores increase visibility, attract more customers, and highlight special offers or new dishes effectively.
9.2.12. Deliveryman
This section allows store owners to manage their own delivery staff when using the self-delivery option. Vendors can add, edit, or remove deliverymen and assign them to specific orders. Each deliveryman profile includes details such as name, contact information, and current status (available, busy, or inactive). Store owners can track delivery performance and ensure timely order completion. This feature provides flexibility for stores that prefer to handle deliveries independently rather than relying on the platform’s driver network.
9.2.13. Payments
This section allows store owners to view and manage their earnings and payout history. Vendors can track total revenue, completed payouts, pending balances, and commission deductions. The system provides detailed transaction records, including payout dates, amounts, and payment methods. Store owners can also request withdrawals if manual payouts are enabled. This feature ensures full transparency of financial transactions and helps vendors monitor their income efficiently.
9.2.14. Withdrawal Methods
This section allows store owners to set up and manage their preferred payment methods for receiving payouts. Vendors can add or edit withdrawal options such as bank transfer, PayPal, or other supported methods by providing the necessary account details. Admins may review and approve these methods for security purposes. Having multiple withdrawal options ensures flexibility and convenience for vendors, allowing them to receive their earnings quickly and securely.
9.2.15. Wallet Transactions
This section allows store owners to view all wallet-related activities within their account. Vendors can track credit and debit transactions such as received payments, cashback, order adjustments, and withdrawals. Each transaction includes details like date, description, amount, and balance updates. This transparent record helps vendors monitor their financial flow in real time. The feature ensures accurate accounting and provides a clear overview of all wallet movements for better financial management.
Follow these instructions to connect to your server using FTP and complete the application setup:
10.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.
10.1.2. Transfer the ZIP file: Upload your web panel’s ZIP file to the server’s local path (e.g., /var/www/html).
10.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.
10.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:
Note: Add Your Google Client ID for Google Login Functionality To enable Google login, you need to provide your Google Client ID.
Steps to find your Google Client ID:
Steps to Check/Add Authorized Domains for OAuth 2.0 Client ID
Notes: Please use the same Firebase credentials for the restaurant setup too that you will also add in the .env file for the admin panel setup.
Now you can access your owner panel at your desired domain For ex: https://owner.yourdomain.com/