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 .