Dietlicious By: Sawaira Kiran 2225 Muqadas Hassan 2570 Supervised by: Ms. Shumaila Iqbal Faculty of Computing Riphah International University, Islamabad Spring/Fall 2019 A Dissertation Submitted To Faculty of Computing, Riphah International University, Islamabad As a Partial Fulfillment of the Requirement for the Award of the Degree of Bachelors of Science in Software Engineering Faculty of Computing Riphah International University, Islamabad Date: 06/07/2022 4 Final Approval This is to certify that we have read the report submitted by Sawaira Kiran (2225), Muqadas Hassan (2570) for the partial fulfillment of the requirements for the degree of the Bachelors of Science in Software Engineering (BSSE). It is our judgment that this report is of sufficient standard to warrant its acceptance by Riphah International University, Islamabad for the degree of Bachelors of Science in Software Engineering (BSSE). Committee: 1 Ms.Shumaila Iqbal (Supervisor) 2 Dr. Tahira Nazir (Head of Department/chairman) 5 Declaration We hereby declare that this document “Dietlicious” neither as a whole nor as a part has been copied out from any source. It is further declared that we have done this project with the accompanied report entirely on the basis of our personal efforts, under the proficient guidance of our teachers especially our supervisor Ms.Shumaila Iqbal. If any part of the system is proved to be copied out from any source or found to be reproduction of any project from anywhere else, we shall stand by the consequences. Sawaira Kiran 2225 Muqadas Hassan 2570 6 Dedication This project is dedicated to all the clients who are struggling to maintain their healthy lifestyle and want to get recommendations(diets, workouts) without consuming resources(time,cost,effort).We extend our genuine gratitude to our parents for being our pillars of support and to our teachers for being a constant source of guidance. 7 Acknowledgement First of all we are obliged to Allah Almighty the Merciful, the Beneficent and the source of all Knowledge, for granting us the courage and knowledge to complete this Project. We would like to extend our sincere regards to people for their support throughout our project. First of all, we would like to extend our sincere gratitude to our supervisor, for her enthusiasm, patience, insightful comments, helpful knowledge, helpful advices and feedbacks that have always helped us in our project. Without her support and guidance, this work would be impossible. We extend our warmest regards to our teachers for guiding us giving us immense knowledge that we were able to apply in this project. Sawaira Kiran 2225 Muqadas Hassan 2570 8 Abstract Dietlicious is an application that provides guidance to clients for maintaining their healthy lifestyle. As people are having busy schedule so they don’t get time to visit dietitian and gym trainer. There are so many applications for diet and workout recommendations but there is no such application that has all features of diet plans and workouts in one single platform and also as so many people are unware of diets to be followed during diseases.so our application recommend diet plans to clients having diseases and allergic to food. Clients will enter details and calories are calculated through calories counter and on basis of calories, clients will get diet plans and workout recommendations. Also clients can get assistance from dietitians and gym trainers through appointment booking. 9 Table of Contents List of Figures 12 List of Tables 13 Chapter 1: Introduction 15 1.1 Opportunity & Stakeholders 16 1.2 Motivations and Challenges 17 1.3 Goals and Objectives 6 1.4 Solution Overview 18 1.5 Report Outline 19 Chapter 2: Literature / Market Survey 20 2.1 Introduction 21 2.2 Literature Review/Technologies Overview 21 2.3 Summary 22 Chapter 3: Requirement Analysis 23 3.1 Introduction 24 3.2 Problem Scenarios 25 3.3 Functional Requirements 25 Chapter 4: System Design 32 4.1 Introduction 33 4.3 Detailed Design 33 Chapter 5: Implementation 79 5.1 Endeavour (Team + Work + Way of Working) 80 5.3 Components, Libraries, Web Services and stubs 81 5.4 Best Practices / Coding Standards 81 5.5 Deployment Environment 81 5.6 Summary 82 Chapter 6: Testing and Evaluation 83 6.1 Introduction 84 6.2 List of Test Scenarios 84 6.3 Summary 99 Chapter 7: Conclusion and Outlook 7.1 Introduction 100 101 10 7.2 Achievements and Improvements 101 7.3 Critical Review 101 7.4 Future Recommendations/Outlook 101 7.5 Summary 101 References 103 Appendices 104 Appendix-A: Software Requirements Specifications (SRS) 104 Appendix-B: Design Documents(Fully dressed) 113 Appendix-C: Work Breakdown Structure 128 Appendix-D: Roles & Responsibility Matrix 129 11 List of Figures 4.2.1 Admin use case diagram 32 4.2.2 Client use case diagram 33 4.2.3 Gym trainer use case diagram 34 4.3.4 Dietitian use case diagram 35 4.3.1 Client login 36 4.3.2 Client registration 37 4.3.3 Get diet plan recommendation 38 4.3.4 Get workout plan recommendation 39 4.3.5 Book appointment 40 4.3.6 Dietitian registration 41 4.3.7 Dietitian login 42 4.3.8 Add diet plan 43 4.3.9 Delete diet plan 44 4.3.10 Update diet plan 45 4.3.11 Add profile 46 4.3.12 Delete profile 47 4.3.13 Update profile 48 4.3.14 Add suggestions(gym trainer) 49 4.3.15 Add suggestions (dietitian) 50 4.3.16 Add workout 51 4.3.17 Update workout 52 4.3.18 Delete workout 53 4.3.19 Add recipes 54 4.3.20 Update recipes 55 4.3.21 Delete recipes 55 12 List of Tables 2.2 Existing systems 21 13 Chapter 1: Introduction 14 Chapter 1: Introduction 1.1 Opportunity & Stakeholder 1.1.1 Opportunity Dietlicious is an android application that will provide guidance to clients for diet plans along with the recipes and exercises on the basis of their preferences (gain, loss and ideal weight). Application will use calories counter to achieve client goal weight. Clients don’t need to visit nutritionist/dietitian and gym trainers and don’t need to pay high cost. It will also give awareness of diet plans that should be following during diseases. It acts as a diet consultant similar to a real dietician and gym trainers. 1.1.2 Stakeholders Primary Stakeholders 1. Admin Admin will manage the application. Admin will manage (add, delete) the dietitian and gym trainer and also be able to view suggestions by users. 2. Client Client can create their accounts and can view diet plans and exercises. They can also give suggestions to an application. 3. Dietitian Dietitian can create their accounts. They can manage diet plans and recipes. They can give suggestions to an application. Further they can also give assistance to clients. 4. Gym trainer Gym trainer can create their accounts. They can manage workout plans and will also give assistance to clients. They can also give suggestions to an application 15 Secondary Stakeholders: 1. Development Team Project team is developer of Dietlicious. 2. Supervisor Supervisor will supervise the project. 3. Database 4. 1.2 You tube Motivation & Challenges 1.2.1 Motivation In current situation, many applications exists but if one application is giving features, that are missed in another like if one application is giving recommendations for diet plans other may be giving only workout recommendations and both are not providing guidance to people,what plans they have to follow. So there is need of an application that has all these features embedded in single platform that help clients to maintain their healthy lifestyle and to achieve their goal weights. 1.2.2 Challenges Requirements elicitation is most critical and important phase of every project so there were lot of government issues due to which most of time classes was held online so there was lack of communication. Also we have to interview dietitian and gym trainer to gather requirements like how they recommend diet plans and workout plans to clinets.so appointment booking was an issue. 16 1.3 Goals and Objectives GOALS OBJECTIVES Recommend diet plans and workout plans To recommend diet plans and workout plans to clients based on their requirements (lose, gain, ideal weight) Give awareness of diets during diseases. 1.3 Recommend diet plans to clients who are having diseases and food allergies. Solution Overview We proposed a mobile-based dietlicious that recommends healthy diet plans along with recipes and exercises to the user, based on their requirements such as weight gain, idealize, loss and diet plans. It acts as a diet consultant similar to a real dietician and gym trainers. Dietitian can manage diet plans. Gym trainers will also manage /workout plans. Further site offers full body workout plan. 1.4 Summary Outline This report summarizes all the processes and phases that Dietlicious has undertaken to complete. The report first outlines the proposed plan, including the motivation for the team to develop the plan, the challenges it faces, the goals the program aims to achieve and how the plan will meet the targets set. In addition, features review is done to analyze existing systems, in order to achieve something new. After studying the existing systems, user requirements were collected, analyzed, prioritized and finalized using a variety of search strategies. After finalizing the user needs, the project has entered its design phase. The project design was edited and visualized using various UML diagrams. The construction of the system from the design stages to the next phase, namely the prototypes. System requirements were properly tested for bugs. Finally, in the concluding chapter, the system successes, the improvements made, and the development that the system can do in the future are mentioned. 17 18 Chapter 2: Literature/ Market Survey 19 Chapter 2: Literature/ Market Survey 2.1 Introduction Several applications exists that recommend diet plans and workout plans, many systems offering this functionality have already been done but there is no such an application that have all collectively all these features like recommend diet plans, workouts and plans to be followed in one single platform. 2.2 Literature Review Technologies Review We have researched several web application, mobile application and research papers and then we have created a detailed survey table of the existing system. There was no such single platform that has all those features which we are providing. Our application will provide some important features which were missing in existing system like exercises diet plan that should be Features of all the existing systems are comprehensively compared in table 1.0. 20 Tabel 1.0 Existing systems 2.3 Summary Currently there is no such an application that have all the features collectively in it like many applications exists that have these features but if one application is providing feature, in other its missing. 21 Chapter 3: Requirement Analysis 22 Chapter 3: Requirement Analysis 3.1 Introduction Functional requirements determine the overall performance of the system, and nonfunctional requirements determine the quality attributes of the system. To meet the needs of users, a number of strategies have been used to integrate existing system reviews, brainstorming and interviews. These strategies are very helpful in extracting the specific needs of the user. A list of questions was asked from people and their response was quick. Interviews were held with various dietitian and gym trainer to gather requirements for an application. The full flow of the system is validated with prototypes in meetings with supervisor. Finally, the needs were prioritized according to the needs of the user. 3.2 Problem Scenario As People are too busy they don't have resources (time, budget) to visit dietitian/ nutritionist and gym trainer As people are unaware of diet plans that should be taken during disease (heart, blood pressure) etc. Most of the people even don’t about how much calories they need to gain, loss or idealize their weight .Mostly people don’t know about the recipes of diet plans that are recommended. Majority of the people unaware about the exercises that they need to gain loss or idealize weight. 3.3 Functional Requirements 1. Registration: FR 1.1: Users (clients) shall be able to register by entering their name, username, password and email. 23 FR 1.1.1: Name shall be in the form of letters (a-z, A-Z) only. FR 1.1.1.1: Name length should not exceed more than 20 letters. FR 1.2.1: Usernames can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 1.2.1.1: Username length should not exceed more than 10 characters. FR 1.2.1.2: Username should include at least one special character, e.g. (! @ # ?) FR 1.3.1: Password can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 1.3.1.1: Password should contain at least 8 characters but not exceed more than 15 characters. FR 1.3.1.2: Password should not contain more than 2 special characters, e.g. (! @#?) FR 1.4.1: Email can contain letters (a-z, A-Z), numbers (0-9). FR 1.4.1.1: Email should include at least one special character, e.g. (! @ # ? ) 1. Registration: FR 1.1: Users (dietitian, gym trainer) shall be able to register by entering their name, username, password, email and also upload CV. FR 1.1.1: Name shall be in the form of letters (a-z, A-Z) only. FR 1.1.1.1: Name length should not exceed more than 20 letters. FR 1.2.1: Usernames can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @). FR 1.2.1.1: Username length should not exceed more than 10 characters. FR 1.2.1.2: Username should include at least one special character, e.g. (! @ # ?) FR 1.3.1: Password can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 1.3.1.1: Password should contain at least 8 characters but not exceed more than 15 characters. FR 1.3.1.2: Password should not contain more than 2 special characters, e.g. (! @#?) FR 1.4.1: Email can contain letters (a-z, A-Z), numbers (0-9). FR 1.4.1.1: Email should include at least one special character, e.g. (! @ # ? ) 24 FR 1.5.1: CV shall be in format (.pdf) and size should not exceed more than 25mb. FR 1.6.1: Users (dietitian, gym trainer) shall be approved by admin. 2. Login: FR 2.1: Users shall be able to login by entering their username and password. FR 2.1.1: Username can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 2.1.1.1: Username length should not exceed more than 10 characters. FR 2.1.1.2: Username should include at least one special character, e.g. (! @ # ?) FR 2.2.1: Password can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 2.2.1.1: Password should contain at least 8 characters but not exceed more than 15 characters. FR 2.2.1.2: Password should not contain more than 2 special characters, e.g. (! @#?) 3. Calories counter : FR 3.1 System shall be able to calories on the basis of features given by user (age, height, weight, duration and gender etc.) FR 3.1.1 Age must be selected from these options (15-45) FR 3.1.2 Gender must be selected. FR 3.1.3 Weight should be in the kg units. FR 3.1.4 Height should be in Feet and inches. FR 3.1.5 Duration must be selected from these options (7 days, 14 days and 21 days 4. Diet plans recommendation: FR 4.1: Application shall be able to recommend diet plans on the basis of information given by the client(age, height, weight, duration and gender etc.)to achieve goal weight. FR 4.2: There will be different diet plans for different categories gain weight, lose weight, ideal weight. FR 4.3: Application shall be able to provide recipes that are recommended in diet plans. 25 FR 4.3.1: Recipes shall be available in visual form (video). FR 4.3.1.1: Application shall be connected with YouTube for recipes. 5. Workout Recommendation: FR 5.1 System shall be able to recommend workout plan with gif image for clients. FR 5.1.1 Application shall be able to recommend workout plans on the basis of information given by the client(age, height, weight, duration and gender etc.) to achieve goal weight. 6. Add Suggestions: FR 6.1 Users (clients, gym trainer, and dietitian) shall be able to give suggestions in the form of stars. FR 6.2 Users (clients, gym trainer and dietitian) shall be able to add comments/suggestions. FR 6.2.1 Users comments/suggestions should not exceed more than 700 words. 7. Manage diet plan (Add, update and delete): FR 9.1 Dietitian shall be able to add, delete or update diet plan. FR 9.2 Diet plan shall be added by their (name, category, duration, calories, protein, and description) and updated by (diet plan name, category, duration, calories). FR 9.2.1 Diet plan name shall be in the form of letters (a-z) (A-Z). FR 9.2.1.1 Diet plan name length should not exceed more than 20 letters. FR 9.2.2 Category must be selected from these options (gain weight, lose weight and ideal weight). FR 9.2.3 Duration must be selected from these options (7 days, 15 days, 30 days, and 60 days) FR 9.2.4 Calories and protein shall be in the form of integers. 26 8. Manage workout plan (Add, update and delete): FR 10.1 Gym trainer shall be able to add, delete or update workout plan. FR 10.2 Workout plan shall be added by their (workout name, exercise name, duration, gif image, category, exercise time, description) and updated by (workout name, exercise name, gif image, exercise time, description). FR 10.2.1 Workout name shall be in the form of letters (a-z) (A-Z). FR 10.2.1.1 Workout name length should not exceed more than 20 letters. FR 10.2.2 Exercise name shall be in the form of letters (a-z) (A-Z). FR 10.2.2.1 Exercise name length should not exceed more than 20 letters. FR 10.2.3 Duration must be selected from these options (7 days, 14 days and 21 days) FR 10.2.4 Image size should not exceed more than 100 MB. FR 10.2.5 Category must be selected from these options (gain weight, lose weight and ideal weight). FR 10.2.6 Exercise time shall be in minutes. FR 9.2.10 Description shall be in the form of letters (a-z) (A-Z) FR 9.2.10.1 Description should not exceed more than 700 words. 9. Manage recipes (Add, update and delete): FR 11.1 Dietitian shall be able to add recipes by (recipe name, plan type ,description and URL ) and update recipes by (recipe name ,diet plan name ,plan type ,description and URL). FR 11.1.1 Recipe name shall be in the form of letters (a-z) (A-Z). FR 11.1.1.1 Recipe name length should not exceed more than 20 letters. FR 11.1.2 Diet plan name shall be in the form of letters (a-z) (A-Z). FR 11.1.2.1 Diet plan name length should not exceed more than 20 letters. FR 11.1.3 Plan type must be selected from these options (breakfast, lunch and dinner) FR 11.1.4 Duration must be selected from 7, 14, 21. 27 Chapter 4: System Design 28 Chapter 4: System Design 4.1 Introduction Systems design is the process of defining the architecture, modules, interfaces, and data for a system to satisfy specified requirements. After requirement analysis, elicitation system design and architecture are very important for better understanding and implementation of the system. This chapter covers the high level design details including the system Use case diagram, Use case specification by using fully dressed format, Entity Relationship diagram, System sequence diagram, Activity diagram, and class diagram. 4.2 Use Case Diagram: Fig 4.2.1 Admin use case diagram 29 Fig 4.2.2 Client use case diagram Fig 4.2.3 Gym trainer use case diagram 30 Fig 4.2.4 Dietitian use case diagram 31 4.3 Sequence diagram: Fig 4.3.1 Gym trainer login 32 Fig 4.3.2 Client registration 33 Fig 4.3.3 Get diet plan recommendation 34 Fig 4.3.4 Get workout plan recommendation 35 Fig 4.3.5 Book appointment 36 Fig 4.3.6 Dietitian registration 37 Fig 4.3.7 Dietitian login 38 Fig 4.3.8 Add diet plan 39 Fig 4.3.8 Add diet plan Fig 4.3.9 Delete diet plan 40 Fig 4.3.10 Update diet plan 41 Fig 4.3.11 Add profile 42 Fig 4.3.12 Delete profile 43 Fig 4.3.13 Update profile 44 Fig 4.3.14 Add suggestions (gym trainer) 45 Fig 4.3.15 Add suggestions (dietitian) 46 Fig 4.3.16 Add workout 47 Fig 4.3.17 Update workout plan 48 Fig 4.3.18 Delete workout plan 49 Fig 4.3.19 Add recipes 50 Fig 4.3.20 Update recipes 51 Fig 4.3.21 Delete recipes 52 4.4 Activity diagram Fig 4.4.1 Client registration 53 Fig 4.4.2 Dietitian registration 54 Fig 4.4.3 Gym trainer registration 55 Fig 4.4.4 Client , dietitian, gym trainer login Fig 4.4.5 Client , dietitian, gym trainer suggestion 56 Fig 4.4.6 Get diet plan recommendation 57 Fig 4.4.7 Get work out plan recommendation 58 Fig 4.4.8 Add diet plan 59 Fig 4.4.9 Update diet plan 60 Fig 4.4.10 Delete diet plan 61 Fig 4.4.11 Add workout plan 62 Fig 4.4.12 Update workout plan 63 Fig 4.4.13 Delete workout plan 64 Fig 4.4.14 Add recipe 65 Fig 4.4.15 Update recipe 66 Fig 4.4.16 Delete recipe 67 4.5 ERD (Entity relation diagram) 68 4.6 Domain Modal: 69 4.7 Class diagram: 70 71 Chapter 5: Implementation 72 5.1 Endeavour (Team + Work + Way of Working): Dietlicious is an application that helps you to achieve your goal weight with diet plans and workout plans. The project team consists of two members, who work under the supervision of Ms. Shumaila. A Work Breakdown Structure (Ref. to Appendix G) was made to keep track of project deliverables. Mapping the WBS, a Roles & Responsibility Matrix (Ref. to Appendix I) was made to assign tasks to each member of the project team to complete those tasks within a certain amount of time. 5.1.1 Way of Working: For writing Documents – MS Word Tool for designing UML Diagrams Lucid chart Visual Paradigm Gantt chart MS project Software for writing code – Android Studio 5.2 Components, Libraries, Web Services and stubs: Libraries: We will use these libraries in the implementation of this project Glide Web Services: This mobile application will not use any web services. Stubs: No stubs will be used in the development of this application. 73 5.3 Best Practices / Coding Standards Some of the best practices and coding standards that were followed: 1. The code was written in a way that’s easily readable. 2. Test cases were written which helped understanding what a function does, what it takes and what it should return. 3. The implementation was backed-up and saved often to avoid any loss of data 5.4 Deployment Environment Dietlicious is a mobile-based application that runs on internet. For using this system, Internet connection is mandatory. Everyone can access this application. Hardware requirements: 1. Mobile and Tablets 2. Memory (RAM): Minimum 1 GB; Recommended 4 GB or above 3. 1 GB for Android SDK. 4. Java Development Kit (JDK) 7. 5.5 Summary: In this chapter we have discussed that the project team has endeavored to make a reliable and user-friendly application by following the best practices and coding standards while implementing it. The work was divided amongst the team and was completed efficiently. Creating a WBS and following the initially set time frames in Roles & Responsibility Matrix helped complete all tasks on time. All the components, libraries and web services that the web-application will use were all stated clearly. 74 75 Chapter 6: Testing and Evaluation 76 6.1 Introduction Testing is an essential step for the development of the reliable and error free system. It is used to test that whether the software works as expected or not. The technique followed to test “Dietlicious” application is Black box. Black box testing is a method of software testing that examines the functionality of an application based on the specifications and is also known as Specifications based testing. 6.2 List of Test Scenarios TEST CASE ID: TC01 Test Priority: High CREATED BY: Sawaira kiran Executed By: Sawaira kiran Test Case Name: Test User(Client) Registration Pre- condition: Test Test Test Data Test steps User must open the application Expected Result Actual result Pass/fail It should show an Error Pass error message. message case scenari # o 1. Description Check the N/A required fields by not 1. Open application. 2. Click on Signup. 3. Do not enter anything in any of entering the fields any data 4. Click on the sign up button 77 2. Sawaira kiran required sk@123 fields by Skhan@456 Sawairakiran entering 145@gmail. com valid data Check the 1. Open an application. 1. User 2. Click on signup . successfully Pass should Successful be registration registered 3. Enter valid values in 2. the required fields A successful 4. Click on the sign up button registration message should be shown to the user. 3. Sawaira kiran123 name text Sawaira Kiran khan field Naqvi@gma validation il.com with Check the 1. Enter username with 1.It should invalid format show an error 2. Click on sign up button message for the Pass Error message name input field 2.It should not register the user invalid format TEST CASE ID: TC02 Test Priority: High CREATED BY: Sawaira Kiran Executed By: Sawaira kiran Test Case Name: Test Login Pre- condition: User must open the application 78 Test Data Test Test Test steps Expected Result Actual result Pass/fail User should not be Error Pass case scenario # Descriptio n 1. N/A Check the 1. Go to an application. required fields able to login and an message 2. Click on by not entering error message login any data should be 3. Do not enter displayed anything in any of the fields 4. Click on the login button 2. Check the Username: response by skiran entering invalid 3. Password:s1 1. Enter invalid values. 1. User should Pass Successful Pass not be able 2. Click on to login. Login button. data in any field. 23456 Check the Username: 1. response by sk@123 valid data. be able to entering valid Password: 2. login. Skhan@456 on values. No Login Enter 1. User should Click login Login button. TEST CASE ID: TC03 Test Priority: High CREATED BY: Sawaira Kiran Executed By: Sawaira kiran Test Case Name: Test Registration Pre- condition: User must open the application 79 T Test Test Data Test steps Expected Result Actual result Pass/fa il 5. Open It should show an Error Pass application. 6. Click on error message. message es scenario t Description c a se # 1. Check the N/A required fields by not Signup. entering any 7. Do not enter data anything in any of the fields 8. Click on the sign up the Sawaira kiran sk@123 required Skhan@456 fields by Sawairakiran145@g mail.com entering 25 MB, .pdf format valid data 2. Check button 1. Open application. 2. Click on Signup. an 1. User successfully should Registered be successfully registered 2. User should 3. Enter valid values in the be added by admin. required fields 4. Click on the sign up button 80 Pass the Sawaira kiran 123 name text Skhan@456 Sawairakiran145@g field mail.com validation 25 MB, .docx format with invalid 3. Check 1. Enter any of data with invalid format 2. Click on sign up button 1.It should show an message Pass Error error message for the name input field 2.It should not register format the user TEST CASE ID: TC04 Test Priority: High CREATED BY: Muqadas Hassan Executed By: Muqadas Hassan Test Case Name: Test calories counter functionality Pre- condition: Test Test Test Data Test steps case scenario # Description 1. Check the required fields by entering valid data in fields Open client Disease: Blood pressure 1. interface. Food allergy: Egg Age: 20-25 2. Enter Gender: female Height: 5Ft 3In details in every Actual weight: 55kg field. Goal weight: 60kg Duration: 14 days Client must logged in to an application Expected Result Actual result Pass/fail Calories Calories Pass should be calculated calculated. 81 the Disease: Blood pressure Food allergy: Egg required fields Age: by not entering Gender: female Height: 5Ft 3In data in any of Actual weight: 55kg Goal weight: 60kg the fields. Duration: 14 days 2. Check 3. Check 1. Open client Calories Calories not interface. should not be calculated. 2. Do not calculated. enter in any one field. the Disease: Blood pressure Select disease from dropdown. Food allergy: Egg response by Age: 20-25 entering data Gender: female Height: 5Ft 3In in all fields but Actual weight: 163cm enter data in Goal weight: 60kg Duration: 14 days any field with Display Calories message not “Please enter calculated. Pass Pass valid data” invalid format TEST CASE ID: TC05 Test Priority: High CREATED BY: Muqadas Hassan Executed By: Muqadas Hassan Test Case Name: Test Add dietplan functionality Pre- condition: Test Test scenario Test Data Test steps case Description # 1. Check the required fields by entering valid data in fields Diet plan name: Vegan diet plan Category: gain Duration: 14 days Calories:300 1. Open dietitian interface. 2. Expected Result Dietitian must logged into an application Actual result Pass/f ail Diet Pass Diet plan plan Click on add diet should be added plan. successfully added. 3. Enter details in diet plan form. 82 2. the Diet plan name: Category: gain required fields by Duration: 14 days not entering data Calories:300 Protein:140 in any of the field. Check 1. Open dietitian interface. 2. Click add diet plan. Diet plan should Dietplan not added.to Pass an not added on application. 3. Enter details in diet plan form. 3. Check the Diet plan name: Category: gain response by Duration: 14 days entering data in Calories:abc Protein:140 all fields but enter Message should be Dietplan 1. Open “Diet not dietitian interface. displayed plan not added added 2. Click on add diet plan. Please enter valid invalid data in any data” 3. Enter details in diet plan form but enter invalid in any field. field. TEST CASE ID: TC06 Test Priority: High CREATED BY: Sawaira kiran Executed By: Sawaira kiran Test Case Name: Test Manage workout plan functionality Pre- condition: Test Test scenario Test Data Test steps case Description # 1. Check the required fields by entering valid data in fields Workout name: Cardio Exercise name: squat Duration:7 days Gif image: size 95MB Category: gain Exercise time: 15mins Description: rhythmic activity that raises your heart rate into your target heart rate zone. 1. Open gym trainer interface. 2. Gym trainer must logged into an application Expected Result Actual result Pass/fa il Work Workout outpla Click on add plan should n workout plan. be added successfully 3. Enter details in Pass added. workout plan form. 83 Pass 2. the Workout name: Cardio Exercise name: squat required fields by Duration:7 days not entering data Gif image: size 95MB Category: gain in any of the field. Exercise time: 15mins Description: rhythmic Check activity that raises your heart rate into your target heart rate zone. 3. the Workout name: Cardio Exercise name: squat response by Duration:7 days entering data in Gif image: size 95MB Category: gain all fields but enter Exercise time: 5 sec invalid data in any Description: rhythmic 1. Open trainer interface. gym Workout Pass plan should ut plan 2. Click on add not added.to not workout plan. an added. 3. Enter details in all fields but not enter application. data in any of the field. Check field. Worko Message 1. Open trainer interface. gym Work should be out displayed 2. Click on add workout plan. “Workout 3. Enter details in activity that raises your all fields but enter heart rate into your invalid data in any of target heart rate zone. the field. plan Pass plan not not added added Please enter valid data” TEST CASE ID: TC07 Test Priority: High CREATED BY: Sawaira kiran Executed By: Sawaira kiran Test Case Name: Test Manage recipe functionality Pre- condition: Test Test Test Data Test steps case scenario # 1. Description Check the required fields by entering valid data in fields Recipe name: Avocado smoothie Plan type: Lunch Description: promotes weight loss and metabolic health because of its high fiber content in it. URL:https://www.youtube.co m/watch?v=woukz-Z2Urw 1. Open dietitian interface. 2. Click on add recipe. 3. Enter Dietitian must logged into an application Expected Result Recipe Actual result Pass/f ail Recipe Pass added should be successfully added. details in recipe form. 84 2. name: Avocado the Recipe smoothie required fields Plan type: Lunch by not Description: URL:https://www.youtube.co entering data m/watch?v=woukz-Z2Urw in any of the Check field. 3. 1. Open dietitian interface. 2. Click add recipe. but enter health because of its high fiber content in it. URL: invalid data in https://pharmeasy.in/blog/ayur veda-uses-benefits-sideany field. effects-of-avocadojuice/#:~:text=Avocado%20jui ce%20may%20be%20used,ski n%20health%2C%20and%20tr eating%20osteoarthritis.&text= The%20given%20benefits%20 will%20require,qualified%20d octor%20for%20proper%20su ggestions. should Recipe Pass not not on added.to an added application. 3. Enter details in all fields but not enter data in any of the field. Recipe name: Avocado 1. Open smoothie response by dietitian interface. Plan type: Lunch entering data Description: promotes weight 2. Click on loss and metabolic add recipe. in all fields Check the Recipe Message should Recipe be not displayed added “Recipe not 3. Enter details added in all fields but not Please enter enter data in any of valid data” the field. . 85 Pass 6.3 Summary: In essence, to assure high quality of the system, it is essential to carry out various tests. Black box testing technique is used to test the functional requirements of the application. Test scenarios were listed, on the basis of which test cases were created. All the functional requirements of the system were thoroughly tested. 86 Chapter 7: Conclusion and Outlook 87 Chapter 7: Conclusion and Outlook 7.1 Introduction In this chapter, we would like to include the achievements and the lessons learned while developing the system as well as further improvements which we would like to include in future. 7.2 Achievements and Improvements The main achievement is the front end implementation of this project and learning how to work in team. We have improved our concepts, knowledge and skills of database and documentation. We have learnt how to handle requirement changes, practically and satisfy our clients. We have learnt how to conduct interviews for elicitation requirements. 7.3 Critical Review This report demonstrates the importance and need of a dietlicious application. It will provide guidance to clients for diet plans along with the recipes and exercises on the basis of their preferences (gain, loss and ideal weight). Application will use calories counter to achieve client goal weight. Clients don’t need to visit nutritionist/dietitian and gym trainers and don’t need to pay high cost. It will also give awareness of diet plans that should be following during diseases. 7.4 Future Recommendations/Outlook In future we will also develop web application, will try to implement APIs for payments and will also try to use google map APIs to find the nearby gyms for workouts. 7.5 Summary In this chapter we discussed about the achievements and improvements in our project and also mentioned about the future recommendation related to our application. 88 89 Reference and Bibliography 1. https://vertabelo.com/blog/one-to-one-relationship-in-database/ 2. https://www.lucidchart.com/ 3. https://online.visualparadigm.com/w/lrgdnxhh/login.jsp?r=app/diagrams/#diagra m:workspace=lrgdnxhh&proj=0&type=SequenceDiagram&width=11&height=8. 5&unit=inch 4. https://www.visualparadigm.com/support/documents/vpuserguide/3563/3564/853 78_conceptual,l.html 5. https://moellim.riphah.edu.pk/course/view.php?id=17764 6. http://www.cs.sjsu.edu/~pearce/modules/lectures/uml2/index.htm 7. https://www.ictdemy.com/software-design/uml/uml-domain-model 90 Appendix A: 1. Software Requirements Specifications (SRS): 1.1 Functional Requirements 1. Registration: FR 1.1: Users (clients) shall be able to register by entering their name, username, password and email. FR 1.1.1: Name shall be in the form of letters (a-z, A-Z) only. FR 1.1.1.1: Name length should not exceed more than 20 letters. FR 1.2.1: Usernames can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 1.2.1.1: Username length should not exceed more than 10 characters. FR 1.2.1.2: Username should include at least one special character, e.g (! @ # ? ) FR 1.3.1: Password can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 1.3.1.1: Password should contain at least 8 characters but not exceed more than 15 characters. FR 1.3.1.2: Password should not contain more than 2 special characters, e.g (! @ #?) FR 1.4.1: Email can contain letters (a-z, A-Z), numbers (0-9) . FR 1.4.1.1: Email should include at least one special character, e.g (! @ # ? ) 91 2. Registration for dietitian and gym trainer : FR 1.1: Users (dietitian, gym trainer) shall be able to register by entering their name, username, password, email and also upload CV. FR 1.1.1: Name shall be in the form of letters (a-z, A-Z) only. FR 1.1.1.1: Name length should not exceed more than 20 letters. FR 1.2.1: Usernames can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 1.2.1.1: Username length should not exceed more than 10 characters. FR 1.2.1.2: Username should include at least one special character, e.g (! @ # ? ) FR 1.3.1: Password can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 1.3.1.1: Password should contain at least 8 characters but not exceed more than 15 characters. FR 1.3.1.2: Password should not contain more than 2 special characters, e.g (! @ #?) FR 1.4.1: Email can contain letters (a-z, A-Z), numbers (0-9). FR 1.4.1.1: Email should include at least one special character, e.g (! @ # ? ) FR 1.5.1: CV shall be in format (.pdf) and size should not exceed more than 25mb. FR 1.6.1: Users (dietitian, gym trainer) shall be approved by admin. 3. Login: FR 2.1: Users shall be able to login by entering their username and password. FR 2.1.1: Username can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 2.1.1.1: Username length should not exceed more than 10 characters. FR 2.1.1.2: Username should include at least one special character, e.g (! @ # ? ) FR 2.2.1: Password can contain letters (a-z, A-Z), numbers (0-9) and any special 92 characters (for example: %, #, @) FR 2.2.1.1: Password should contain at least 8 characters but not exceed more than 15 characters. FR 2.2.1.2: Password should not contain more than 2 special characters, e.g (! @ #?) 4. Calories counter : FR 3.1 System shall be able to calories on the basis of features given by user (food allergy, disease (diabetes, blood pressure, heart ), age, height, goal weight, actual weight, duration and gender etc.) FR 3.1.1 Age must be selected from these options (15-25, 26-35, 36-45) FR 3.1.2 Gender must be selected. FR 3.1.3 Weight should be in the kg units. FR 3.1.4 Height should be in Feet and inches. FR 3.1.5 Duration must be selected from these options (7 days, 15 days, 30 days ,60 days) 5. Diet plans recommendation: FR 4.1: Application shall be able to recommend diet plans on the basis of information given by the client (food allergy (milk, egg, tree nuts, peanuts, fish, soybeans and no allergy) disease (diabetes, blood pressure, heart and no disease), age, height, goal weight, actual weight, duration and gender etc.) to achieve goal weight. FR 4.2: There will be different diet plans for different categories gain weight, lose weight, ideal weight. FR 4.3: Application shall be able to provide recipes that are recommended in diet plans. FR 4.3.1: Recipes shall be available in visual form (video). FR 4.3.1.1: Application shall be connected with YouTube for recipes. 6. Workout Recommendation: FR 5.1 System shall be able to recommend workout plan with gif image for clients. FR 5.1.1 Application shall be able to recommend workout plans on the basis of information given by the client (food allergy (milk, egg, tree nuts, peanuts, fish, 93 soybeans and no allergy), disease (diabetes, blood pressure, heart, no disease), age, height, goal weight, actual weight, duration and gender etc.) to achieve goal weight. 7. Add Suggestions: FR 6.1 Users (clients, gym trainer, dietitian) shall be able to give suggestions in the form some questions (for example: Did you achieve your goal?). FR 6.2 Users (clients, gym trainer and dietitian) shall be able to add comments/suggestions. FR 6.2.1 Users comments/suggestions should not exceed more than 700 words. 8. Book appointments: FR 8.1 Client shall be able to book appointment with gym trainer and dietitian for assistance. FR 8.1.1 In order to book appointment client have to fill the form which includes (name, username, email, dietitian/gym trainer name, availability hour ,availability day ) FR 8.1.1.1: Username can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 8.1.1.2: Username length should not exceed more than 10 characters. FR 8.1.1.3: Username should include at least one special character, e.g (! @ # ? ) FR 8.1.2: Email can contain letters (a-z, A-Z), numbers (0-9). FR 8.1.2.1: Email should include at least one special character, e.g (! @ # ? ) FR 8.1.3: Name shall be in the form of letters (a-z, A-Z) only. FR 8.1.3.1: Name length should not exceed more than 20 letters. FR 8.1.4: Availability hour and availability time must be selected given by the user (gym trainer,dietitian) FR 8.2 Clients shall be able to consult with gym trainer and dietitian/ nutritionist through chat, video or audio call. 94 9. Manage diet plan (Add, update and delete): FR 9.1 Dietitian shall be able to add, delete , update diet plan and search diet plan. FR 9.2 Diet plan shall be added by their (name, disease, food allergy, category, plan type, food, duration, day no, calories, protein, description) and updated by (diet plan name, plan type , food ,day ,calories ,protein ,description). FR 9.2.1 Diet plan name shall be in the form of letters (a-z) (A-Z). FR 9.2.1.1 Diet plan name length should not exceed more than 20 letters. FR 9.2.2 Disease must be selected from these options (diabetes, blood pressure, heart disease , no disease). FR 9.2.3 Food allergy must be selected from these options (milk, egg, tree nuts, peanuts, fish, soybeans and no allergy). FR 9.2.4 Category must be selected from these options (gain weight, lose weight and ideal weight). FR 9.2.5 Plan type must be selected from these options (breakfast, lunch and dinner) FR 9.2.6 Food name must be in the form of letters (a-z) (A-Z) FR 9.2.6.1 food name should not exceed more than 20 letters. FR 9.2.7 Duration must be selected from these options (7 days, 15 days,30 days ,60 days) FR 9.2.8 Day no must be selected from 1-7. FR 9.2.9 Calories and protein shall be in the form of integers. FR 9.2.10 Description shall be in the form of letters (a-z) (A-Z) FR 9.2.10.1 Description should not exceed more than 700 words. 95 10. Manage workout plan (Add, update and delete): FR 10.1 Gym trainer shall be able to add, delete,update or search workout plan. FR 10.2 Workout plan shall be added by their (workout name, exercise name, diseases, duration, gif image, category, exercise time , description ) and updated by (workout name ,exercise name , gif image , exercise time ,description). FR 10.2.1 Workout name shall be in the form of letters (a-z) (A-Z). FR 10.2.1.1 Workout name length should not exceed more than 20 letters. FR 10.2.2 Disease must be selected from these options (diabetes, blood pressure, heart disease ,no disease). FR 10.2.3 Duration must be selected from these options (7 days, 15 days, 30 days, 60 days) FR 10.2.4 Image size should not exceed more than 100 MB. FR 10.2.5 Category must be selected from these options (gain weight, lose weight and ideal weight). FR 10.2.6 Exercise time shall be in seconds or minutes. FR 9.2.10 Description shall be in the form of letters (a-z) (A-Z) FR 9.2.10.1 Description should not exceed more than 700 words. 11. Manage recipes (Add, update and delete): FR 11.1 Dietitian shall be able to add recipes by (recipe name, diet plan name, and plan type , day no, image and URL) and update recipes by (recipe name, diet plan name, plan type , day no, image and URL). FR 11.1.1 Recipe name shall be in the form of letters (a-z) (A-Z). FR 11.1.1.1 Recipe name length should not exceed more than 20 letters. FR 11.1.2 Diet plan name shall be in the form of letters (a-z) (A-Z). 96 FR 11.1.2.1 Diet plan name length should not exceed more than 20 letters. FR 11.1.3 Plan type must be selected from these options (breakfast, lunch and dinner) FR 11.1.4 Day no must be selected from 1-7. FR 11.1.5 Image shall be in the form of png and jpg. FR 11.1.5.1 Image size should not exceed more than 25 MB. 12. Manage profile (Add, update ,delete): FR 12.1 User (gym trainer, dietitian) shall be able to add profile by entering (contact no, experience, availability hour and availability day) and update profile by (username, password, experience, availability hour and availability day) FR 12.1.1 Contact no shall be in the form of integers. FR 12.1.1.1 Contact no length should not exceed more than 11 integers. FR 12.1.2 Experience must be selected from these options (1 year ,2-5 years and more than 5 years ) FR 12.1.3 Username can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 12.1.3.1: Username length should not exceed more than 10 characters. FR 12.1.3.2: Username should include at least one special character, e.g (! @ # ? FR 12.1.4 Password can contain letters (a-z, A-Z), numbers (0-9) and any special characters (for example: %, #, @) FR 12.1.4.1: Password should contain at least 8 characters but not exceed more than 15 characters. FR 12.1.4.2: Password should not contain more than 2 special characters, e.g (! @#?) 97 FR 12.1.5 Availability hour and availability day must be selected given by the user (dietitian and gym trainer ) 2. Non-functional requirements : 2.1 Usability: UR-1: The colors of the application will neither be too dull, nor too sharp so that the users can use the website without any visual stress. UR-2: The website will be easy to navigate and will provide the users the freedom of movement. UR-3: Error message will be easy to understand and rectify 2.2 Reliability: RR-1 The application consistently performs the specified functions without failure. 2.3 Portability: PR-1 How well your application works in different platform (different devices). 98 Appendix B: 2. Fully dressed use cases 2.1 Login 99 2.2 Registration 100 2.3 Get diet plan recommendation 101 2.4 Add diet plan 102 2.5 Update diet plan 103 2.5 Delete diet plan 104 2.6 Delete workout plan 105 2.7 Update workout plan 106 2.8 Add suggestions 107 2.9 Add recipes 108 2.10 Update recipes 109 2.11 Get workout plan recommendation 110 2.12 Delete recipe 111 2.14 Add workout plan 112 Appendix C: Work Breakdown Structure: 1. Project Management 1.1. Work Breakdown Structure (WBS) 1.2. Roles & Responsibility Matrix 1.3. Gantt chart 1.4. Test plan 1.5. Project proposal 1.6. Project plan 2. Reports / Documentation 2.1. Literature 2.1.1 Review Existing Systems 2.1.1.1 Web-based applications 2.1.1.2 Mobile applications 2.1.1.3 Research papers 2.2. Requirements Analysis 2.2.1 Requirements Elicitation 2.2.1.1 Interviews 2.2.1.2 Brainstorming 2.2.2 Requirements Analysis 2.2.2.1 Use case diagram 2.2.2.2 Use case description 2.2.3 Requirement Specification 2.2.3.1 Create SRS 113 2.2.3.1.1 Functional requirements 2.2.3.1.2 Non-functional requirements 2.2.4 Requirements Validation 2.2.4.1 Requirement inspection 2.2.4.2 Evolutionary prototyping 2.3. System Design 2.3.1 Sequence diagram 2.3.2 Class diagram 2.3.3 Domain model 2.3.4 Activity diagram 2.3.7 Entity Relationship diagram 2.4. Implementation 2.4.1 System Module Implementation 2.4.1.1 Implement account registration module 2.4.1.2 Implement profile creation module 2.4.1.3 Implement book appointment module 2.4.1.4 Implement recommend diet plan module 2.5. Testing & Performance Evaluation 2.5.1 Functional testing 2.5.2 Usability testing 2.5.3 Portability testing 2.5.4 Reliability testing 2.6 End User Documentation 2.6.1 User manuals 2.6.1.1 Product demos 2.6.1.2 Project report 3. System 3.1. Development Environment 3.1.1. IDE 114 3.1.1.1 Android Studio 3.1.2. Version Control 3.1.2.1 Git (Global information tracker) 3.1.3. Server 3.1.3.1 Xampp 3.1.4. Database 3.1.4.1 SQL 3.2. Presentation Layer 3.2.1 System interfaces 3.3. Business Logic Layer 3.3.1 Account registration module 3.3.2 Profile creation module 3.3.3 Book appointment module 3.3.4 Recommend diet Plan module 3.4. Data Management Layer 3.4.1 Create database 3.4.2 Create queries 3.4.2 Generate report 115 Appendix D: 4 Roles and Responsibility matrix WBS WBS Deliverable Activity # Activity to Complete the Deliverable Project Management 1.1 Work Breakdown # 1 Duration (# of Days) 1 Structure 1.2 Roles & Responsible Team Member(s) & Role(s) Sawaira, Muqadas 1 Responsibility Sawaira, Muqadas Matrix 1.3 Gantt chart 2 Sawaira, Muqadas 1.4 Test plan 3 Sawaira, Muqadas 2 Reports/Documentation 1.5 Project proposal 2 1.6 Project plan 1 2.1 Literature 2 2.1.1 Review Existing Sawaira, Muqadas Systems 2.1.1.1 Web based applications 2.1.1.2 Mobile applications 2.1.1.3 Research papers 2.2 Requirement Analysis 2.2.1 Requirement Elicitation 7 Sawaira, Muqadas 116 2.2.1.1 Interviews 2.2.1.2 Brainstorming 2.2.2 Requirement 6 Analysis 2.2.2.1 Use case diagram 2.2.2.2 Use case Sawaira, Muqadas description 2.2.3 Requirement Specification 2.2.3.1 Create SRS 2.2.3.1.1 Functional 3 Sawaira, Muqadas requirement 2.2.3.1.2 Non -Functional requirement 2.2.4 Requirement 8 Validation 2.2.4.1 Sawaira, Muqadas Requirements Inspection 2.2.4.2 Evolutionary prototyping 2.3 System Design 2.3.1 Sequence diagram 2.3.2 Class diagram 2.3.3 Domain Model 2.3.4 Activity diagram 2.3.7 Entity Relationship 15 Sawaira, Muqadas diagram 2.4 Implementation 2.4.1 System Module 30 Sawaira, Muqadas Implementation 117 2.4.1.1 Implement account registration module 2.4.1.2 Implement profile creation module 2.4.1.3 Implement Book appointment module 2.4.1.4 Implement recommend diet plans module 2.5 Testing & 10 Performance Sawaira, Muqadas Evaluation 2.5.1 Functional testing 2.5.1.1 Security testing 2.5.2 Usability testing 2.5.3 Portability testing 2.5.4 Efficiency testing 2.5.5 Reliability testing 2.6 End User 5 Documentation 3 System 2.6.1 User manuals 2.6.1.1 Product demo 2.6.1.2 Project report 3.1 Development Sawaira, Muqadas Environment 3.1.1 IDE 3.1.1.1 Android Studio 3.1.2 Version Control 10 Sawaira, Muqadas 5 Sawaira, 118 3.1.2.1 Muqadas Git(Global Information Tracker) 3.1.3 Server 3.1.3.1 Xampp 3.1.4 Database 3.1.4.1 SQL 3.2 Presentation Layer 2 Sawaira, Muqadas 10 Sawaira, Muqadas 3.2.1 System interfaces 3.3 Business Logic Layer 3.3.1 Account registration module 3.3.2 Recommend diet plan module 3.4 Data Management Layer 2 3.4.1 Create Database 3.4.2 Create queries 3.4.3 Generate Report Sawaira, Muqadas 119