Running head: LAB 1 – NUTRICIPE PRODUCT DESCRIPTION Olga V Gallup

advertisement
Running head: LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
Lab 1 – Nutricipe Product Description
Olga V Gallup
CS411
Professor Janet Brunelle
Old Dominion University
October 28, 2010
Version two
1
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
2
Table of Contents
1
INTRODUCTION ...................................................................................................................4
2
PRODUCT DESCRIPTION ....................................................................................................6
2.1
Key Product Features and Capabilities ............................................................................ 6
2.2
Major Components (Hardware/Software) ........................................................................ 8
2.3
Target Market/Customer Base ....................................................................................... 10
3
NUTRICIPE PRODUCT PROTOTYPE DESCRIPTION ....................................................11
3.1
Prototype Functional Goals and Objectives ................................................................... 12
3.2
Prototype Architecture ................................................................................................... 16
3.3
Prototype Features and Capabilities ............................................................................... 23
3.4
Prototype Development Challenge................................................................................. 36
GLOSSARY ..................................................................................................................................38
REFERENCES ..............................................................................................................................41
List of Figures
Figure 1. Major functional component diagram ..............................................................................8
Figure 2. Prototype major functional component diagram ............................................................17
Figure 3. Prototype user privileges diagram..................................................................................25
Figure 4. Nutricipe customer use case diagram.............................................................................28
Figure 5. Use case diagram for daily calorie needs report ............................................................29
Figure 6. Use case diagram for food variety report .......................................................................30
Figure 7. Use case diagram for recipe search report .....................................................................31
Figure 8. Use case diagram for combining individual components into a meal ...........................32
Figure 9. Meal component diagram...............................................................................................33
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
3
List of Tables
Table 1. Profile comparison between real product and prototype .................................................13
Table 2. Nutricipe prototype reports ..............................................................................................15
Table 3. Database comparison between real product and prototype .............................................18
Table 4. Algorithm comparison between real product and prototype ...........................................21
Table 5. User access comparison between real product and prototype .........................................26
Table 6. Prototype assumptions .....................................................................................................34
Table 7. Additional features comparison between real product and prototype .............................35
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
1
4
INTRODUCTION
All humans require nutrients in specific proportions to balance their body’s systems and
to achieve optimal health. Unfortunately, according to the American Journal of Clinical Nutrition
(n.d.), 99% of Americans are not getting the daily nutrition considered necessary to maintain
good health. According to the USDA Center for Nutrition Policy and Promotion (2005), only
10% of Americans have good diets, 74% need to improve their diets, and 16% of people in the
U.S. have poor diets.
People are unaware that unhealthy diets can lead to health problems. According to the
World Cancer Research Fund (2009), 41% of people in America do not know that there is a link
between what they eat and cancer, 23% do not know that unhealthy diets can lead to heart
diseases, and 10% of people in the U.S. do not even understand that unhealthy diets can cause
health problems. Some people who have already developed health problems do not know that
their diets should be changed based on their current health conditions. Even those people who are
interested in eating healthy face problems with developing their proper diets. 60% of all people
in America find it difficult and confusing to learn about nutrition and follow all the guidelines
(Sansolo, 2004).
Because people do not consume the necessary nutrients, there is an increasing concern
among health professionals regarding the cumulative effects of nutrition. Cumulative effects are
the results of something that has been done repeatedly over an extended period of time. For
example, eating saturated fats in excess for many years can lead to heart attacks. Years of
overeating can cause obesity and may contribute to type two diabetes, bladder disease, foot
problems, certain cancers, and even personal disorders (Roth, 2007).
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
5
When nutrients are extremely scarce in the diet for an extended period of time, deficiency
diseases can occur. Osteomalacia is one of the most common deficiency diseases, which affects
70% of Americans. This deficiency disease is caused by a lack of calcium and vitamin D.
Another common deficiency disease in the U.S. is iron deficiency, which is common among
women and children. To avoid deficiency diseases, or improve an individual’s current state of
health, everyone should consume the proper quantity of nutrients (Roth, 2007).
There are many reasons that getting daily nutrients necessary for good health and
organizing a proper diet is problematic. A variety of choices, inconsistent information about
nutrition, and a lack of time are the some of the major causes. People simply do not know what
they need to eat and how they need to prepare the ingredients they have on hand. There are many
foods that look appealing and that are fast to buy and easy to prepare, but many of the
ingredients in these convenience foods will lead to health problems in the future. Unfortunately,
people lack time to plan their meals, lack knowledge of healthy foods, and buy foods that will
not benefit their individual health needs.
Nutricipe is a meal planning tool conceived by the Old Dominion University (ODU)
CS410 Blue Group. It is designed to facilitate healthier eating, provide education about healthy
food choices, offer nutritional advice based on individual profile, preferences, values, suggest
healthy and delicious recipes with nutritional facts, and generate shopping lists. Nutricipe helps
people save time by allowing them to organize a daily routine of preparing wholesome meals and
including variety of foods based on personal needs and goals in their diet. Nutricipe is aimed at
individuals who are interested in improving their current health conditions and those who are
interested in maintaining good health by eating the right meal, the right way, every time.
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
2
6
PRODUCT DESCRIPTION
Nutricipe is a software solution that provides customers with a meal planning tool that
will assist them in organizing proper diets. It will also aid customers in consuming the necessary
daily nutrients based on their individual needs, preferences, and nutritional goals. Nutricipe
customers will not only be able to accommodate their individual goals and preferences by using
this product, but they will also receive many other benefits. They will be able to gain knowledge
about the nutritional content of different ingredients. Furthermore, they will be instructed on
what foods they need to eat according to their health needs and goals. Customers will also have
shopping list generated by Nutricipe, so that they will always have the necessary ingredients on
hand.
2.1
Key Product Features and Capabilities
Nutricipe is primarily accessed through a website that presents the user information in a
clear, concise manner. In order to make it more convenient and user-friendly, the mobile
application and client stand-alone application will be developed as part of the Nutricipe solution.
Nutricipe is a profile-based solution. It can accommodate the needs of the customers who require
special diets because of their current health conditions. It can also provide assistance those who
are interested in eating healthy and have not developed any detrimental health conditions. In
either case, customers will need to populate their profile in order to start using Nutricipe.
A customer profile is used to store and retrieve information specific to a particular
Nutricipe customer. Profiles allow Nutricipe software to analyze, develop, and output reports
based on individual information. In order to receive comprehensive reports, Nutricipe customers
need to provide the following profile information: age, gender, activity level, available
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
7
ingredients, likes, and dislikes. They will also be able to choose family history options and set
nutritional goals from the wide selection of provided categories.
In order to provide Nutricipe customers with a meal planning tool, recommend diets that
will provide all the nutrients needed for growth and health, and educate users about right food
choices, Nutricipe provides the following features to the customers: daily calorie needs message,
food variety, food combining guidelines, meal builder, recipe search, shopping list, food tracker,
and goal tracker. The calorie needs message provides information about how many calories a
particular Nutricipe customer should consume daily. The food variety generates amounts of
various food groups that are recommended each day and provides a specific list of foods that
should be consumed in order to accomplish individual nutritional goals and improve health based
upon family health history. Proper food combinations allow for proper digestion and metabolism.
They are provided by the food combining guidelines. The Nutricipe user has an option to build a
meal by searching different recipes, selecting the recipes, and adding individual ingredients to
the meals. To save time and to make it more convenient, Nutricipe provides a printable shopping
list based on customized meals, time of the year to present the user with the fresh ingredients,
and grocery stores. If the Nutricipe user selects the nearby grocery store, then the shopping list
will be generated based on the selected grocery store’s assortment. Nutricipe also offers a food
tracking option that allows customers to view previously built meals and to select the same meals
without the need to build them again. A goal tracking feature allows users to see how they are
meeting their goals based on their meal history.
Nutricipe administrative personnel are able to perform a statistical analysis of the
registered Nutricipe users based on the user satisfaction survey. Nutricipe users will periodically
receive the user satisfaction survey that evaluates how they are satisfied with the Nutricipe
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
solution and how helpful they find it in achieving their nutritional goals. Based on the provided
data, a user satisfaction survey report is generated.
2.2
Major Components (Hardware/Software)
Figure 1 illustrates the major functional components of the Nutricipe solution. It
identifies the major functional pieces that are necessary to build the product. The following
major components are included in Figure 1: application interfaces, database, algorithms, web
server, third party recipe databanks, Google Ads, and the Internet.
Figure 1. Major functional component diagram
Nutricipe is accessible in three different forms: a web application, a mobile application,
and a client stand-alone application. Nutricipe is primarily accessed through the website.
8
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
9
However, for the sake of convenience, Nutricipe customers may access Nutricipe via the mobile
application or can install a client stand-alone application and access Nutricipe while they are not
connected to the Internet.
Nutricipe uses a large database which combines the USDA National Nutrient database
(SR22), the recipes database, and the user profile database. The USDA National Nutrient
Database is made freely available for public use by the USDA. The recipe and the user profile
schemas are designed specifically for the Nutricipe solution. The recipe database is a large
database of healthy recipes in a normalized form that can cross-reference the USDA National
Nutrient database. In addition to the recipes stored in the database, Nutricipe uses third party
recipe databanks to extend the variety of recipes. The user profile database stores and retrieves
information specific to registered Nutricipe customers. The cache of available ingredients on
hand is loaded by the Nutricipe customer and is available for quick access. The web server has
access to a database system which will allow the Nutricipe website to store and retrieve data
from the database. The web server also hosts the main Nutricipe website and allows access to
Application Programming Interface (API) over Hypertext Transfer Protocol (HTTP) to mobile
application. To increase revenue by displaying relevant ads on the Nutricipe website, Nutricipe
uses Google Ads.
In order to produce different reports and output the relevant information to the Nutricipe
users, Nutricipe includes eight different algorithms: the calorie needs algorithm, the food variety
algorithm, the nutritional content calculator, the food combining guidelines algorithm, the recipe
selection algorithm, the shopping list generator, the food tracking algorithm, and the goal
tracking algorithm. The algorithms use data stored in the user profile, information about
specified ingredients on hand, recipes, and the USDA data. When the Nutricipe user fills out his
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
10
or her profile and specifies the on hand items, that information is stored in the Nutricipe
database.
The calorie needs algorithm calculates a daily caloric intake based on the Nutricipe
customer’s age, gender, and activity level. There are two data types produced by the food variety
algorithm. One data type includes the information about amounts of various food groups that are
recommended each day based on the user’s age, gender, and activity level. Another data type
provides a specific list of foods that should be consumed in order to accomplish individual
nutritional goals and improve health based upon family health history. The nutritional content
calculator is a developed software solution that is purchased to calculate the nutritional content
of recipes and individual ingredients. The food combining guidelines algorithm provides a list of
foods that should be eaten together for proper digestion and metabolism. The recipe selection
algorithm allows Nutricipe users to find recipes based on their preferences, available ingredients,
nutritional goals, and family history. The shopping list generator combines the same ingredients
for generated meals and outputs a printable version to Nutricipe customers. Nutricipe customers
can save the customized meals that they consume throughout the day and track their food
intakes. They must specify when the particular meal is intended to be consumed. This is
accomplished by the food tracking algorithm. Finally, the goal tracking algorithm calculates how
users are meeting their nutritional goals. This algorithm looks at the food history by running the
food tracking algorithm and evaluates how the consumed meals satisfy the nutritional goals.
2.3
Target Market/Customer Base
Because Nutricipe is aimed at individuals who are interested in improving their diets and
learning about healthy nutrition, it will be targeted to different customers groups. The primary
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
11
customers include fitness centers and medical clinics. The secondary customers consist of health
conscious individuals.
According to the International Health, Racquet and Sportsclub Association (2010), there
are almost 30,000 health clubs in the U.S. with total revenue of almost $20 billion, and with over
45 million health clubs members; 23% of those members are new. There is a good chance that
new members will be interested in obtaining nutritional guidelines. Health club members are
already oriented towards a healthy lifestyle and are interested in maintaining healthy diets and
meal plans that will contribute to the improvement of their overall health. Health clubs will offer
Nutricipe as a part of their membership. Nutricipe will provide user satisfaction survey reports in
order to prove that it contributes to the achievements of the health club’s customers’ goals.
Medical clinics will be interested in Nutricipe because of its unique features. Nutricipe
can provide a solution to people with a variety of different health problems and/or nutritional
goals. Nutricipe is customizable for each individual. It can tremendously improve the lives of
individuals who would otherwise suffer from health problems because of poor diet management.
The secondary customers for Nutricipe are health conscious individuals. Anyone who
cooks at home or who is interested in learning what foods he or she needs to consume will
benefit from Nutricipe. They will be able to purchase Nutricipe membership directly through the
Nutricipe website.
3
NUTRICIPE PRODUCT PROTOTYPE DESCRIPTION
The prototype of the Nutricipe solution is designed to demonstrate the feasibility of
using a profile-based meal planning tool by multiple independent users via the website. The
Nutricipe prototype allows demonstrating what the proposed solution will do in a smaller scale
and scope. The prototype is intuitive to use. Hence, it allows garnering support from the
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
12
customers to build the final product, demonstrating mitigation of risks for the final solution,
proving the concept of the real world product (RWP), and demonstrating the ease of use. The
prototype functionalities will be illustrated by use cases.
In order to limit the scope of the prototype, it will be necessary to eliminate non-essential
components of the RWP. The client stand-alone application, the mobile application, the food
combining guidelines algorithm, the family history and diseases components of the user profile,
and Google Ads will be eliminated from the prototype. Since the food combining guidelines
algorithm and the family history and diseases components of the profile will not be a part of the
prototype development, that data will not be stored in the Nutricipe database.
All nutritional and recipe data that is used in the prototype is the real world data. It is
essential to the success of Nutricipe to use the USDA National Nutrient Database (SR22) in
order to have access to the comprehensive list of ingredients. To reduce the scale, however, only
a certain number of recipes will be stored in the Nutricipe database. The variety of nutritional
goals will also be reduced for the prototype. In order to accommodate different scenarios, the
prototype uses the modeled data to populate user profiles. The profile data is carefully selected
based on the use cases.
3.1
Prototype Functional Goals and Objectives
The main goal of the Nutricipe solution is to offer a meal planning tool based on the
customer’s individual preferences and nutritional goals. In order to accomplish this goal, the
profile system must be built. Every registered user must access and populate his or her profile
before Nutricipe is used. The profile will include the customer’s age, gender, activity level,
nutritional goals, food preferences, and available ingredients. Table 1 provides a summary of the
differences of user profiles between the full Nutricipe service and the prototype.
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
Profile
13
Real World Product
Prototype
Age, gender, and
activity level
Customer’s age, gender and
activity level will be included
in order to estimate daily
calorie needs based on the
USDA data.
Customer’s age, gender and
activity level will be included in
order to estimate daily calorie
needs based on the USDA data.
Family history and
diseases
The customer will be able to
Not included
specify what diseases he or
she currently has and include
family history in order to build
a menu that will improve or at
least maintain his or her
current health conditions.
Nutritional goals
Different nutritional goals are
available for the user to
choose from.
A reduced set of nutritional goals
is available for the user to choose
from.
Food preferences
The customer will be able to
specify his or her food
preferences.
The customer will be able to
specify his or her food
preferences.
Available ingredients
The customer will have an
option to include the
ingredients he or she has on
hand.
Customer will have an option to
include the ingredients he or she
has on hand.
Table 1. Profile comparison between real product and prototype
In the prototype and real solution, Nutricipe customers must include their age, gender,
and activity level. This is a fully functional element because it is essential for Nutricipe to have
this information in order to follow the USDA guidelines and accommodate the customer’s
individual needs. The age, gender, and activity level are stored in the user’s profile.
To reduce the scope of the prototype development, family history and diseases categories
in the profile are eliminated from the prototype. In the RWP, every family history and disease
has a list of nutritional goals that must be met in order to improve health based upon family
history and diseases. Hence, instead of selecting particular diseases and specifying family
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
14
history, a number of nutritional goals can be selected to achieve the same results. Since
nutritional goals are included in the prototype, the family history and diseases categories can be
eliminated from the prototype development.
In the RWP and prototype, Nutricipe users select the nutritional goals they are aiming to
accomplish. This is a fully functional element because it is essential for Nutricipe to have this
information in order to aid the user in managing his or her diet. For the sake of prototyping, two
nutritional goals are presented for the customers to choose from.
In the prototype and real solution, Nutricipe customers need to be able to identify their
food preferences and available ingredients in order to receive satisfactory reports. They are fully
functional elements. The user will be able to select the ingredients on hand and specify his or her
likes and dislikes from different ingredients that are provided by the USDA National Nutrient
Database.
One of the functional objectives is to show that Nutricipe customers are able to build
healthy, delicious meals which account for their individual needs and preferences. Nutricipe
customers must fill out their profiles as previously discussed. The Nutricipe software searches
through the recipe database and selects those recipes that are beneficial to the particular customer
based on his or her profile. Then, it allows customer to select different recipes, add individual
ingredients, and build a meal. The created meal is built solely based on the unique profile and
customer’s choices.
Another goal is to educate Nutricipe customers. By specifying different nutritional goals
and by filling out their personal profiles, Nutricipe customers can learn what foods they need to
consume, what the amounts of calories are best for them, what types of food they need to focus
on, and ways on how to prepare their meals based upon results from algorithms. Nutricipe can
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
15
provide different reports that are based on individual needs, nutritional goals, and preferences.
The reports are built using the Graphical User Interface (GUI) and data provided by the
algorithms. Table 2 summarized the reports that the Nutricipe prototype provides.
Report Name
Daily calorie needs report
Recipient
Nutricipe user
Food variety report
Nutricipe user
Recipe search report
Nutricipe user
Nutritional value report
Nutricipe user
Percentage of daily goals
report
Nutricipe user
Food tracking report
Nutricipe user
Goal achievement report
Nutricipe user
User satisfaction survey report
Health club
Description
The amount of calories a particular Nutricipe
user needs to consume based on his or her
age, gender, activity level, and the USDA
guidelines.
Consists of two sub-reports: recommended
food intake message based on the user’s age,
gender, activity level, and the USDA
guidelines and a list of recommended foods
that the user needs to consume based on his
or her nutritional goals.
Provides a list of recipes that which account
for the customer’s individual needs and
preferences.
Provides nutritional facts for the selected
ingredients or recipes.
Indicates the percentages of calories and
specific nutrients selected ingredients,
recipes, and entire customized meals contain
compared to recommendations for the whole
day for the particular user.
Provides a list of meals that the user
consumed within the specified timeframe.
Provides the progress report on how the
customer is achieving his or her goals based
on the meal history.
Indicates if members of the particular health
club are satisfied with Nutricipe and
achieving their goals with Nutricipe help.
Table 2. Nutricipe prototype reports
There are the following functional objectives that support the educational goal of the
Nutricipe solution: to provide food recommendations, to offer a meal history, and to track the
progress of customers. Nutricipe offers different reports in order to educate customers about
nutrition and food recommendations. Nutricipe customers can learn how many calories they need
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
16
to consume on a daily basis from the daily calorie needs report. They can also gain knowledge on
what types of food are better for their nutritional goals, what food categories they need to focus
on, and the amounts of food in each category by viewing the food variety report. The recipe
search report allows users to learn what recipes can better suit their personal needs and
accommodate their nutritional goals. Nutricipe also teaches about the nutritional facts for recipes
and individual ingredients by providing the nutritional value report. It also shows customers the
percentage of daily goals for the ingredients, recipes, and the entire meals by offering the
percentage of daily goals report. Since Nutricipe customers are able to track their meals and
progress, they can view what they have been eating in the past by producing the food tracking
report. They can also evaluate how they are reaching their goals based on the food history.
Finally, Nutricipe produces the user satisfaction survey report to the health clubs to prove that it
is capable of helping its customers to accomplish their goals.
3.2
Prototype Architecture
The major functional components of the Nutricipe prototype are illustrated in Figure 2.
The prototype is a scaled down version of the real world product. However, the prototype does
retain the innovative functionality of a profile-based meal planning tool.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
17
Figure 2. Prototype major functional component diagram
The Nutricipe prototype is a web-based solution only. It will use the widely accessible
Apache web-server software which is available through the resources of the ODU Computer
Science Department, a MySQL database on the ODU Computer Science Department MySQL
server for storage and retrieval of nutritional data, user profile data, and recipes. It will use the
scripting language Hypertext Preprocessor (PHP) to produce dynamic web pages and to play a
liaison role between the database and the end-user. The logical elements and decision making
algorithms are implemented using PHP. MySQL queries are used to store and retrieve data from
the database.
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
18
The USDA National Nutrient Database (SR22) is imported into the Nutricipe MySQL
database on the ODU Computer Science Department MySQL server. The Nutricipe database
also contains individual profiles data and stores recipes. The recipes are provided by the third
party recipe databanks. When Nutricipe customers fill out their profiles, the data is stored into
corresponding tables in the Nutricipe database. The prototype Nutricipe database is reduced in
scale but is the same in scope compare to the RWP database. Table 3 illustrates the database
differences between the RWP and the prototype.
Stored Data
Real World Product
Prototype
USDA nutrient schema
(SR22)
USDA nutrient database
contents.
USDA nutrient database
contents.
Recipe schema
A combination of the USDA
recipe database and a third party
recipe databases.
A reduced set of recipes from
the USDA recipe database and
third party databases.
User profile schema
Tables to store user profile. They
are loaded with the customer’s
age, gender, activity level,
family history/diseases,
nutritional goals, food
preferences, and available
ingredients.
Tables to store user profile.
They are loaded with the
customer’s age, gender,
activity level, nutritional goals,
food preferences, and available
ingredients.
Combinations
Tables to store food
combinations. Food combining
guidelines which will specify
what foods should and should
not be eating together for proper
digestion are loaded into the
combination table.
Tables to store food
combinations. This table will
not be populated for the
prototype.
Personal and billing
information
Tables to store address and
billing information.
Tables to store address and
billing information. These
tables will not be populated for
the prototype.
Table 3. Database comparison between real product and prototype
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
19
The databases in the full Nutricipe solution and in the prototype import the USDA
National Nutrient Database (SR22). It is essential to the success of Nutricipe to use the USDA
National Nutrient Database (SR22) in order to have an access to the comprehensive list of
ingredients. To reduce the scale of the prototype, the prototype database stores a limited number
of recipes that come from a variety of reputable sources. The RWP database contains recipes
from the USDA recipe database and third party recipe databanks.
To reduce the scope of the prototype development, family history and diseases categories
in the profile are eliminated. In the RWP, every family history and disease is a combination of
nutritional goals that must be achieved in order to improve current health conditions. Since
nutritional goals are included in the prototype, the family history and diseases categories can be
eliminated from the prototype development. Hence, this data will not be available for the
prototype. However, in order to provide the database that is the same in scope as the RWP
database, the tables will be available to store the family history and diseases data. Those tables
will remain empty for the prototype.
Combinations are also excluded from the prototype development because they are not
essential in providing individual reports and helping customers to achieve their goals. The
Nutricipe database will include tables to store the food combinations. However, for the prototype
these tables will remain empty.
The prototype database and the RWP database have tables to store the Nutricipe
customer’s address and billing information. However, for the sake of prototype, all registered
users are members of one particular health club. In the prototype, if user creates an account, he or
she does not need to provide payment information. He or she will automatically be treated as a
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
20
member of the selected health club. The payment flag will be set to true for every prototype user.
The billing and address tables will not be populated for the prototype.
One of the major components of Nutricipe is its decision making algorithms. There are
seven different algorithms in the prototype. Each algorithm serves its particular role and allows
Nutricipe customers to get distinct reports. Table 4 provides a summary of the algorithm
differences between the full Nutricipe solution and the prototype.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
Algorithms
21
Real World Product
Prototype
Calorie needs
algorithm
Estimate customer’s calorie needs
based on the customer’s age, gender,
activity level, and the USDA
guidelines.
Estimate customer’s calorie
needs based on the customer’s
age, gender, activity level, and
the USDA guidelines.
Food variety
algorithm
Generate recommended food intake
and a list of foods that customer needs
to consume based on the customer’s
family history, diseases, personal goals,
and preferences.
Generate recommended food
intake and a list of foods that
customer needs to consume
based on the personal goals and
preferences.
Nutritional
content
calculator
Purchased nutrient calculator
Calculates nutritional content of
ingredients based on data in the
SR22 database, percentage of
daily goals for ingredients,
recipes, and meals. Percentages
of daily goals for ingredients and
recipes are calculated using the
nutritional content of
ingredients, recipes and user’s
nutritional goals. Percentage of
daily goals for the meal is
calculated using ingredients and
recipes data.
Food combining Calculate what foods should and should Not included
not be eating together for proper
guidelines
digestion.
algorithm
Recipe selection
algorithm
Select recipes from the recipe database
based on the customer’s profile and
preferences.
Select recipes from the recipe
database based on the customer’s
profile and preferences.
Shopping list
generator
Generate a shopping list based on a
customized meal, time of the year, and
store.
Generate a shopping list based
on a customized meal.
Food tracking
algorithm
Keep track of all the meals that
customers select.
Keep track of all the meals that
customers select.
Goal tracking
algorithm
Calculate how customers are reaching
their goals based on their food history.
Calculate how customers are
reaching their goals based on
their food history.
Table 4. Algorithm comparison between real product and prototype
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
22
The calorie needs algorithm for the prototype is a fully functional element. This
algorithm is the same for the RWP and the prototype. It calculates the amount of calories each
customer needs to consume based on their age, gender, activity level according to the USDA
guidelines.
The food variety algorithm in the prototype generates recommended food intake based on
the age, gender, and activity level according to the USDA guidelines. It also produces a list of
foods that customers need to consume based on their nutritional goals and preferences. This
algorithm does not consider family history and diseases because, as it was discussed in section
3.1, the prototype profile does not contain this information.
The nutritional content calculator calculates the nutritional values of ingredients,
percentage of daily goals of ingredients, recipes, and meals. Originally, the nutritional content
calculator was planned to be purchased for the RWP. However, if the implementation of the
prototype nutritional content calculator will be successful, it can be used in the RWP instead.
The food combining guidelines are eliminated from the prototype development. Because
of this, there is no need to implement the food combining guidelines algorithm. It will only be
available in the RWP.
The recipe selection algorithm is fully functional. This algorithm allows Nutricipe
customers to select the desired recipes only from those recipes that satisfy individual needs,
preferences, and nutritional goals. The shopping list generator in the prototype is based on a
customized meal and does not include time of the year and grocery stores features because those
features are only included in the RWP for the sake of convenience.
The food tracking algorithm for the prototype is the fully functional element. It keeps
track of all the meals that the Nutricipe customer generates. This algorithm allows the user to
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
23
store the customized meal and specify the time and date when this meal is going to be consumed.
The customer can track the meals that he or she consumed within a specified timeframe. The
user can also directly select a meal that was previously built without the need to build this meal
again.
The goal tracking algorithm for the prototype is a fully functional element. This
algorithm runs the food tracking algorithm first in order to access the saved meals within a
specific timeframe. Then, it evaluates how the customer is reaching his or her goals based on the
meal history.
3.3
Prototype Features and Capabilities
The Nutricipe prototype solution distinguishes different types of users: personnel
controlling Nutricipe also referred as Admin Users, health club moderators, Nutricipe customers,
and non-authenticated users, also called guests. The Admin User has a special user account used
for system administration. When the Admin User logs in into the Nutricipe system, he or she has
access to the individual account, the capability to create new accounts, modify, activate, and
deactivate existing accounts, has an option to generate user satisfaction survey reports, and has
the ability to make changes to the Nutricipe website.
The health club moderator is the health club representative who has a special Nutricipe
account used for the health club administration purposes. He or she must be authenticated in
order to use his or her administrative privileges. For the sake of prototyping, it is assumed that
only one particular health club uses the Nutricipe prototype solution. Thus, all health club
moderators belong to one selected health club. The health club moderator has the capability to
create new accounts, activate, and deactivate existing accounts for the members of the health
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
24
club that he or she represents. The health club moderator also has access to the user satisfaction
survey results that were generated for that particular health club.
Nutricipe customers are users who have gained access to the solution through purchasing
a Nutricipe subscription directly, obtaining the health club’s membership, or by being a member
of a health clinic using Nutricipe. Nutricipe customers must be authenticated in order to use the
Nutricipe solution. Non-authenticated users can only get familiar with Nutricipe by accessing a
welcome page. In order to proceed further, they must create an account. For the sake of the
prototype, all registered users are assumed to be members of one particular health club. In the
prototype, if the user creates an account, he or she does not need to provide payment
information. He or she will automatically be treated as a member of the selected health club.
Once the Nutricipe customer creates an account, he or she will be able to explore all the features
that Nutricipe is capable of providing. All types of users have different privileges that are
summarized in Figure 3.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
25
Figure 3. Prototype user privileges diagram
The RWP and prototype have the same types of users. However, since it is assumed that
only one particular health club uses the prototype solution, the health clinic moderator is not
included in the prototype. Table 5 provides a summary of the user access differences between the
full Nutricipe solution and the prototype.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
Features
26
Real World Product
Prototype
Guest
Access welcome page, create Access welcome page, create an
an account, pay for individual account
account, gain access to
Nutricipe as a health club
member, gain access to
Nutricipe as a health clinic
member
Authenticated
Nutricipe customer
Access all Nutricipe web
pages, request different
reports, view profile
information, modify profile
information, renew
subscription
Access all Nutricipe web pages,
request different reports, view
profile information, modify profile
information, flag will be set
indicating that all current users
have a valid subscription through
one selected health club
Admin User
Access individual accounts,
create individual accounts,
modify individual accounts,
activate individual profiles,
deactivate individual profiles,
make changes to Nutricipe,
generate analysis reports
Access individual accounts, create
individual accounts, modify
individual accounts, activate
individual profiles, deactivate
individual profiles, make changes
to Nutricipe, generate analysis
reports
Health club moderator
Create, activate, and
deactivate accounts for the
members of the health club
that he or she represents,
generate analysis reports
Create, activate, and deactivate
accounts for the members of the
health club that he or she
represents, generate analysis
reports. All health club moderators
belong to one selected health club
Health clinic moderator
Create, activate, and
deactivate accounts for the
members of the health clinic
that he or she represents,
generate analysis reports
Not included
Table 5. User access comparison between real product and prototype
The guest user in the RWP has more capabilities than the guest user in the prototype.
However, all registered users are assumed to be members of one particular health club for the
prototype. Hence, if the user creates an account in the prototype, he or she does not need to
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
27
provide payment information. He or she will automatically be treated as a member of the
selected health club. Thus, the guest member does not need to be able to provide his or her
payment information. The authenticated Nutricipe customer in the prototype also does not have
an option to renew his or her subscription. Instead, the Admin User or the health club moderator
will be able to deactivate the user account when the health club membership is expired. If the
customer decides to renew his or her health club membership, the Admin User or the health club
moderator can activate his or her account.
The Admin User and the health club moderator are fully functional elements. The only
assumption is made for the prototype is that all the health club moderators belong to one selected
health club where in the RWP they can represent different health clubs. Since the health clinics
are not going to use the prototype, the health clinic moderator is not included.
The Nutricipe customer can access and update his or her profile at any time. He or she
needs to provide personal information about age, gender, and activity level and specify
nutritional goals. He or she can also access the pantry to specify what ingredients are currently
on hand or modify the previously selected ingredients. Once the profile is complete and available
ingredients are specified, he or she can start building a meal. Figure 4 describes the use cases for
Nutricipe customers.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
28
Figure 4. Nutricipe customer use case diagram
The meal builder provides different reports along with the ability to create individual
meals. It displays daily caloric needs, a food variety report, allows a recipe search, provides
nutritional facts on selected ingredients and recipes, and allows Nutricipe customers to create
nutritional meals based on their preferences and nutritional goals. The daily calorie needs report
simply displays how many calories Nutricipe customers need to consume daily. These
calculations are made based on their age, gender, activity level, and the USDA guidelines. Figure
5 illustrates the use case process for the daily calorie needs report.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
29
Figure 5. Use case diagram for daily calorie needs report
The meal builder also offers a food variety report. This report consists of two parts and is
included in the Nutricipe solution for educational purposes. It displays the recommended food
intake message and provides a list of recommended foods. The recommended food intake
message includes information about how much grain, vegetable, fruit, milk, meat and bean, and
oil Nutricipe customers need to consume based on their age, gender, and activity level, according
to the USDA guidelines. A list of recommended foods is based on the nutritional goals that the
user specifies in his or her profile. Figure 6 illustrates the use case process for the food variety
report.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
30
Figure 6. Use case diagram for food variety report
The recipe search report is a part of the meal builder. If Nutricipe customers are only
interested in finding recipes based on their available ingredients and not their nutritional goals,
they have an option to do this. However, if they are aiming to achieve their nutritional goals, it is
beneficial to do a recipe search based on the available ingredients and nutritional goals. In both
cases, recipes are displayed with the percentage of daily goals. The percentage of daily goals
should help Nutricipe customers to make the right selection while building their meals. Figure 7
illustrates the use case process for the recipe selection report.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
31
Figure 7. Use case diagram for recipe search report
The main goal of the meal builder is to allow Nutricipe customers to customize their
meals. When a customer performs a recipe search, he or she can select the recipes he or she likes
and add them to his or her meals. In addition to the recipes, the Nutricipe customer might like
individual ingredients. When the ingredients on hand and recommended foods to achieve
customer nutritional goals are displayed, there is an option to display nutritional facts of any
listed ingredient. The Nutricipe customer can request to view the nutritional facts of the selected
ingredients. Based on the provided information, the customer can make an informed decision on
what ingredients he or she would like to add to the meal. If the Nutricipe customer is not
interested in learning about nutritional facts of individual ingredients, he or she can simply select
the ingredients and add it to the meal. Figure 8 illustrates the use case process for combining
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
32
individual components into a meal.
Figure 8. Use case diagram for combining individual components into a meal
The customized meal consists of the selected recipes, raw ingredients, and prepared
ingredients. Raw and prepared ingredients are selected from the pantry and recommended foods
from the food variety report. Each recipe and individual ingredient in the meal has nutritional
value and percentages of daily goals. Daily goals include the daily caloric goal and the
nutritional goals that the Nutricipe customer selects in his or her profile. The percentages of daily
goals for the entire meal are also provided. Figure 9 illustrates meal components.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
33
Figure 9. Meal component diagram
There are a number of assumptions made for the prototype development. Those
assumptions include every aspect of the prototype implementation. Table 6 provides a summary
of assumptions for the prototype.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
34
Prototype Assumptions
One particular health club is selected as a primary customer.
All Nutricipe users belong to the selected health club. They obtain access to Nutricipe through
their membership.
When the Nutricipe user creates a profile, the billing options are not displayed. Instead, it is
assumed that all users have a valid subscription through the health club membership. The flag
that indicates the payment status is set to true for all registered users.
The Nutricipe user satisfaction survey report is produced by Nutricipe for the selected health
club. This report will prove that Nutricipe helps people to achieve their nutritional goals. It will
also show that customers are satisfied with the Nutricipe solution. In order to produce that
report, every user will be asked if he or she is meeting his or her individual goals and if he or
she is satisfied with Nutricipe. It is assumed that all meals the user consumes are created within
the Nutricipe system.
The USDA nutrient database is freely available at any time.
If the Nutricipe user has available ingredients, it is assumed that he or she has enough to make
any recipe.
When the Nutricipe user indicates his or her likes and dislikes, it is assumed that he or she
definitely likes some foods that are good for him or her.
When a new recipe is added to the recipe database, that recipe only consists of ingredients from
the USDA nutrient database.
The Nutricipe user follows the recipe instructions and monitors the portions on its own.
Nutricipe does not provide cooking instructions for already prepared ingredients. The Nutricipe
user follows the preparation instructions that those ingredients offer.
Before any recipe is stored to the Nutricipe database, it is modified by the company that
provided that recipe according to the Nutricipe database requirements.
Table 6. Prototype assumptions
The Nutricipe prototype simulates the intended real world product with some limitations.
Those limitations are not significant and do not affect the goals and objectives of the Nutricipe
solution. Table 7 compares some additional features between the real product and the prototype.
[This space intentionally left blank]
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
Features
35
Real World Product
Prototype
Web application
Included
Included
Mobile application
Included
Not included
Client stand-alone
application
Included
Not included
Google Ads
Included
Not included
Web server
Web servers
ODU CS department web server
Liability
Legal disclaimer, HIPAA
privacy
The user will need to accept the
terms and conditions before
proceeding with creating a profile.
The Nutricipe prototype will be
released from any legal
responsibilities.
Authentication, profile
security, website security
HTTP Authentication,
access control mechanism
implementation for
authorization.
Nutricipe users can only access
their personal accounts using their
username and password.
Table 7. Additional features comparison between real product and prototype
The Nutricipe prototype is a web-based solution only. It will be widely accessible via the
Nutricipe website. The mobile application and client stand-alone application are not developed
for the prototype because they do not carry an innovative aspect of the Nutricipe solution. They
are only developed in the RWP for the purpose of convenience.
Google Ads allow the Nutricipe product to earn additional revenue by displaying relevant
advertisements on the Nutricipe website. This will help to generate more profit and eventually
reduce the membership fees. Because the purpose of the Nutricipe prototype is not to earn
revenue but to prove the concept, usefulness, and usability, Google Ads will not be included in
the prototype.
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
36
The Nutricipe prototype will not be liable for any perceived damage or personal
negligence arising from the use of Nutricipe. The Nutricipe users must accept the terms and
conditions before proceeding with using the Nutricipe solution. In the RWP, the responsibility
for handling all legal risks will be transferred to Nutricipe’s lawyer. However, in the prototype,
damages emanating from misuse of Nutricipe are solely owned by the offending user as it is
stated in the terms and conditions that every user must accept.
3.4
Prototype Development Challenge
One of the important goals of prototype development is risk mitigation. One of the
scheduling risks of the real Nutricipe product is the inability to obtain database hosting. Finding
database hosting is a critical section on the road to release Nutricipe product. If an affordable
host for the Nutricipe database cannot be found, finishing the project must wait until a database
host is obtained. Since a free database hosting through ODU Computer Science Department is
used for the Nutricipe prototype development, this scheduling risk is mitigated. This database
hosting can satisfy all the current needs for the Nutricipe prototype development. If it will be
necessary to settle for a more expensive and advanced database hosting in the future, it can be
easily accomplished without a need to redo the already developed prototype solution.
Another risk that is considered for the RWP is the lack of approval from the health clubs
and medical clinics. Since the Nutricipe prototype offers the same functionality as the RWP,
those facilities will be able to do beta testing of the prototype product, offer it to the customers,
and receive Nutricipe customers’ goal achievement reports to examine if the Nutricipe solution is
capable of helping customers to accomplish their goals as it claims it can.
There are a number of challenges that need to be overcome during the Nutricipe
prototype implementation as well. The prototype implementation includes three critical paths:
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
37
GUI development, algorithm development, and database development. While every team focuses
on its own tasks, they must communicate and work close with each other. Both the algorithm and
GUI team need to have a great understanding of the database design and stored data. Since the
Nutricipe database contains a variety of information about nutrition, recipes, and profiles that are
used by the GUI and algorithm teams, it might be necessary to redesign, normalize or
denormalize the current database depending on those teams’ requirements and performance
reviews.
The GUI team and the algorithm team need to retrieve data from the database in order to
accomplish their tasks. It will be implemented in the SQL queries. The biggest challenge is to
manage many complex queries as it can decrease the performance. To increase the performance,
indexes for the queries can be rearranged.
In order to develop the Nutricipe prototype, it is necessary to use PHP and SQL
languages. PHP and SQL are used as scripting implementation on an Apache web server and
interact with the MySQL database server. They allow accessing a database on the server from a
website and giving the website more advanced features. While all members of the Blue Team are
familiar with PHP and SQL, most of the members do not have real work experience with those
languages. This can slow down the implementation of the prototype.
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
38
GLOSSARY
Admin User: Persons controlling Nutricipe.
Algorithm: A set of commands to serve a particular purpose.
Application Programming Interface (API): An interface implemented by a software program
that enables it to interact with other software.
Client stand-alone application: An application that can work offline.
Database (DB): A collection of information that is organized so that it can easily be accessed,
managed, and updated.
Denormalization: A process of adding redundant data in the database in order to optimize the
read performance in the database.
Graphical user interface (GUI): A type of user interface that allows users to interact with
programs in different ways.
Health club moderator: A health club representative who has a special Nutricipe account used
for the health club administration purposes.
Hypertext Transfer Protocol (HTTP): A networking protocol for distributed, collaborative,
hypermedia information systems.
Hypertext Processor (PHP): A server-side programming language designed for building
dynamic Web pages.
Ingredients: Any individual raw or prepared food items included in the USDA nutrient
database.
Meal: A combination of recipes and ingredients.
MFCD: Major functional component diagram.
MySQL: An open source multi-user database management system.
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
39
Normalization: A process of removing redundant data from tables in the database in order to
improve storage efficiency, data integrity, and scalability.
Nutricipe customer: A user who has gained access to Nutricipe through purchasing it directly,
obtaining the health club’s memberships, or being members of the health clinics and who
is operating Nutricipe.
Nutricipe database: A database that serves the purpose of the Nutricipe solution and combines
the USDA National Nutrient Database, the recipe database, and the user profile database.
Nutricipe user: The same as Nutricipe customer.
Recipe: A set of the following components: the name, how much time it will take to prepare the
dish, the required ingredients along with their quantities, preparation instructions, the
number of servings that the recipe will provide and nutrition facts.
Recipe database: A part of the Nutricipe database that stores the content of recipes from the
USDA recipe database and third party databases.
RWP: Real world product.
Schema: Defines the tables, the fields in each table, and the relationships between fields and
tables in the database.
Server: A computer program that provides services to other computer programs and their users.
Shopping list: A list of ingredients generated for shopping purposes.
Query: A request for information from a database.
User Interface (UI): A system which people use to interact with computers.
USDA: United States Department of Agriculture.
USDA National Nutrient Database: A database of the nutritional content of food items
produced by the United States Department of Agriculture.
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
User profile database: A part of the Nutricipe database that stores the user personal
information.
Web Server: A computer program that delivers web pages using HTTP over the World Wide
Web.
40
LAB 1 – NUTRICIPE PRODUCT DESCRIPTION
41
REFERENCES
American Journal of Clinical Nutrition. (n.d.). How do healthy people stay healthy. Retrieved
from
http://www.diseaseeducation.com/wellness/How_Healthy_People_Stay_Healthy.php
International Health, Racquet and Sportsclub Association. (2010) Industry research. Retrieved
from
http://cms.ihrsa.org/index.cfm?fuseaction=Page.viewPage&pageId=19547&parentID=18
737&grandparentID=21437&nodeID=15
Roth, R. (2007). Nutrition & diet therapy. Clifton Park, NY: Thomson/Delmar Learning
Sansolo, M. (2004). The next big thing? Retrieved from
http://www.factsfiguresfuture.com/archive/october_2004.htm
USDA Center for Nutrition Policy and Promotion. (2005). Healthy eating index. Retrieved from
http://www.cnpp.usda.gov/HealthyEatingIndex.htm
World Cancer Research Fund. (2009). Millions unaware that unhealthy diet increases cancer
risk. Retrieved from http://www.nursingtimes.net/whats-new-in-nursing/millionsunaware-that-unhealthy-diet-increases-cancer-risk/1991181.article
.
Download