Running head: LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION Lab 2 – Nutricipe Prototype Product Specification Olga V Gallup CS411 Professor Janet Brunelle Old Dominion University November 30, 2010 V2.2 1 LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 2 Table of Contents 1 INTRODUCTION ...................................................................................................................4 1.1 Purpose ............................................................................................................................. 5 1.2 Scope ................................................................................................................................ 8 1.3 Definitions, Acronyms, and Abbreviations .................................................................... 22 1.4 References ...................................................................................................................... 25 1.5 Overview ........................................................................................................................ 26 2 GENERAL DESCRIPTION ..................................................................................................26 2.1 Prototype Architecture Description ................................................................................ 27 2.2 Prototype Functional Description................................................................................... 28 2.3 External Interfaces.......................................................................................................... 36 2.3.1 Hardware Interfaces .................................................................................................36 2.3.2 Software Interfaces ..................................................................................................37 2.3.3 User Interfaces .........................................................................................................37 2.3.4 Communications Protocols and Interfaces ...............................................................39 3. SPECIFIC REQUIREMENTS...............................................................................................39 3.1 Functional Requirements................................................................................................ 39 3.2 Performance Requirements ............................................................................................ 40 3.3 Assumptions and Constraints ......................................................................................... 40 3.3.1 Assumptions.............................................................................................................42 3.3.2 Constraints ...............................................................................................................43 3.3.3 Dependencies ...........................................................................................................44 3.4 NON-FUNCTIONAL REQUIREMENTS .................................................................... 45 3.4.1 Security ....................................................................................................................45 3.4.2 Maintainability .........................................................................................................45 3.4.3 Reliability.................................................................................................................46 List of Figures Figure 1. Prototype Major Functional Component Diagram.........................................................27 Figure 2. Prototype User Privileges Diagram................................................................................30 Figure 3. Nutricipe Process Flow ..................................................................................................31 Figure 4. Daily Caloric Needs Process Flow.................................................................................32 Figure 5. Food Variety Process Flow ............................................................................................33 Figure 6. Recipe Search Process Flow ..........................................................................................34 Figure 7. Meal Builder Process Flow ............................................................................................35 Figure 8. Meal Component Diagram .............................................................................................36 Figure 9. Nutricipe Site Map .........................................................................................................38 LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 3 List of Tables Table 1. Profile Comparison Between Real Product and Prototype ..............................................10 Table 2. Nutricipe Prototype Reports ............................................................................................12 Table 3. Database Comparison Between Real Product and Prototype ..........................................14 Table 4. Algorithm Comparison Between Real Product and Prototype ........................................16 Table 5. User Access Comparison Between Real Product and Prototype .....................................19 Table 6. Additional Features Comparison Between Real Product and Prototype .........................21 Table 7. Effects of Assumptions, Dependencies, and Constraints on Requirements ....................42 [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 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 United States 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, and even certain cancers (Roth, 2007). LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 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. 1.1 Purpose 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 a variety of foods based on personal needs and goals in their diet. It 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 6 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 nutritional goals. Customers will also have shopping list generated by Nutricipe, so that they will always have the necessary ingredients on hand. Nutricipe is accessed through a website that presents the user information in a clear, concise manner. It offers very basic authentication, consisting of a username and password. Only authenticated users can proceed with using the Nutricipe website. They will be able to use all of its features. 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 to 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 7 ingredients, likes, and dislikes. They will also be able to set nutritional goals from the selection of provided categories. Nutricipe is a meal planning tool that offers a meal builder option, recommends diets that will provide all the nutrients needed for growth and health, and educates users about right food choices. In order to offer these options to the customers, Nutricipe provides the following features to them: daily calorie needs message, food variety, 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. The Nutricipe user has an option to build a meal by searching different Nutricipe provided 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. 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 and health club moderators 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 solution and how helpful they find it in achieving their nutritional goals. Based on the provided data, a user satisfaction survey report is generated. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 8 The Nutricipe solution will not check the accuracy of inputted customer information and treat diseases. It will not provide the food combining guidelines as they are not essential to the success of Nutricipe. Nutricipe will not be marketed as a weight loss oriented product. It will not guarantee the amount of calories in prepared meals because it solely depends on how the customers follow the preparation instructions. It will not control the serving size of prepared meals. Also, Nutricipe will not provide any guarantees about nutritional information for the recipes from the third party recipe databanks. However, only reliable sources will be used in order to obtain all the recipes. Because Nutricipe is aimed at individuals who are interested in improving their diets and learning about healthy nutrition, it will be targeted to fitness centers. 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. 1.2 Scope 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 customers to build LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 9 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. 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION Profile Real World Product 10 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 database. 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 11 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 12 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 13 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 report. 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. 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. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION Stored Data Real World Product 14 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 eaten 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 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 LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 15 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 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION Algorithms Real World Product 16 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 17 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 earlier, 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 is 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 18 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. 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. Different user types and their privileges will be further discussed in section 2.2. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION Features Real World Product 19 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 20 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 customers in the prototype also do not have an option to renew their subscriptions by themselves. 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. The Nutricipe prototype simulates the intended RWP with some limitations. Those limitations are not significant and do not affect the goals and objectives of the Nutricipe solution. Table 6 compares some additional features between the real product and the prototype. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION Features Real World Product 21 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 6. 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 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 22 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. 1.3 Definitions, Acronyms, and Abbreviations 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. Array: A collection of data items that can be selected by indices. Cascading Style Sheets (CSS): A style sheet language used to describe the look and formatting of a document written in a markup language. 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. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 23 Hypertext Markup Language (HTML): A language used to create web pages. 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. Interface: A point of interaction between components, hardware and/or software. JavaScript: An object-oriented scripting language developed to offer dynamic control over the various elements within an HTML document. jQuery: A fast and concise JavaScript library that makes it easier to handle events, navigate a document, and create advanced effects. jQUI: An official jQuery user interface library that provides advanced effects and high-level widgets built on top of the jQuery JavaScript library. Meal: A combination of recipes and ingredients. MFCD: Major functional component diagram. MySQL: An open source multi-user database management system. 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. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 24 Nutricipe user: The same as Nutricipe customer. Personal computer (PC): Any general-purpose computer. Plugin: A set of software components that adds specific capabilities to a larger software application. Query: A request for information from a database. 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. Tablesorter: A jQuery plugin for turning a standard HTML table into a sorted table. ThemeRoller: A web app that offers a fun and intuitive interface for designing and downloading custom themes for jQUI. Transmission Control Protocol/Internet Protocol (TCP/IP): A set of general design guidelines and implementations of specific networking protocols to enable computers to communicate over a network. Uniform Resource Locator (URL): An identifier that specifies where an identified resource is available and the mechanism for retrieving it. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 25 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. 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. 1.4 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 LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 1.5 26 Overview This product specification document provides a comprehensive explanation of the Nutricipe prototype’s hardware, software, external interfaces, capabilities, and features. The information provided in the remaining sections of this document includes a detailed description of the prototype architecture, prototype functional description, and detailed overview of the hardware, software, and user interfaces. It also describes the key features of the prototype, their functional requirements, and the performance characteristics of these features in terms of inputs, outputs, and user interaction. 2 GENERAL DESCRIPTION The Nutricipe prototype will effectively demonstrate the key features of the RWP. Users will be able to access Nutricipe via the website. They will be able to register, populate their profiles, request different reports, use a meal builder to generate customized meals, track their food intakes and goals. They will also be able to fill out a user satisfaction survey to report how helpful they find the Nutricipe product to be. The administrative personnel and health club moderators will be able to perform administrative tasks. The administrative personnel privileges include, but are not limited to, accessing existing accounts, creating new accounts, activating previously deactivated accounts, deactivating existing accounts, and generating the user satisfaction survey report. The health club moderators will be able to activate and deactivate users who belong to the particular health club. They will also be able to generate the user satisfaction survey report. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 2.1 Prototype Architecture Description The major functional components of the Nutricipe prototype are illustrated in Figure 1. 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. Figure 1. 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 27 LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 28 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. Admin and user interfaces will be created for the Nutricipe website. The website is built using PHP, MySQL queries, HTML, CSS, and JavaScript. 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 compared to the RWP database. 2.2 Prototype Functional Description Nutricipe is a web-based solution. The Nutricipe website will be developed to allow users to experience the full scope of functionalities that the Nutricipe product offers. It will be designed in a user-friendly manner to ensure ease of use. 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 account used for system administration. When the Admin User logs 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 LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 29 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 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 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 2. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 30 Figure 2. Prototype User Privileges Diagram 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 builder 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 3 describes the Nutricipe process flow. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 31 Figure 3. Nutricipe Process Flow 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. The displayed calculations are made based on their age, gender, activity level, and the USDA guidelines. Figure 4 illustrates the use case process for the daily calorie needs report. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 32 Figure 4. Daily Caloric Needs Process Flow 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 5 illustrates the use case process for the food variety report. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 33 Figure 5. Food Variety Process Flow 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 selections while building their meals. Figure 6 illustrates the use case process for the recipe selection report. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 34 Figure 6. Recipe Search Process Flow 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 7 illustrates the process flow for combining recipes LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 35 and single ingredients into a meal. Figure 7. Meal Builder Process Flow 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 8 illustrates meal components. [This space intentionally left blank] LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 36 Figure 8. Meal Component Diagram 2.3 External Interfaces This section will identify the physical and logical interfaces used by the Nutricipe prototype. The interfaces to be discussed in this section will include the hardware, software, user interfaces, and the communication protocols of the interfaces. External interfaces will be limited to standard PC hardware and freely available software. The only custom interface will be the Nutricipe website. 2.3.1 Hardware Interfaces No hardware interfaces will be built for this prototype. An ODU classroom PC will be used to allow a test user to interface with the Nutricipe website via the ODU network. The LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 37 Nutricipe website will be hosted on an ODU Apache web-server. An ODU laptop will be used to monitor database contents. 2.3.2 Software Interfaces Group members will interface with the MySQL database via SQL queries using PHP. The reason for using PHP as an interface to MySQL database is to format the results of SQL queries in a form visible in a web page. Using PHP, instead of using MySQL’s command line to enter instructions and view output, query strings that are passed to MySQL are created. When MySQL returns its response, it will come as a data structure that PHP can recognize instead of the command line output. Because all calls to MySQL database can be made directly without having to use a command-line interface, it will allow saving the results in arrays for processing and performing multiple lookups, each dependent on the results returned from earlier ones, to drill down to the item of needed data. In addition, PHP commands can retrieve the data and format it for the web page. PHP web pages will be developed using standard text editing tools. 2.3.3 User Interfaces The user interface is the Nutricipe website which may be accessed by any Internetconnected PC with a web browser. The website provides the Nutricipe user interface and admin interface. It also authenticates the user in order to distinguish what is accessible for him or her. The Nutricipe user interface will permit new users to register and allow existing users to log in, populate or update their profiles, generate different reports, build meals by using a meal builder, track their food intakes and goals, and fill out the user satisfaction survey. The admin interface will allow the health club moderators to generate the user satisfaction survey reports. It will also allow the Admin User to maintain accounts, make changes to the Nutricipe website, and generate the user satisfaction survey reports. Figure 9 illustrates the Nutricipe site map. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 38 Figure 9. Nutricipe Site Map The Nutricipe website will use clean URLs that do not contain a query string and instead, contain only the path of the resource. The main reason of using clean URLs is for the search engine optimizations. It is also used for the usability and accessibility improvements. In order to keep track of users, the object-oriented sessions will be used for the web development. The user must be authenticated first. Once the user is authenticated, the session is created for that user. All session variables are stored in the session array. When the user requests to log out from the website, the function is called to destroy the session, log the user out, and unset all session variables. The Nutricipe website user will interact with PHP and MySQL through the use of HTML forms. The website will present different forms to the user. These forms include, but are not limited to, registration, profile, recipe search, and pantry builder forms. The user is required to enter the data into the form. This data is then sent to the web server, where it is interpreted with some error checking. If the PHP code identifies one or more fields that require reentering, the form will be redisplayed with an error message. If the input is accurate, the PHP code gets that data and either stores it in the database or passes the data to the algorithms. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 39 In order to allow the user-selectable themes and improve layout and functionality, jQuery, jQUI, ThemeRoller, and Tablesorter are used for the web development. jQuery is a fast and concise JavaScript library that makes it easier to handle events, navigate a document, and create advanced effects. jQUI provides advanced effects and high-level widgets built on top of the jQuery JavaScript library. One of its features, ThemeRoller, is used for the Nutricipe website. ThemeRoller is a web application that offers a fun and intuitive interface for designing and downloading custom themes for jQUI. One of the pre-designed themes will be chosen for the Nutricipe website. Tablesorter is a jQuery plugin for turning a standard HTML table into a sorted table. Using these technologies will contribute to the creation of powerful and dynamic web pages. 2.3.4 Communications Protocols and Interfaces There are two protocols that are used for the Nutricipe product. The first one is the Transmission Control Protocol/Internet Protocol (TCP/IP) over a standard Ethernet connection. The second protocol is the Hypertext Transfer Protocol (HTTP) for the World Wide Web communication. 3. SPECIFIC REQUIREMENTS The following section describes the specific functional, performance, and non-functional requirements of the Nutricipe prototype. It also includes the assumptions and constraints of the Nutricipe prototype. In order for the prototype to be successful, all functional requirements must be met. The non-functional requirements will include security, maintainability, and reliability. 3.1 Functional Requirements Please see the team’s collaborative version. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 3.2 40 Performance Requirements Please see the team’s collaborative version. 3.3 Assumptions and Constraints There are a number of assumptions, constraints, and dependencies made for the prototype development. They include every aspect of the prototype implementation. Table 7 contains the full list of assumptions, constraints, and dependencies for the prototype. Condition Type Effects on Requirements The speed of a user’s Internet connection can vary widely. Assumption Individual web page response time will not be tested. The Nutricipe prototype will not have user scaling issues. Assumption The Nutricipe prototype will only be tested with a minimal number of registered users. The domain name provided in an authentication request is valid. Assumption Allows for minimal error checking for the purposes of developing and demonstrating the prototype. One particular health club is selected Assumption as a primary customer. Allows for simplified report process. All Nutricipe users belong to the selected health club. Assumption User’s payment information will not be verified. Access to Nutricipe is obtained through the membership. All meals that users consume are created within the Nutricipe system. Assumption Nutricipe users’ goal achievement report is produced by Nutricipe for the selected health club. This report will prove that Nutricipe helps people to achieve their nutritional goals. In order to produce that report, every user will be asked if he is meeting his individual goals after consuming Nutricipe customized meals. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION Condition Type Effects on Requirements If Nutricipe users have available ingredients, they have enough to make any recipe. Assumption Recipe search does not take into account the quantity of ingredients on hand. When Nutricipe users indicate their likes and dislikes, they definitely like some foods that are good for them. Assumption Allows for minimal error checking for the purpose of developing and demonstrating the prototype. When new recipe is added to the recipe database, that recipe only consists of ingredients from the USDA National Nutrient Database. Assumption Allows for minimal error checking and avoidance of adding new ingredients to the Nutricipe database. Nutricipe user follows the recipe instructions and monitors the portions on its own. Assumption The prototype is only responsible for providing reports to the customers. Nutricipe does not provide cooking instructions for already prepared ingredients. The Nutricipe user follows the preparation instructions that those ingredients offer. Assumption The prototype only provides cooking instructions for the selected recipes. 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. Constraint Allows for minimal error checking and easy database data loading since recipe data is presented in the suitable form. Data transfer that would normally be performed via an encrypted connection will be done in plain text. Constraint Simplifies the tasks of monitoring and demonstration. Only two nutritional goals are included in the prototype. Constraint While the full product will have a variety of different nutritional goals, in the prototype, Nutricipe customers will only be able to select their nutritional goals from the two offered choices. 41 LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION Condition Type 42 Effects on Requirements Nutricipe user profile will not include customer’s family history and diseases. Constraint While the full product will have fully customizable reports, the prototype will only generate reports based on the user personal information, preferences, and nutritional goals. An Internet connection is available at the time of demonstration. Dependency The prototype cannot be demonstrated without Internet. ODU servers will be available to host Nutricipe components, and the necessary software can be installed. Dependency If this is not the case, personal hardware would need to be utilized or purchased. USDA nutrient database is freely available at any time. Dependency If this is not the case, the updated USDA nutrient database would need to be purchased to incorporate most recent nutritional changes and additions. Table 7. Effects of Assumptions, Dependencies, and Constraints on Requirements 3.3.1 Assumptions 11 assumptions are being made. First, the speed of a user's Internet connection can vary widely, and it is outside of Nutricipe's control. Accordingly, individual web page response times will not be tested. Second, the prototype will not have user scaling issues, so only a minimal number of user accounts will be demonstrated. Third, the domain name provided in an authentication request is assumed to be valid. Limiting the possible domain names reduces the amount of error checking for the purposes of developing and demonstrating the prototype. Forth, only one particular health club is selected as a primary customer. All health club moderators will belong to this particular health club. This will allow for simplified report process. Fifth, all Nutricipe users belong to the selected health club. They will obtain access to Nutricipe through their health club membership. Their payment information will not be required. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 43 Sixth, all meals that users consume are created within the Nutricipe system. This assumption will help to produce valid user satisfaction survey reports. When users fill out that survey, they will answer questions based on the assumption that they only consume Nutricipe meals. Seventh, if Nutricipe users have available ingredients, they have enough to make any recipe. Thus, the recipe search does not take into account the quantity of ingredients on hand. Eighth, when Nutricipe users indicate their likes and dislikes, they definitely like some foods that are good for them. Otherwise, if they dislike all nutritional foods, it would be impossible for Nutricipe to find healthy recipes and to accommodate customers’ preferences at the same time. Ninth, when new recipe is added to the recipe database, that recipe only consists of ingredients from the USDA National Nutrient Database. Every recipe has a list of ingredients in the database. Those ingredients are mapped to the USDA National Nutrient Database in order to access nutritional information about those ingredients. Tenth, the Nutricipe user follows the recipe instructions and monitors the portions on its own. Nutricipe will not control the serving size nor will it guarantee that the user followed the instructions correctly. The final assumption is that Nutricipe does not provide cooking instructions for already prepared ingredients. The Nutricipe user follows the preparation instructions that those ingredients offer. The Nutricipe solution only provides cooking instructions for the selected recipes. 3.3.2 Constraints A number of constraints will be used to limit the scope of the prototype, to simplify the development process, and to focus on the innovative aspects of the service. There are four constraints that have particular importance. First, before any recipe is stored to the Nutricipe database, it is modified by the company that provided that recipe according to the Nutricipe LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 44 database requirements. It will allow for the fast and easy database loading process. Second, data transfers that would normally be performed via an encrypted connection will be done in plain text for monitoring and demonstration purposes. Third, only two nutritional goals are included in the prototype. While the full product will have a variety of different nutritional goals, in the prototype, Nutricipe customers will only be able to select their nutritional goals from the two offered choices. The two nutritional goals selected for the prototype are calcium intake increase and vitamin C intake increase. Finally, the Nutricipe user profile will not include customer’s family history and diseases. While the full product will have fully customizable reports, the prototype will only generate reports based on the user personal information, preferences, and nutritional goals. 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 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. 3.3.3 Dependencies There are three dependencies that have been identified for the Nutricipe prototype. Network and Internet connections must be available at the time of the demonstration. The prototype cannot be demonstrated without these connections. The second dependency recognizes that ODU servers are expected to be available to host the Nutricipe components. Required software must also be installed. If this is not the case, personal hardware would need to be utilized. Finally, the USDA nutrient database must be freely available at any time. If this is not LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 45 the case, the updated USDA nutrient database would need to be purchased to incorporate most recent nutritional changes and additions. 3.4 NON-FUNCTIONAL REQUIREMENTS Non-functional requirements address features of the prototype that are outside of the core innovative functionality. Non-functional requirements include security, maintainability, and reliability. Security is important to keep the integrity of the system. Maintainability and reliability are important in any product for the customer satisfaction. 3.4.1 Security The prototype will demonstrate access control, administration, and basic authentication. Each user will have a different level of access based on the user type. Only Admin Users will have administrative privileges. Other users will only be able to access their own information. Authentication will be very basic, consisting of a username and password. 3.4.2 Maintainability Since the Nutricipe prototype is a web-based solution, it will allow for the low cost maintenance. The website will be built using the dynamic approach. Instead of just using the same HTML code on every page, sets of functions will be called automatically based on what page is being viewed. The Nutricipe database will be manually populated with the recipes and nutritional data by the developers prior to the demonstration of the Nutricipe prototype. The USDA National Nutrient Database will be imported directly to the Nutricipe database by the developers prior to the Nutricipe solution demonstration. To access different accounts, to maintain the Nutricipe product, and to make changes to the Nutricipe website, the administrative accounts will be used. LAB 2 – NUTRICIPE PROTOTYPE PRODUCT SPECIFICATION 46 3.4.3 Reliability Nutricipe must be very reliable, since the information being handled is important. All produced reports must be accurate, consistent, and valid. Access to the Nutricipe website must be available at all times. A disclaimer will be included in the product to remove responsibility from Nutricipe if there are any health related issues.