Open source solution for delivery app
Tags: opensource
Published: 2024-03-21 08:31:01



Introduction
After devoting four years to proprietary software, we're excited to announce our debut into the open-source arena with the launch of Enatega (enatega.com) - delivery management software tailored to kickstart your food delivery or similar ventures.
Here's a brief overview of what Enatega offers:
Effortless Setup: We've simplified the setup process, making it easy for you to deploy the project on your system using just a few simple commands.
Robust Infrastructure and Flexibility: Enatega is designed to function seamlessly across various platforms, allowing for smooth testing on emulators or existing devices, providing unmatched adaptability.
Advantages of Open Source: By opting for Enatega, you gain access to live demonstrations, comprehensive documentation, and instructional videos, removing the complexity of navigating the software alone.
For those eager to get started, you can access the source code and begin your journey here: GitHub link: [insert link].
(https://github.com/ninjas-code-official/food-delivery-multivendor)




Our Journey to Open Source:

Four years ago, we launched the Enatega project as a side venture within Ninjas Code (ninjascode.com), our software development agency. Our initial goal was to enter the local market while simultaneously providing software development services. Our motivation stemmed from the desire to challenge a local food delivery app company, confident that our product could address inherent issues more effectively.
Despite our expertise in software development, we lacked the marketing know-how required to compete with industry leaders. Acknowledging this limitation, we quickly pivoted to assisting others in launching their own delivery services.
Initially, we relied on third-party marketplaces for marketing, which proved successful, with our product surpassing others in the market. However, unforeseen circumstances led to the closure of the marketplace, prompting another strategic shift. Leveraging the expertise of our development team, we identified open-sourcing our App Repo as the optimal marketing solution. This decision has since gained significant traction without the need for extensive paid marketing efforts.
We believe our value proposition extends beyond mere marketing. By providing visibility to other contributors and offering them the opportunity to gain practical technical experience through collaboration on a project utilized by over 100 startups, we contribute to the broader development community.
While striving to maintain the viability of our business, we recognize the need for a monetization strategy. Therefore, we offer the backend as a licensed product, keeping the backend source code proprietary. Although the backend functions as an open API, access to the source code is restricted to purchasers of the license.
Unveiling of the App Repository
Enatega Multivendor  offers a comprehensive Multivendor food delivery solution across iOS, Android, and the Web, seamlessly integrating Amplitude for dashboard and analytics. Our main focus lies in delivering outstanding mobile and dashboard application designs, accompanied by a complete solution, ensuring smooth integration into any meal delivery service.
The mobile aspect of this application is crafted using React Native and Expo, while React powers the dashboard panel and customer web app. Graphql serves as the backbone for both web and mobile interfaces, with the Apollo Client managing endpoint querying and state management. Node with MongoDB constitutes the backend API.
This solution encompasses all essential features required for any restaurant or food delivery application, streamlining development by efficiently organizing code and eliminating redundant screens. Moreover, it is enriched with additional functionalities to further enhance the development experience.
Customer Mobile/Web Application:
Verification of email and phone numbers
Using Google, Apple, and Facebook for authentication
Restaurants displayed on the map and home screen based on location
Information about restaurants includes reviews and ratings, hours of operation, delivery schedules, the menu and items offered, as well as the establishment’s location and minimum order
Adding an address using Maps integration and Google Places suggestions
Analytics and reporting on errors with Amplitude and Sentry
For account creation and order status updates, push notifications and emails to users also include global push notifications to all customers
Real-time tracking of Rider and chat with Rider option
Multi-Language and different themes support
Rating and Review features for order
Payment Integration for both PayPal and Stripe
Previous order history and adding favorite restaurants
Options to add different variations of food items and adding notes to restaurant
Pick-up and delivery options with different timings
Options to add different variations of food items and adding notes to restaurant
Vouchers and Tipping option
Searching functionality respective to restaurants and their items
Restaurant Application:
Ringer and Push Notification alert for new incoming order   
Time limiter for a restaurant to accept orders and setting time option for meal preparation
Print Invoice option for restaurant
Delivered orders history
Changing restaurant status to online/offline
Order Details with customer information and Order Details
Real-time order receiving updates
Rider Application:
Real-time order status change updates
Push Notification and Ringer feature for a new order
Map feature showing markers for delivery address and restaurant address with Google Maps integration
Time limiter for accepting an order and updated time shown for meal preparation time
The distance and anticipated travel time to the destination (Restaurant and Customer) are displayed
Real-time chat with a customer option that includes push notifications for chats received on both ends
History of all orders in progress and new orders
Online delivery fees that are instantly placed into your wallet, the ability to withdraw money, and wallet history
Option of changing a status online/offline of rider
Admin Dashboard:
Role-based administration, whereby the administrator has access to all features while the vendor (the owner of the restaurant) only has access to the management of their own establishments
Management of Restaurants, Vendors, Restaurants Section
Defining Zones for Riders and assigning creating zones to Riders
Managing withdrawal requests from riders and commission rates
Configuration of application and global level order status management
Restaurant orders stats and managing their stripe account for receiving commission directly
Restaurants managing their timings and defining delivery bounds where they can operate
Restaurants’ menus feature with complete options to add any variety of food with a discount feature
User, Ratings, Coupon, and tipping option management
Functionalities for better development experience:

To make your life as a developer easier, we made sure the code was neatly organized and got rid of any extra screens. For an even better development experience, it is combined with the following functionalities.
ESLint to provide you with linting capability in Javascript
Prettier for code formatting
Jest for unit testing
Husky to prevent bad commits
What will you have in the Enatega Full App?
Enatega Multivendor Mobile App (iOS and Android)
Enatega Multivendor Rider App (iOS and Android)
Enatega Multivendor Restaurant App (iOS and Android)
Enatega Multivendor Web App
Admin Web Dashboard
Application program interface server
Analytics Dashboard with Expo Amplitude
Error reporting that is Sentry
Enatega Technology Stack
Application program interface (API) server
NodeJS
MongoDB
ExpressJS
Stripe
Paypal
Nodemailer
Firebase(for push notifications on web)
Express GraphQL
Mongoose(for MongoDB)
Web Dashboard
React
GraphQL
Bootstrap
Firebase(for push notification on web)
Mobile App
React Native
Expo
Graphql
Sentry
Amplitude
Rider App
React Native
Expo
Graphql
Sentry
Restaurant App
React Native
Expo
Graphql
Sentry
Customer Web App
React
Material UI
GraphQL
Amplitude
Sentry
Firebase(for push notification on web)
Join Our Open Source Project

We're actively looking for contributors like yourself to join our open-source project. Your involvement could significantly advance our development efforts, presenting a valuable opportunity for you to make a meaningful impact in a high-demand market. 
Join our lively community on Discord, where you can ask questions and engage with fellow contributors: https://discord.gg/9tQrqXjW
There are two main ways you can contribute to our project:
1. Creating new issues
2. Submitting pull requests (PRs) for existing issues
Our development team will carefully review your PRs and provide feedback. Upon merging, you'll be acknowledged as a contributor, with your name automatically added to our contributor list.
Thank you for taking the time to read our blog. We eagerly await your contributions to our project.