Skip to content

Enatega is a fully realized and customizable food delivery application that can be used to set up your own order/delivery management system. For more information, visit the Enatega product page: 🚀🛒📦🌐

License

Notifications You must be signed in to change notification settings

enatega/food-delivery-multivendor

Repository files navigation

Enatega Multi Vendor Food Delivery System

The food delivery and order management system for the future.

Static Badge Stars Forks GitHub release (latest by date) GitHub contributors Open Pull Requests Activity YouTube Channel Company Website Closed Issues Closed Pull Requests

Static Badge Static Badge Static Badge Static Badge


The Enatega Multi vendor food delivery system is perfect for customers looking to deploy a readymade and easy to use food ordering platform for their own food delivery and logistics business. Just like foodpanda and ubereats, our food delivery system can incorporate multiple restaurants as well as restaurants that operate in multiple locations. With access to the admin panel and separate applications for customers and riders, you can use this solution to create your own online food ordering and order/delivery management system instantaneously.

Our solution is open source but the backend and API are proprietary, and can be obtained via paid license.


⏩ Quick Links


❓ What is included:

Our food delivery system also comes with the following:

  • Enatega Multi vendor Customer App
  • Enatega Multi vendor Rider App
  • Enatega Multi vendor Restaurant App
  • Customer Food Ordering Website
  • Admin Web Dashboard
  • Application ProgramInterface Server
  • Analytics Dashboard with Expo Amplitude
  • Error crash reporting with Sentry

🔥 Features:

  • Authentication using Google, Apple, and Facebook
  • Different sections feature for promoting restaurants
  • Push notifications and Emails to Users for account creation and order status changes
  • Real-time tracking of Rider and chat with Rider option
  • Email and Phone number verification
  • Location-based restaurants shown on Map and Home Screen
  • Multi-Language and different themes support
  • Rating and Review features for order
  • Details of restaurants include ratings and reviews, opening and closing timings, delivery timings, restaurant menu and items, restaurant location, minimum order
  • Payment Integration for both PayPal and Stripe
  • Previous order history and adding favorite restaurants
  • Adding address with Google Places suggestions and Maps integration
  • Analytics and Error reporting with Amplitude and Sentry
  • Options to add different variations of food items and adding notes to restaurant Pick up and delivery option with different timings

🔂 Setup:

As we've mentioned above, the solution includes five separate modules. To setup these modules, follow the steps below:

To run the module, you need to have nodejs installed on your machine. Once nodejs is installed, go to the directory and enter the following commands

The required credentials and keys have been set already. You can setup your own keys and credentials

The version of nodejs should be between 18 to 20 (with 16 as minor version and 0 as patch)

Guide Badge

ℹ️ Prerequisites:

App Ids for Mobile App in app.json

  • Facebook Scheme
  • Facebook App Id
  • Facebook Display Name
  • iOS Client Id Google
  • Android Id Google
  • Amplitude Api Key
  • server url

Set credentials in API in file helpers/config.js and helpers/credentials.js

  • Email User Name
  • Password For Email
  • Mongo User
  • Mongo Password
  • Mongo DB Name
  • Reset Password Link
  • Admin User name
  • Admin Password
  • User Id
  • Name

Set credentials in Admin Dashboard in file src/index.js

  • Firebase Api Key
  • Auth Domain
  • Database Url
  • Project Id
  • Storage Buck
  • Messaging Sender Id
  • App Id

NOTE: Email provider has been only been tested for gmail accounts

🛠️ Technologies:

Expo React-Navigation Apollo GraphQL ReactJS NodeJS MongoDB Firebase
Enatega Logos Enatega Logos Enatega Logos Enatega Logos Enatega Logos Enatega Logos Enatega Logos
React Native React Router GraphQL ExpressJS React Strap Amplitude
Enatega Logos Enatega Logos Enatega Logos Enatega Logos Enatega Logos Enatega Logos

🖼️ Screenshots:

Rider App
Restaurant APP
Customer App
Customer Web
Dashboard

🔧 High Level Architecture:

📖 Documentation

Find the link for the complete documentation of the Enatega Multi Vendor Solution here.

📺 Demo Videos:

Admin Dashboard Demo Mobile App Demo
Video Video

📱 Demos:

Customer App Rider App Restaurant App Customer Web Admin Dashboard
Enatega Logos Enatega Logos Enatega Logos Enatega Logos Enatega Logos
Android Logo iOS Logo Android Logo iOS Logo Android Logo iOS Logo

🧑‍🤝‍🧑 Contributors:

⚠️ Disclaimer:

The frontend source code for our solution is completely open source. However, the API and backend is proprietary and can be accessed via a paid license. For further information, contact us on the channels provided below.

📬 Contact Us:

Check out the Product Page and Pricing and more for Enatega Multivendor Food Delivery Solution

💻 Project Setup Guide

This section provides detailed instructions for setting up and running each component of the Enatega Multi-vendor Food Delivery Solution.

Enatega Admin Dashboard (Next.js)

The admin dashboard allows you to manage restaurants, orders, riders, and more.

# Navigate to the admin dashboard directory
cd enatega-multivendor-admin

# Install dependencies
npm install

# Start the development server
npm run dev

After running these commands, open your browser and navigate to http://localhost:3000 to access the admin dashboard. You can also CTRL+click on the localhost link that appears in your terminal.

Enatega Customer Web (React.js)

The customer web application allows users to browse restaurants and place orders through a web browser.

# Navigate to the customer web directory
cd enatega-multivendor-web

# Install dependencies
npm install

# Start the development server
npm start

After running these commands, the application will be available at http://localhost:3000 in your web browser.

Enatega Customer App (React Native)

The customer mobile application allows users to browse restaurants and place orders on their mobile devices.

# Navigate to the customer app directory
cd enatega-multivendor-app

# Install dependencies
npm install

# Start the Expo development server
npx expo start -c
# OR
npm start -c

Testing on a Physical Device with Expo Go

  1. Press s in the terminal to switch to Expo Go mode
  2. Scan the QR code displayed in the terminal:
    • Android: Open the Expo Go app and scan the QR code
    • iOS: Use the device's camera app to scan the QR code

Enatega Rider App (React Native)

The rider app allows delivery personnel to manage and complete deliveries.

# Navigate to the rider app directory
cd enatega-multivendor-rider

# Install dependencies
npm install

# Start the Expo development server
npx expo start -c
# OR
npm start -c

Testing on a Physical Device with Expo Go

  1. Press s in the terminal to switch to Expo Go mode
  2. Scan the QR code displayed in the terminal:
    • Android: Open the Expo Go app and scan the QR code
    • iOS: Use the device's camera app to scan the QR code

Enatega Restaurant App (React Native)

The restaurant app allows restaurant owners to manage orders and their menu.

# Navigate to the restaurant app directory
cd enatega-multivendor-restaurant

# Install dependencies
npm install

# Start the Expo development server
npx expo start -c
# OR
npm start -c

Testing on a Physical Device with Expo Go

  1. Press s in the terminal to switch to Expo Go mode
  2. Scan the QR code displayed in the terminal:
    • Android: Open the Expo Go app and scan the QR code
    • iOS: Use the device's camera app to scan the QR code

Building Development Versions

For all mobile apps (Customer, Rider, and Restaurant), you can create development builds using EAS Build.

Configure EAS Build

# From the app directory (customer, rider, or restaurant)
eas build:configure

Select your desired platform:

  • android
  • ios
  • all

Build for Android

eas build --platform android --profile development

This will create an APK file that you can install directly on your Android device.

Build for iOS

eas build --platform ios --profile development

For iOS simulator builds, modify the eas.json file to include:

"development": {
  "developmentClient": true,
  "distribution": "internal",
  "channel": "development",
  "ios": {
    "simulator": true
  },
  "android": {
    "buildType": "apk"
  }
}

Then run:

eas build --platform ios --profile development