Enatega Releases App Repo as Open Source
After navigating the realm of proprietary software for four years, we're excited to announce our transition to open source with the launch of Enatega (enatega.com) – a delivery management software designed specifically for entrepreneurs venturing into food delivery or similar endeavors.
Here's a brief overview of what Enatega offers:
1. Simplified Setup: Say goodbye to complex workflows and tools. Enatega simplifies the setup process, requiring just a few commands to run the project locally on your system.
2. Flexible Infrastructure: Enatega seamlessly operates across various platforms, offering unparalleled flexibility. Whether testing on emulators or physical devices, Enatega effortlessly adapts to your setup, allowing for customization to meet your specific needs.
3. Embracing Open Source: Enatega fully embraces the principles of open source, providing users with access to live demos, comprehensive documentation, and instructional videos. This abundance of resources ensures users can confidently explore and leverage the software's full capabilities without feeling overwhelmed.
You can find the source code and get started here: (https://github.com/ninjas-code-official/food-delivery-multivendor)
Our Journey to Open Source:
Four years ago, we embarked on a journey to create Enatega as a side project at Ninjas Code (ninjascode.com), our software development agency. Initially, our goal was to compete with a local food delivery app company by utilizing our software development expertise to address identified shortcomings. However, as we realized our lack of marketing skills in challenging industry giants, we redirected our focus to assisting others in launching their own delivery services. While we initially relied on third-party marketplaces for marketing, unforeseen circumstances led to the closure of the marketplace, marking the end of this phase of our journey.
Recognizing the need for a rapid pivot, we leveraged our development expertise and chose to open-source our App Repo to overcome our marketing challenges. Since then, we've observed significant traction without extensive paid marketing. Our value proposition extends beyond the product itself; we offer visibility to other contributors and provide tangible technical experience by involving them in a project utilized by over 100 startups.
Understanding the importance of monetization, we devised a business model where the backend is offered as a licensed product, while the API remains open. We acknowledge that many enterprises choose to completely open-source their projects, but our business model requires customization and may not be feasible otherwise.
App Repo Unveiled:
Enatega Multivendor offers a comprehensive solution for multi-vendor food delivery, accessible on iOS, Android, and the Web. With Amplitude managing dashboard and analytics, we prioritize exceptional designs for both mobile and dashboard applications, aiming to ensure seamless integration into any meal delivery service.
The mobile component is developed using React Native and Expo, while React is employed for crafting the dashboard panel and customer web app. GraphQL is utilized across both web and mobile platforms, with the Apollo Client managing endpoint querying and state management. Node, alongside MongoDB, drives the creation of the API.
Enatega Multivendor features a well-organized codebase, simplifying development by eliminating unnecessary screens, and incorporates additional functionalities to enhance capabilities for restaurant or food delivery service applications.
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)
Contribute to our Open Source Project
We extend a warm welcome to contributors like yourself, whose input can drive our project forward. Our technology stack is in high demand, offering an exceptional opportunity for participation. Feel free to join our active Discord community for any inquiries: https://discord.gg/9tQrqXjW.
There are two avenues for contributing to the project:
1. Issue Creation: Identify areas for improvement or propose new features by creating issues.
2. Pull Request Submission (PRs): Begin by forking the repository, creating a local branch, and requesting assignment of specific issues. Some issues are labeled as "good first issues" to assist newcomers in starting their contributions.
Thank you for taking the time to read our blog. We eagerly anticipate your valuable contributions to the project.
Subscribe to my newsletter
Read articles from Qasim Abbas directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by