How We Built a Food Delivery Platform from Scratch
How We Built a Food Delivery Platform from Scratch
Overview
A Michigan based company approached us to develop a food delivery platform, which they would offer to local restaurants and delivery persons in a region as a third-party platform for getting the food to the doorstep of the customer. The customer would use the platform to find the nearest restaurants and get their food delivered to their destinations.
The client is primarily involved in offering tech solutions to businesses within the transportation domain, connecting the dots between service providers and the consumers. The company does not directly employ any individual offering delivery service; it just provides the platform using which enterprises can streamline their day-to-day action.
Citing the exceptional growth of the food delivery businesses and the demand among the consumers, especially during the COVID pandemic when people could not go to their favourite eateries for a meal, our client decided to expand his offerings to the food businesses as well, other than transport companies, which they had been serving previously. With already so many third-party food delivery apps present in the market, the idea was to develop a platform that would present cost-effective tech solutions to local food businesses and delivery executives, to expand their operations, enabling them to reach out to maximum number of customers.
The platform not only allows the businesses to connect with the delivery person, but each participant, including the customers can track the food and the delivery person from order placement till delivery.
To meet the specific needs of the client and to cater to the businesses, delivery persons, and the customers through the platform, we developed both web and app versions with precise functionalities and advanced features.
Since the project was built from scratch, we had to neutralize multiple challenges, and incorporate features that would make the platform user-friendly, interactive, and intuitive.
Challenges
The client reached out to us at the juncture where he was facing lots of issues in developing the platform. He had connected with multiple developers presenting the scope and scale of the project but no one was able to deliver what he was seeking.
After working with a few developers, he finally came across Brainium online. Once he laid out his requirements and the scope of the platform development, we spared no time in accepting and initiating it by forming a team that would lead and handle the project, along with setting a line of contact.
1. Admin: Since there were to be multiple user access to the platform, it was necessary to create an intuitive yet robust admin panel that would oversee the overall functionality of the app/website. The need was to use the admin panel to streamline the management of all the access points along with the other backend processes.
2. Multiple Users: The platform would have multiple users, and hence there was need for separate access panels for each type of user with complimenting functions and features, along with data privacy and security.
4. UI/UX: The platform would have multiple users, from businesses to common individuals, who would coordinate in unison to ultimately execute the act of food delivery. Hence, it was necessary that we build and design it with elements that would elevate the user-friendliness. We were to design and implement the UI/UX to make the platform intuitive and easy-to-navigate across web, Android, and iOS versions.
5. Movement Tracking/ Live Tracking: The app would be used to track the delivery persons, the status of the food, and the progress of the restaurants in food preparation. To assimilate all that into a streamlined formation, enhanced with continuity was essential to make the app highly functional and effective to the businesses, the delivery persons, and the customers. There had to be features like real-time tracking of the food from preparation to delivery, in-app notification system for alerts of promotional nature and otherwise, so that communication remained unhindered without any delays in delivery.
Technology
The app was developed and powered through implementation and integration of features and modules that enhanced the performance and in-app coordination for a smooth work flow. It was developed on a Native platform, incorporating the following:
- Node JS for backend development
- Java for Android frontend development
- Swift for iOS frontend development
For the server OS we used Linux and the Database was developed with MySQL. The specifications for Android frontend included:
- Eclipse JUNO & JDK version 1.7 and Higher
- ADB 21.0 and higher
- Android Platform Versions 6.0 to 10
Specifications for the iOS frontend included:
- Xcode 8.1
- iOS Platform Versions 9.0 to 14
Apart from these we also used third-party API integration and credentials, which included the following:
- Stripe for payment gateway
- Twilio for SMS
- Google API for Maps (navigation)
For the project execution we followed a protocol involving the following steps:
- Project Initiation
- System Analysis
- Visualization
- Development
- Testing (UAT)
- Documentation
- Deployment (Go Live)
Solution
Our first job was to identify the initial challenges and then chalk out a plan to mitigate it by integrating precise and highly functional features. We started by categorizing the users of the platform and creating separate access points, drawing up the permission protocol for registration and log-in processes, followed by building a robust admin panel that would be at the helm of all operations with maximum backend-access. Here are our user categories:
- App admin (backend user)
- Restaurants
- Delivery person
- Customers
So, accordingly there were four user interfaces:
- Admin interface
- Restaurant interface
- Customer interface
- Delivery person interface
The following sections were introduced within the website/app:
- Home Screen
- Restaurant List and Map View
- Restaurant Details
- Checkout and Payment
- Live Tracking Page
The Admin panel had the following segregations to streamline the overall process:
- Account settings
- Sub-admin management
- User management
- Menu management
- Discount management
- Restaurants category management
- Order management
- Reports management
- Payment management
- Rating & Review
- Analytics
- CMS management
For the Customer
- Notify me – Enabling and disabling of food items as per availability. Users will be able choose the "notify me" option to get notification when a particular food item is available again.
- Checkout & payment - Customers will be shown the total payable amount for the food items in the cart along with the delivery charges. On proceeding with placing the order, the amount to be paid will be displayed, as the customers choose the mode of payment. They will checkout through the single Payment Gateway and complete the order.
- Order tracking - Once the customer successfully places an order he or she can track food status and delivery of the order in real time. The system was built to notify any delivery person within the vicinity of the restaurant and the address of the customer.
- Cancel & Refund – We ensured easy cancelation of orders until pickup, followed by refund if paid already and cancelled at the right time or not delivered, once complaint got raised.
For the Restaurant
- Food items upload & management - Restaurants can upload multiple images of a food item giving multiple views to the customers to boost sales. They can also set all the features related to the food items like pricing and others.
- Order management - Manage orders taken and cancelled orders.
- Tax & invoices - Manage taxes and invoices.
- Report management - View sales reports.
For the Delivery Person
- New order alert - Delivery boys will get new order alert every time they are assigned for an order pickup and delivery. Admin can assign any delivery boy from backend or the system will assign the nearest delivery boy.
- Delivery status management - Manage the delivery status from here. If they take cash on delivery (COD) from customer then they can update the same, which will be stored in the database. Admin will manage this offline payment from back end. It allows the delivery person to view their delivery history.
- My earnings screen - View their earnings in this section.
For Admin (Web-based back-end functionalities)
- Customer management - Admin can manage all the customers from this section.
- Restaurant management - Manage all the restaurants from this section.
- Delivery management - Manage all the delivery executives from this section.
- Content management - Manage the content of the entire system.
- Order & Payment management- Manage food ordering system and the payment processing.
- Queries & complaint management - Manage queries and complaints.
- Reports management - View various reports related to marketing, sales reports, etc.