Food Courier Service Development: Android & iOS Applications and Web Portals
A European restaurant service company seeking to diversify its operations through the implementation of new IT solutions.
We had to develop a service for courier delivery of food from cafes and restaurants with applications for iOS and Android, — similar to Glovo, Wolt, and Uber Eats.
The required load is up to 10,000 places and 100,000 visitors daily.
1. Concept development
We studied the principles of similar solutions and offered our customer the development of such a service as a complex of interconnected solutions: applications for clients, couriers, administrators (platform owners), and a web interface for service providers (cafes and restaurants).
We have designed the solution architecture taking into account the required load (see the Figure 1 below).
2. Software development
As part of the project, we developed four applications for iOS and Android that worked with a single database on the server: for clients, couriers, service providers, and the platform administrator.
The client and courier apps for iOS and Android platforms were developed with the Flutter framework to combine the code base.
A web version was based on the React library and the Bootstrap toolset were also developed for customers and places. The web versions aimed to reach more users on Windows, macOS, and Linux devices.
Backend development was implemented with NGINX, Node.js, Python (Django/TurboGears2), and PostgreSQL. The software architecture was based on the microservices architecture.
Platform / deployment: Linux, Docker, and Docker Compose.
Figure 1. Diagram of the service business logic on the side of a client, a courier, a service provider and applications.
Figure 2. Solution block diagram
The features implemented in the app and web version for clients:
- to create a personal account with authorization through username and password OR via Google account, Facebook Oauth API, FaceID, TouchID;
- to view / search for a common base of places and meals, filtering by category;
- to add items to a cart, confirm order and payment;
- to view the order history and status of the current one;
- courier tracking and communication with him;
- a customer support chat and a feedback form.
The features implemented in the app for courier:
- authorization in the personal account and binding data: name, photo, phone number;
- setting a search radius for orders on the map;
- linear list with ready and planned orders;
- a card with the data for the order reception: time of readiness, address of the place and the client, route, and price;
- customer's contact number (available after order taking);
- a screen with order status change.
Software for service administrators
The service provider interface was developed as an adaptive web application for Windows, MacOS, and Linux. It performs the following functions:
- authorization as an administrator or an operator;
- system status view;
- library and system management.
The features implemented in the administrator application:
- authorization and choice of configurations: administrator, owner, operator;
- ACL and Control Unit system management;
- overview and management of locations, couriers, customer base, and payment systems;
- notification management;
- analytics collection.
The server software based on API Gateway hosting allows integration with payment systems, cafe and restaurant software, courier, customer, and logistics services.
Our team provided the deployment process and configured the hosting:
- daily incremental data backup;
- backup of service settings.
Analytics are also collected on the backend, on the Firebase platform: it allows you to track users behavior in the application and on the site. The system collects the following indicators:
- the courier's travel time;
- record of accepted and rejected orders;
- the number of visitors to the website and the application;
- popular cafes/restaurants and meals.
We developed a complete solution for food delivery on the side of cafes and restaurants, couriers, end users (customers), and platform administrators. Our customer received the following system components:
- a set of iOS and Android applications + web versions of the service for each target group;
- monitoring, management, and statistics system for the platform administrator;
- integration of the new system with service providers – cafes and restaurants;
- source codes of applications and systems and documentation for their operation and support.