-
Notifications
You must be signed in to change notification settings - Fork 2
Requirements
#Summary
Our project aims to serve people to learn about what they are eating in terms of micro and macro nutrients. There will be two types of user; regular users and food servers. Food servers will enable to create a profile and description of the foods they serve. Regular users will be able to explore the servers, the food, and see the information about the food. They will also able to get the information about ingredients and calories of foods. Furthermore users will be able to tag, comment and rate food as well as the servers. The users will able to view their consumption history. They will also enable to share with other users as well as social media.
#Background
This document shows the requirements of 'Know What You Eat' project with glossary part. Glossary part consists of definition of frequently used keywords in the requirement part. There are two types of requirements which are user and system requirements. These requirements list the features that our application has to implement. There are many subsections of requirements to give better idea about our project.
-
Allergy: A damaging immune response by the body to a substance.
-
Block: Stop somebody from interacting with another user.
-
Calorie: A measure of the energy released by food as it is digested by the human body.
-
Celiac Disease: Celiac disease is an autoimmune disorder that can occur in genetically predisposed people where the ingestion of gluten leads to damage in the small intestine.
-
Cholesterol: The most common type of steroid in the body.
-
Comment: Expressing an opinion about food or menus.
-
Consumer: A person who eats something.
-
Diabetes: A disease in which body has a high level of glucose in blood
-
Diet: Eat any food or drink regularly; A particular selection of food, especially as designed or prescribed to improve a person's physical condition or to prevent, treat a disease.
-
Food Preferences: The selection of one food over another.
-
Food Server: Supplier of food to consumers.
-
Gluten: A mixture of two proteins present in cereal grains, especially wheat.
-
Gluten Intolerance: A condition that causes a person to react after ingesting gluten.
-
Ingredient: A food that is used in the preparation of a dish.
-
Macronutrient: A type of food (e.g. fat, protein, carbohydrate) required in large amounts in the diet.
-
Micronutrient: Essential food factors required in only small quantities by the body; e.g. vitamins, trace minerals.
-
Nutrition: The process of taking in food and using it for growth, and health.
-
Paleo Diet: A diet based on the types of foods presumed to have been eaten by early humans, consisting chiefly of meat, fish, vegetables, and fruit and excluding dairy or cereal products and processed food.
-
Recipe: A set of instructions for preparing a particular dish, including a list of the ingredients required.
-
Threshold: Minimum level or value above which something will take place, and below it will not.
-
Top Customer: A customer who eats from a specific food server regularly become that food server's top user.
-
Unregistered User: A customer which is not registered to system and have only search permission in application/website.
-
User: A registered customer who will interact with a system either directly or indirectly.
1. User Requirements
-
1.1. Unregistered Users
- 1.1.1. Unregistered users shall be able to do search for meals, other users, food servers, menus and the ingredients of a food.
- 1.1.2. Unregistered users shall be able to receive filtered results.
- 1.1.3. Unregisteren users shall be able to do semantic search for meals to receive meals with same content with searched meal.
- 1.1.4. Unregistered users shall be able to sign up by email and password.
-
1.2. Registered Users * 1.2.1. Account
- 1.2.1.1. Users shall be able to login by entering their email and password.
- 1.2.1.2. Users shall be able to change their password.
- 1.2.1.3. Users shall be able to send a request for new password when they forget their password. * 1.2.2. Profile Page
- 1.2.2.1. Users shall have a profile page which they can set their profile picture and create bio on.
- 1.2.2.2. Users shall be able to specify their diet( i.e. Vegan, Vegetarian, Paleo, Gluten Intolerance, Celiac Disase, Lactose Intolerance ) and food preferences (include and exclude specified macronutrients).
- 1.2.2.3. Users shall have a log of consumed foods on their profile page to keep track of their nutritional and calorie intake.
- 1.2.2.4. Users shall set daily calorie threshold.
- 1.2.2.5. Users shall have the list of top food servers according to their ratings and comments on their profile page.
- 1.2.2.6. Users shall be able to set private their diet, food preferences and log of consumed foods.
- 1.2.2.7. Users shall be able to set their profile page as public and private. * 1.2.3. Actions
- 1.2.3.1. Users shall be able to follow other users to see their profile page.
- 1.2.3.2. Users shall be able to rate foods and food servers.
- 1.2.3.3. Users shall be able to comment foods and food servers.
- 1.2.3.4. Users shall be able to share what they eat on Twitter and Facebook.
- 1.2.3.5. Users shall be able to tag following users to show who they are eating with.
- 1.2.3.5. Users shall be able to report food servers.
- 1.2.3.6. Users shall be able to block another users.
- 1.2.3.7. Users shall be able to see recommended restaurants based on user's preferences on their home page.
- 1.2.3.8. Users shall tag meals, recipes and special diets semantically. * 1.2.4. Search & Filter
- 1.2.4.1. Registered users shall be able to search as stated 1.1.1, 1.1.2, 1.1.3.
- 1.2.4.2. Users shall be able to receive filtered foods based on their food preferences, diet and calorie threshold specified on their profile page when they search for specific foods.
- 1.2.4.3. Users shall be provided with filtered results which are ordered based on user's preferences specified on their profile page when they search for foods.
- 1.2.4.4. Users shall be able to off their preferences when they search.
-
1.3. Food Servers * 1.3.1. Food servers shall have a profile page which they can publish their menus. * 1.3.2. Food servers shall be able to give recipes to system to determine each food's ingredient and calories on their menu. * 1.3.3. Food servers shall receive top users weekly. * 1.3.4. Food servers shall be able to receive ratings to foods on menu every week. * 1.3.5. Food servers shall be able to edit their recipes and menus. * 1.3.6. Food servers shall be able to share their menu on Facebook and Twitter. * 1.3.7. Food servers shall have ratings,comments and top users on their home page.
-
1.4. Admin
- 1.4.1. Admin shall be able to forward reports coming from users to food servers weekly.
- 1.4.2. Admin shall be able to block users based on complaints from other users.
2. System Requirements
-
2.1. Functional Requirements
- 2.1.1. The system shall request email address and password in order to register a user.
- 2.1.2. The system shall be validate email address by sending a unique code.
- 2.1.3. The system shall encrypt user password with MD5 hashing before saving user to a database.
- 2.1.4. The system shall let user log in by confirming given email address and password from database.
- 2.1.5. The system shall prevent user for 5 minutes after 5 failed log in trials.
- 2.1.6. The system shall remember user for 60 days if user wants so.
- 2.1.7. The system shall send a unique code to the user email address(which has been saved in the system) if user indicates that he/she forgot password.
- 2.1.8. The system shall let user to assign a new password if entered reset code matches with that is sent.
- 2.1.9. The system shall remove all sessions and cookies about user when password is reset.
- 2.1.10. The system shall let users upload a profile picture with maximum size of 2 MB.
- 2.1.11. The system shall let users enter a bio text with maximum of 200 characters.
- 2.1.12. The system shall keep diet and food preferences of each user.
- 2.1.13. The system shall save foods consumed by each user.
- 2.1.14. The system shall keep daily calories threshold of each user.
- 2.1.15. The system shall send a warning when the user exceeds calorie threshold.
- 2.1.16. The system shall keeps information about meals like ingredients and calories.
- 2.1.17. The system shall show recommended meals for each user based on that user's preferences.
- 2.1.18. The system shall warn users if a recipe has an allergic ingredient.
- 2.1.19. The system shall show calorie amount in foods.
- 2.1.20. The system shall show equivalent running distance at a specific pace of total calories in a food.
- 2.1.21. The system shall permit users to rate foods and food servers.
- 2.1.22. The system shall permit users to comment on foods and food servers.
- 2.1.23. The system shall a filtering feature to restrict certain ingredients when users search for meals.
- 2.1.24. The system shall allow users to tag foods and friends in posts on Facebook and Instagram.
- 2.1.25. The system shall provide suggested meals according to users’ consumption.
- 2.1.26. The system should provide users to be able to construct relationship among between semantic tags.
-
2.2. Nonfunctional Requirements
-
2.2.1. Flexibility
- 2.2.1.1. The system shall be prepared with modular structure in order to introduce new features.
- 2.2.1.2. The system shall be designed with Model-View-Controller(MVC) structure.
- 2.2.1.3. The system shall be coded in a readable way and commented properly.
- 2.2.1.4. The system shall be coded in a simple way that another developer can easily understand.
-
2.2.2. Portability
- 2.2.2.1. The system shall be available on Web and Mobile.
- 2.2.2.2. The website shall be compatible with IE10, Mozilla Firefox, Google Chrome, Opera, Safari web browsers.
- 2.2.2.3. The mobile app shall support as early as Android 4.2 Jelly Bean.
-
2.2.3. Integrity
- 2.2.3.1. There shall be legal issues involving privacy of information and intellectual property rights.
- 2.2.3.2. User information shall be hashed with an algorithm.
-
2.2.4. Performance
- 2.2.4.1. The system shall respond users in at most 5 seconds.
-
2.2.5. Reliability
- 2.2.5.1. The system shall not be crushed more than twice in a month for a single user.
- 2.2.5.2. The system shall save last user state before crash whenever possible.
-
2.2.6. Usability
- 2.2.6.1. There shall be help guides and tips to help new users learn about the usage of the application.
- 2.2.6.2. No more than 3 push notifications per day shall be sent.
- 2.2.6.3. The system language shall be English.
-
2.2.7. Accessibility
- 2.2.7.1. The system shall provide support for visually-impaired people.
- 2.2.7.2. The color scheme shall be selected properly so that colors can be differentiable by color-blind people.
-
2.2.1. Flexibility
References:
http://www.processimpact.com/UC/Module_3/data/downloads/glossary.html
http://www.medicinenet.com/script/main/art.asp?articlekey=4602
- Noor Ahmad
- [Safa Andaç](Safa Andac)
- Behiye Avcı
- Sinem Dalkılıç
- Ekrem Öztürk (Communicator)
- Arda Cinar
- Harun Acar
- Muharrem Yeşilyurt
#Project: #
- Requirements
- [API Docs](API Docs)
- Plan
- Themes/Features
- Personas
- [User Stories](User Stories and Acceptance Criteria)
- [Domain Analysis](Domain Analysis)
- [Responsibility Assignment Matrix](Responsibility Assignment Matrix)
- [Project Communication Plan](Project Communication Plan)
- [Test Cases](Test Cases)
- [Setting Development Environment](Setting Development Environment)
#Diagrams: #
- [Use Cases and Use Case Diagram](Use Cases)
- [Use Case Drafts](Use Case Drafts)
- [Class Diagram](Class Diagram)
- [Activity Diagram](Activity Diagram)
- [Sequence Diagrams](Sequence Diagrams)
#Mockups: #
- [Web Mockups](Web Mockups)
- [Mobile Mockups](Mobile Mockups)
#Meetings: # Spring Semester
-
Fall Semester
-
[Customer Meeting Film-13/10/16](Meeting Film in class)
#Milestones: # Spring Semester
-
[Milestone-1 Report](Milestone-1 Report)
Fall Semester
-
[Milestone-1 Report](Milestone-2 Report)
-
[Milestone-2 Report](Milestone-3 Report)
-
[Milestone-3 Report](Milestone-4 Report)
#Group Works: #
#Documentations: #
- [Git Versioning Basics](Git Versioning Basics)
- [Label Customization and Issue Tracking](Label Customization and Issue Tracking)
- Scrum: An Agile Software Development Methodology
- [Patrick Lencioni: Five Dysfunctions Of A Team](Five Dysfunctions Of A Team)
- Software Development Life Cycles
- [Team Work in Software Engineering](Team Work in Software Engineering)
- [The Puzzle of Motivation](The Puzzle Of Motivation)
- Communication
- [Good and Bad Practices](Good and Bad Practices)
- Kaizen and 5S