Original article can be found at: woxapp.com
How to build up an effective service for food delivery? How to set a task for the developers and what functions will be required in the first place? Using UberEats as an example we will analyze in detail what is required for creating a food delivery service.
Our team has made several service aggregators including a food aggregator. The material has been prepared on the basis of our experience. This article will be helpful for the relevant startup projects and restaurants which want to create tools for food delivery.
In the article you will find the answers to the following questions:
- How much does it cost to build app UberEats?
- Which programming solutions are required for the UberEats service?
- How to organize work with restaurants and delivery guys?
- Which tools can be helpful in promotion and increase in customer loyalty?
- What else is important to know when working on your own project?
The Uber taxi service is a project with investments amounting to millions. UberEats is a complimentary business field for the company.
How UberEats works
It’s important to understand that success in business is only 20% dependent on the quality of the site and mobile apps. The rest involves collaboration with the partners and clients.
UberEats delivery service is:
- A website.
- Customer mobile apps for Android and iOS.
- Mobile apps for delivery guys.
- Administrative panel of the site for the service operators and restaurants.
The integral part of the work of the system is the following:
- Food outlets. A partner can be a fine dining restaurant, as well as a fast food café and a snack-bar. The main criterion of collaboration is the quality of the products.
- Delivery guys. They have a flexible work schedule working at a convenient time and suitable mode.
They are not the company´s employees, they receive piece-rate payment.
The site design is functional and inconspicuous, it perfectly meets the project tasks:
- Fast download speed.
- Navigation simplicity.
- Convenient display image on the screens of different sizes (adaptive layout).
- Nothing distracts visitors from the main aim of the service work – food choosing.
You can enter the site from a desktop computer, a laptop, a tablet or a mobile phone. On any of these devices the site will be displayed correctly, its elements will be of the size convenient for a user and important information will be in plain view.
When you study the site from your mobile phone, additional button “Download the app” appears .
You can indicate your location in the web version of the project without being registered, after which a visitor comes to the page which offers a choice of restaurants.
You can look through the menu of the chosen places, estimate the approximate delivery time and cost. To place an order you shall log in or sign up.
Mobile application for customers
There are two versions of the UberEats food delivery app: for iPhone and Android. After the installation users log in or sign up.
Please, note! The UberEats app requests the bank card details during the registration process. It can lead to a negative reaction. People are afraid to provide their data, they prefer paying a delivery guy. This factor, as well as other peculiarities of the chosen region, shall be taken into consideration when creating your own service.
After a user logs in, he can look through the list of the restaurants, menus, he can place the order, follow it online the same way he does it on the site. Mobile devices use GPS to localize the delivery place. Optionally, you can specify the address manually or change it to any one located within the service area of the Uber delivery guys.
Special features of placing order
In order to choose dishes a user performs several actions:
- He chooses the delivery address after which food outlets available for ordering are automatically displayed on the list.
- He chooses a restaurant or a café which attracted him.
- He looks through the menu.
- The dish he liked is added to the basket.
There are several interesting nuances when you choose dishes in this service:
You can choose to add spices, sauces, salads, vegetables and other additives to the dish. Sometimes you are offered to choose a drink or a side-dish in one go.
A dish list has a notice box where you can leave important information and your preferences. It allows to avoid disagreeable situations. For example, when a dish contains a product impossible for a customer due to its allergic properties or if it’s excluded from his diet.
Prices and delivery cost
Cost of order and delivery price are shown when the order is being placed. Usually in Uber the delivery cost is fixed for the chosen region. It doesn’t depend on the sum of the order. Minimal cost of the order doesn’t exist.
If the order is made from a particularly popular place or in the city area where the load upon delivery guys is extremely high, an additional fee “for popularity” during the “rush hours” of food delivery can be charged. The places where you have to pay more than usual for an order get a special marking.
Prices in the service and prices when attending a restaurant for the same dishes can differ. The delivery menu and the cost of the dishes are approved by the partner restaurants. Everything depends on the pricing policy of the chosen place.
Depending on the tools used by the restaurant for automatization, the following variants of upgrading are possible:
- Data interchange with the restaurant site or accounting software via API.
- Attaching and updating of the information by the restaurant employees manually via admin panel of the restaurant in the service.
Bonuses and discounts
Every order brings bonuses to the user, he will be able to use them to pay for the future delivery and food. Bonuses are credited during the registration. They are usually enough to have a free snack. It’s a considerable motivation to sign up, so think over a system of bonuses crediting when the project is still at the stage of development.
- Will the number of bonuses depend on the sum of order?
- Will bonuses crediting depend on the time of day, the place selected, the workload of delivery guys in a chosen area?
- Who makes a discount: a service or a restaurant?
- How are the accounts settled with the restaurant for the order paid by bonuses?
- Is it possible to pay by bonuses in any city (country) or only in the location where they have been received?
A user of the UberEats system can pay by bonuses only in the country where they use for payment the currency in which the payment was performed. The server provides discounts itself, restaurants satisfy a partner pay regardless of the number of orders paid by bonus points.
After performing the payment, customers see the number of credited bonuses and information about how to get more points. For example, crediting additional bonus points for inviting a friend. Friend recommendation is one of the best adverts.
Work with customers via еmail
UberEats customers receive notifications via email about connecting new places, promotional actions and new discounts. Such aftermarket work reminds of the service and encourages users to come back to the app.
It’s essential to collect a base of email addresses during the registration process of the users and think in advance over the tools you will need for newsletters. You may need the following:
- Sending notification about the order to the email (it’s useful when ordering from the site).
- Service newsletter.
- Congratulations of the users on their birthdays, New Year, popular calendar holidays and others.
Work with restaurants
UberEats presents itself as a service which allows to get delivery from multiple restaurants including those which don’t have their own delivery service. In each region the company has its own administrators and operators who maintain the service and are in charge of the issues to be resolved. Restaurants and delivery guys who are service partners are responsible for preparing food and its delivery.
UberEats offers for the restaurants:
- Increase in the sales volume due to the delivery orders.
- Convenient partner’s office on the site where you can monitor all the stages of the work: order receipt, payment, delivery process.
- Popularity growth of the place due to the adverts in the service (logo, address, menu of the dishes with their photos etc.).
Control panel for the restaurant manager
A partner restaurant pays to the restaurant a definite interest received from the total amount of the orders. Uber guarantees food delivery.
After concluding an agreement, the restaurant gets access to the “partner’s office” on the service site.
What is available for a partner restaurant:
- Change of the information about the restaurant (logo, name, address, telephone and others).
- Attaching, removal, change of the information in the restaurant menu.
- Receiving information about the orders (in the admin panel and with the help of the notifications: to email, SMS or рush notifications).
- Information about the orders completed: a list, reports, sum of profits etc.
Applications for delivery guys
A delivery guy is provided with a mobile app for work. Also he can choose days, time and duration of his working period. UberEats offers cooperation in delivering food to everyone interested. Delivery can be done by car, motor-bike, bicycle and even on foot if the distance allows it.
Basic functions of the delivery apps:
- Ordering table in the chosen area.
- Notifications about new orders.
- Electronic map and satnav with a detailed route.
- Information about order payment: paid by card (by bonuses), payment to a deliver guy (sum).
- Order comments: contact phone number of the ordering client, place of delivery (office doorstep, flat, at the entrance to the building), additional requests and wishes.
- Operating statistics of a delivery guy: statuses, orders completed, bonuses, financial statement. Connection with the service operator from the app.
Admin section of the system
The UberEats service is an automated system. Despite this, the administrators (operators) of the Uber service work every day:
- rendering help for a customer;
- specifying and resolving possible conflicts;
- helping to solve technical problems.
When developing the project, it’s important to appropriately organize users’ roles and related access levels. Here’s the example of organizing users’ roles:
- Administrator and owner – full access to all data and capacities.
- Content manager: access to the information update on the pages, news attachment etc.
- Director: access to all orders, financial statistics, reviews and estimate from the clients, operational reporting.
- Regional representative: access to the information of the Director, but limited to the region.
- Operator: access to the current orders in the region, ability to approve the order manually, access to the messages, telephone connection with the customers and delivery guys, operational reporting.
- Tools and reporting for different employees are made with regard to the special features of the business. Access to the information depends on the role an employee has. For example, an operator can’t look through the orders in other regions or view financial statistics. A regional director has right to view all the orders, but he can’t make changes into the orders closed by a delivery boy or an operator.
Site and app development
What is essentially important at the stage of developing a site and apps:
- Download speed.
- Synchronization and API.
- Attraction of the visitors.
You shall maintain your primary focus on the convenience and quickness of the food order. Buttons, menu and other elements of control shall be clearly visible. There can be any decorations in case they don’t attract too much attention.
Site navigation, information location, control – everything shall be intuitive to use. Users shouldn’t have such questions as “How to make an order?” or “How to pay?”.
There is a minimal number of the elements on the UberEats site:
- Main page attracts most attention – slides with food adverts and “Indicate your address” line.
- The Restaurant Select page focuses on the places to eat.
- Dishes dominate in the menu, and on the left there is a laconic but helpful menu.
Mobile apps design shall meet the requirements and recommendations of the operating systems:
Main task of such requirements is to provide nativeness. The user who downloaded your application shall recognize in it the key control elements.
Nativeness is a user-friendly navigation and management which is an essential parameter when developing a mobile app. Complicated, untypical and strange elements make navigation difficult for the user and decrease conversion.
Long download of the site or slow opening of the app on a mobile becomes a “refuse” factor.
For the service like UberEats such parameter is of high priority because effective food sales require a lot of photos which makes page loading slower. Taking into account the usage of mobile phones of different quality and working under the conditions of slow Internet, speed parameters become crucial.
To increase speed you should:
- Avoid high-powered graphics.
- Apply scalable architecture. Define which data shall be saved, how to arrange databases and tables, what will be the request structure, which databases will be used often and which not.
- Optimize images: the less “weight” a file has and the smaller the picture is, the faster the download is.
- Test the load speed of pages from different devices, from different regions and residential places where you plan to offer your service working. Services tools.pingdom.com or gtmetrix.com. can be used.
- Conduct load tests: estimate possible quantity of the customers during the rush hours and check the service operation under this load. For this purpose JMeter tool is used most frequently. You can find more information about this tool here: https://ru.wikipedia.org/wiki/JMeter
In order to increase load speed our specialists apply caching, queue services, they build in elaborate architecture of the data storage, configure the server to perform necessary tasks, conduct load testing and other types of tests.
Synchronization and API
As we have mentioned, food deliver service consists of the apps for the customers, delivery guys, admin panel and a website. In order to provide swift exchange of information synchronization is required.
To organize work of such projects a client-server architecture is used, and API is developed to exchange the data.
API will be also required when arranging data exchange with the sites and accounting programs of the restaurants to upgrade menus and prices. If a place refuses to be automatized, timely prices upgrading becomes its area of responsibility.
Thoughtful arrangement of the data exchange between the apps, programs and the server is important for the work of the whole project. We advise to trust the development of the server part of the project (back-end) and user part (front-end) to one developer. It will allow to avoid multiple problems that may arise in the process of setting, as well as to escape possible mistakes related to human-factor aspect (lack of interaction between the developers).
Attraction of visitors to the service
Methods of project promotion should be thought over at the stage of development:
- Site optimization. Structure and website code shall be adapted to the work of the search engines and search promotion.
- Adaptive layout. Google company officially announced that the sites with adaptive design in a mobile offer of a search engine will have priority.
- Cooperation with social media. Buttons of social networks on the site, invitation to share information with friends in social media, in the app, in mobile apps – all these methods provide a notable attendance flow. Their capacity shall be fulfilled at the stage of development.
- ASO- optimization: package of measures for setting the app for its future promotion (increase in visibility of the app in the search engine).
The project budget shall include the follow-up work on site and apps promotion, context and other types of adverts.
How much is the service similar to UberEats: food delivery?
Here is approximate calculation of the working hours of the specialists:
Total preparation of the project (making a design specification, development of the structure, setting of the main capacities) takes about 50 hours.
- layout – 18 hours;
- user interface – 28 hours;
- testing – 14 hours.
Registration and work with users:
- registration/authorization via email – 19 hours;
- login/logout of the user – 8 hours;
- authorization via social media – 8 hours (for each network);
- registration/authorization via phone number – 32 hours;
- profile editing – 48 hours;
- ratings and reviews – 10 hours.
Geolocation and service coverage:
- geolocation integration – 32 hours;
- creating a route – 35 hours;
- monitoring of the delivery guy movements – 74 hours.
- integration with payment gateway – 60 hours;
- attachment and verification of the map – 40 hours;
- prices and order cost – 14 hours.
- connection to GoogleAnalytics – 4 hours;
- Yandex tools – 4 hours.
Communication and notifications:
- Рush notifications – 40 hours;
- SMS integration – 30-60 hours.
- Invitation of friends via social media;
- Latest journeys and frequently used places;
- Direct call from the app etc.
Here the quantity of working hours depends on the work complexity and personal wishes. It’s calculated individually.
What else is of prime importance?
When design specification is being developed and the budget is being planned, it’s important to bear in mind the following tools apart from the basic functionality, described above:
- Statistics gathering and links tracking.
- Errors monitoring services.
- Feedback implementation.
- Push notifications.
- Ability to estimate the app and write a review.
You shall include hosting payment and site domain payment into the budget, as well as the cost of the app publishing on AppStore or GooglePlay.
After the startup the project will need a technical support and regular update. This way you will ensure uninterrupted operation of the service, will be able to correct errors in the apps, add new functions, react to the visitors comments.
Let’s sum it up. Development of the app similar to UberEats will take about 600 working hours, the total sum of it directly depends on the customer preferences and operating peculiarities of the future application.