Food Delivery Service

The platform serves as a unique and innovative food delivery service that provides customers with fresh produce boxes, filled with surplus farm products. The service aims to tackle food waste while promoting healthy nutrition habits.

Delivery
Serverless
AWS
Web
Back-end development
Python
API
Perform a project

Customer

industry
E-commerce
region
UK
client since
2021

Our client is a pioneer in the fight against food waste, offering a food delivery service in the UK and Netherlands.

Their unique approach involves distributing 'odd' and surplus fruits and vegetables, sourced directly from farms, to consumers doorsteps in select regions.

Detailed information about the client cannot be disclosed under the provisions of the NDA.

Challenge

The primary challenge for our team was to design a robust system capable of handling the fluctuating inventory of farm produce and ensure its smooth delivery process.

We also needed to create an API for customers’ sites, allowing them to order without knowing the exact contents of their boxes, maintaining the element of surprise that is central to the service’s appeal.

Customer had one strict requirement for technical implementation - the application must be developed using serverless technologies only.

Solution

Understanding the client’s specific requirement for a serverless technology approach, we committed to building an efficient solution utilizing the wide array of AWS (Amazon Web Services).

In this case, the AWS Serverless Application Model (SAM), an open-source framework for building serverless applications, became instrumental.

We relied on AWS SAM to manage the deployment and orchestration of our serverless components. The advantage of using SAM is its ability to allow us to define complex functions and APIs in a straightforward template.

In developing the application, we strategically utilized various AWS services. AWS Cognito, a powerful identity service, helped manage user authentication and user pool management, establishing a robust security framework for our application. We also utilized AWS S3 for storing application data, ensuring high availability and scalability.

To manage our relational databases, AWS RDS was employed while AuroraDB in conjunction with SQLAlchemy handled intricate database operations. For managing database schema migrations, we turned to Alembic. Redis, a fast in-memory data store, was used for implementing cache and facilitating message broker functionalities.

As for our web serving and WSGI HTTP serving needs, we chose Nginx and Gunicorn respectively. These solutions provided efficient handling of HTTP requests and seamless communication between the web server and the application.

For architectural clarity and efficient handling of different user categories, we divided the application into two primary components - an admin section and a customer section. Each of these sections included three fundamental services: a registration service for managing user accounts, an item service to handle the boxes of produce, and a pack-house service to manage the logistics of packing and delivery.

Results

The results of our solution were exceptional. The project achieved scalability, efficiency, and reliability while meeting the clients technical requirements. The use of AWS serverless technologies and the strategic selection of various AWS services resulted in a high-performing and future-ready solution. The client now enjoys a scalable, efficient, and reliable food delivery service that can effortlessly accommodate future growth and evolving business needs.dfgdfd

200K

clients per year

140K

new subscritions per year

Team

5

Back-end engineers

2

Fullstack engineers

1

Teach lead

Technology stack

backend

SAM
Cognito
Lambda
EC2
RDS
S3
IAM
Secrets Manager

Dev-ops

React
JavaScript
Next.js
HTML5
CSS3
SCSS
Tailwind
Redux