Uploaded by Ace shelley


1. Introduction
The goal of the food recommendation system is to ensure diabetic patients or individuals
who are at risk of getting obesed get the right information about the type of food to eat
and nutritious content of this food recipe to stay healthy.
There are several different approaches for the food recommendation system since it is a
well researched area. The industry (health) and academia has paid very close attention
to developing innovative recipe and food recommendation systems because of the
significance it has not only to diabetic patients but for other users who might want to stay
healthy. As a result, there has been an increase in the proliferation of this solution for the
use of the public.
2. Problem Analysis
A healthcare operator has requested an intelligent food recommendation application that
can predict the body mass index of an individual, recommend food based on information
such as an individual's height, weight, age, sugar level and sex, and finally provide
insights in form of data visualisation for patterns in food or other metrics to be
3. Solutions Requirements
The final product is an application that will accept certain parameters about the personal
information of an individual, specifically, a diabetic patient. The application will utitlise this
information provided to intelligently produce an output which is the information about
user BMI and recommended food. Another aspect of the application produces visualised
data based on the available dataset.
3.1 System Specifications:
 The application will receive inputs through a form for the user's personal bio
 The application will read and load the dataset containing information about
the food recipes and associated nutrients.
 The application will apply the K-nearest neighbour algorithm to make food
recommendations to the user requesting.
 In the output produced by the application, information about the BMI level and
the recommended food should be displayed.
 An aspect of the application shall have options for various statistical plots for
the dataset provided.
3.2 Tools
 Streamlit: According to their website, “streamlit turns data scripts into
shareable web apps in minutes. All in pure Python. No front-end experience
Streamlit is a python framework that enables a user to build a data science
application rapidly.
3.3 Functional and Non-functional Requirements
Every software product always has requirements aspects; functional and nonfunctional requirements which relates to the overall behaviour of the system. The
functional requirements relate to the technical behaviour of the product. While non-
functional requirements focus on the performance of the system. Below outlines the
functional and non-functional requirements of the product:
Functional Requirements
 Receive user biodata in a form
 Process BMI information
 Output food recommendation for user
 Provide various plots from
Non-functional Requirements
 Data security
 Great user experience
 Availability of data
4 Product Design
Well defined data science projects begin with understanding the business. A
business will most need consultants to provide solutions to their problems to aid their
business process. Hence, the need to understand the needs of the business provides
context for a solid foundation of a solution.
Furthermore, understanding the business is just a start to the cycle of the data
science lifecycle as seen in Fig 1. Finding appropriate data to use as a business
solution is imperative because it helps with the quality of output for the
product. Other data manipulation techniques that can be deployed when a good
dataset has been identified are data cleaning, data exploration and feature
engineering. These techniques are used to pre-process data to obtain clean data.
Then predictive modeling used to make predictions using the clean data.
5 Product Development
This application has been developed as a prototype and proof of concept (POC) for
the health operator has made the request. Following the problem statement, in depth
research was carried out to ascertain the best technology to use for the development
considering time to scale as a factor.
Many technologies were considered for the development of the application but
Streamlit proved to be the best choice because of the rapid development and low
learning curve to understand the code.
The data science application has two aspects to it; the food recommendation and
data visualisation aspects. The food recommendation aspect involves the collection
of data from a user through a form. This form is a representation of user biodata
which would be used to calculate the body mass index (BMI) of an individual, make
food recommendations using predictive algorithms or models. The K-nearest
neighbour is the algorithm used for this study.
On the other hand, the data visualisation aspect of the application allows users to
choose plots which provide insights about the data. These plots include scatter plots,
bar charts and stacked bar charts.
Finally, the application was uploaded to Github and then deployed to a streamlit
server. This server created an instance of the app that is hosted on the internet and
can be access from around the world.
6 Methodology