Enatega Multi-Vendor Delivery Management System

repository·main·Indexed 23 days ago

https://github.com/enatega/food-delivery-multivendor

A comprehensive delivery management system for food, grocery, and parcel logistics. The ecosystem includes a multi-vendor admin dashboard, a customer app, a rider app, and a store app. Built with Node v20.16.0 and Expo, the system utilizes native modules such as expo-dev-client and react-native-maps, requiring custom development builds rather than Expo Go.

Tokens
101.2K
Snippets
193
Records
563
Agent score
79%

What's inside enatega-food-delivery-multivendor

  1. Overview of Enatega Multi Vendor Delivery Management System

    main

    Enatega is a customizable platform for managing online ordering and logistics across various industries (food, grocery, parcel, etc.). It supports multiple vendors and multiple service regions. The system is composed of separate applications for customers, vendors, and delivery agents, managed via a central admin dashboard.

    Included Components:

    • Enatega Multi Vendor Customer App
    • Enatega Multi Vendor Rider/Driver App
    • Enatega Multi Vendor Vendor/Store App
    • Customer Ordering Website
    • Admin Web Dashboard
    • API Server
    • Analytics Dashboard (using Expo Amplitude)
    • Error monitoring and reporting (using Sentry)

    Note: While the solution is open source, the backend and API are proprietary and may require licensing.

  2. Understand the Enatega Licensing Model

    main

    The Enatega solution follows a hybrid licensing model:

    • Frontend: The frontend source code is completely open source.
    • Backend & API: The API and backend are proprietary and require a paid license to access. For licensing details, contact Enatega via their product page.
  3. Use the AnimatedSplash component

    main

    The AnimatedSplash component replaces video-based splash screens. It manages its own theme (light/dark) and scales to any screen size.

    To implement it, you must manage two pieces of state in your root component: appReady (to signal when your app's bootstrap/loading logic is complete) and splashDone (to unmount the splash component once the animation finishes).

    1. Set appReady to true when fonts, Apollo, or config are loaded.
    2. Use the onFinish prop to set splashDone to true to unmount the component.
    import { useState } from 'react'
    import AnimatedSplash from './src/components/AnimatedSplash/AnimatedSplash'
    
    export default function App() {
      const [appReady, setAppReady] = useState(false)     // fonts, apollo, config loaded
      const [splashDone, setSplashDone] = useState(false)
    
      // ...set appReady = true when your bootstrap finishes...
    
      return (
        <>
          {/* your app tree */}
          {!splashDone && (
            <AnimatedSplash ready={appReady} onFinish={() => setSplashDone(true)} />
          )}
        </>
      )
    }
  4. Build and run Enatega Customer Web for production

    main

    To deploy the Enatega Customer Web application in a production environment, use the following commands:

    1. Switch to the required Node version: nvm use.
    2. Install dependencies: npm install.
    3. Configure environment variables: cp .env.example .env.local.
    4. Build the application: npm run build.
    5. Start the production server: npm run start.

    The server defaults to port 3000, but you can override this by setting the PORT environment variable.

    nvm use
    npm install
    cp .env.example .env.local
    npm run build
    npm run start
  5. Set up the Enatega Rider App for development

    main

    To start developing the Rider App, ensure you have Node v20.16.0 and the appropriate native IDE (Xcode for iOS or Android Studio for Android) installed. Use nvm to switch to the correct Node version before installing dependencies.

    Note: This is not an Expo Go project. It uses native modules like expo-dev-client and react-native-maps. You must run it using a custom dev build on a simulator or emulator.

    nvm use
    npm install
    # For iOS
    npm run ios
    # For Android
    npm run android
  6. Install the Enatega Animated Splash component

    main

    The AnimatedSplash component is a self-contained React Native / Expo component that replaces video-based splash screens with a lightweight, theme-aware animation.

    To install it, copy the entire enatega-animated-splash folder into your application's component directory (for example, src/components/AnimatedSplash/).

    Requirements: This component requires the following packages to be already present in your project:

    • react-native-reanimated (v2 or v3)
    • expo-linear-gradient
  7. Set up the Enatega Admin Dashboard for development

    main

    To run the Enatega Admin Dashboard locally for development, ensure you have Node v20.16.0 and npm >=10 installed. Follow these steps:

    1. Switch to the required Node version using nvm use.
    2. Install dependencies with npm install.
    3. Create your local environment file by copying the example: cp .env.example .env.local.
    4. Start the development server with npm run dev.

    The application will be available at http://localhost:3000.

    nvm use
    npm install
    cp .env.example .env.local
    npm run dev