Skip to content
This repository was archived by the owner on Nov 3, 2025. It is now read-only.

Requirements

Erkam Uyanik edited this page Dec 21, 2016 · 22 revisions

Summary

This project aims to serve people to learn more about what they eat in terms of micro and macro nutrients and keep track of their consumption habits.

Background

The main purpose of this application is presenting foods with exclusive information about the ingredients considering personal preferences and reliability standards with a wide interconnection availability between consumer and provider sides. This application will enable food servers to create a profile and description of the food they serve as well as individual users being able to create a profile and interact with the servers by all means. The nutritional properties for the food served will be determined from nutritional information of the given ingredients. There will be basically two types of users: registered users and guests. Guests have access only to explore the website and do manual search whereas registered users (including servers and and regular users) have also access to make comment on and rate on foods and servers, post any other information in their comments and automatic search etc. There will be also user-specific profiles that contains preferences, daily consumptions, history of previous meals and so on..

Mobil version focuses on personal assistance role more strongly so that server specific functions are not available on mobile application. For those functionalities, website is available.

Glossary Of The Requirements

Guest: Is a person who uses the website to explore restaurants and foods.

Registered User: Servers and regular users. They have some privileges.

Server: Restaurants, cafeterias, canteens, and any place that serves food.

Regular User: Registered users other than server.

Comment: Allows both the user and the server to interact with each other.

Rating: Restaurants are rated by taste. Servers are also rated.

Image: Servers include images for food descriptions.

Regular User Profile: Each regular user has a user profile that contains personal preferences, history of consumption, preferred diets, and recommendations.

Semantic Tag: Used for tagging foods, searching and recommendation.

Filter: Could be either on restaurants or foods. Foods could be filtered by ingredients, cuisine type, regimes or allergenic types.

Sorting: Restaurants on alphabetical ordering, popularity and ratings, foods on total calorie amount and which cuisine they belong to.

Micronutrients: Nutrients that humans consume in small quantities throughout life such as vitamins.

Macronutrients: Chemical elements that humans consume in the largest quantities. Three primary macronutrients are carbohydrate, fat and protein.

Server Profile: Restaurants have their own profile including a section at the top of food list which contains quantitatively most consumed foods, comments, ratings.

Recommendations: Main page of regular users include a section which provides recommendations based on their consumption history.

History: Keeps track of what the regular user has consumed.

1. User Requirements

  • 1.1. Unregistered Users
    • 1.1.1. Guests shall be able to register to the website through mobile app or website.
      • 1.1.1.1. Guests shall be able to register either as a user or a Server.
      • 1.1.1.2. Guest shall provide a username, a valid email address, and a password to sign up as a user.
      • 1.1.1.3. Guest shall be able to become a server by creating a restaurant after registering as a user.
    • 1.1.2. Guests shall be able to search for foods restaurants and ingredients.
      • 1.1.2.1. Guests shall be able to use manual search.
  • 1.2. Registered Users
    • 1.2.1. Regular Users
      • 1.2.1.1. Simple Search

        • 1.2.1.1.1. Search shall be done by entering some part of food name, restaurant name, or ingredient name.
      • 1.2.1.2. Advanced Search

        • 1.2.1.2.1. Search shall include filtering option for diet preferences.
        • 1.2.1.2.2. Search shall include filtering option for calorie and macronutrients.
        • 1.2.1.2.3. Search shall include filtering option for allergenic ingredients.
        • 1.2.1.2.4. Search shall include sorting option according to food ratings.
        • 1.2.1.2.5. Search shall include sorting option according to server ratings.
        • 1.2.1.2.6. Search shall include sorting option according to alphabetical order.
        • 1.2.1.2.7. Search shall be done according to name.
        • 1.2.1.2.8. Search shall be done according to the server.
        • 1.2.1.2.9. Search shall be done according to the tag.
      • 1.2.1.3. Automatic Search

        • 1.2.1.3.1. Search shall be done automatically according to the preferences.
      • 1.2.1.4. Social Interaction

        • 1.2.1.4.1 Users shall be able to rate on foods.
          • 1.2.1.4.1.1. Food taste shall be included into the rating system.
        • 1.2.1.4.2. Users shall comment on food and server pages and see the other comments.
        • 1.2.1.4.3. Users shall sign the food tasted by "Tasted it" button.
        • 1.2.1.4.4. Users shall be able to rate on servers.
      • 1.2.1.5. Profile

        • 1.2.1.5.1. Profile of a user shall include a section about her daily calorie consumption.
          • 1.2.1.5.1.1. Calorie consumption shall be calculated through the macro-nutrients and micro-nutrients of the consumed foods.
          • 1.2.1.5.1.2. User shall be able to select a time period for her calorie consumption.
        • 1.2.1.5.2. Main page of registered users shall include a section which provides recommendations based on their consumption history.
        • 1.2.1.5.3. Profile page of signed in users shall have a section for consumption history.
        • 1.2.1.5.4. Users shall be able to add diets to his/her profile.
      • 1.2.1.6. Add Food

        • 1.2.1.6.1. Users shall be able to add food.
        • 1.2.1.6.2. Users shall be able to add semantic tags to classify food.
    • 1.2.2. Servers
      • 1.2.2.1. Servers shall be able to add food.
      • 1.2.2.2. Servers shall be able to add semantic tags.
        • 1.2.2.2.1 Servers shall add semantic tags for the food.
          • 1.2.2.2.1.1 Informations about cuisine, allergens, or being organic can be expressed as semantic tags.
      • 1.2.2.3. Servers shall include an image to their food descriptions.
        • 1.2.2.3.1. Image size shall be less than 3 MB.
        • 1.2.2.3.2. Image format shall be JPG or PNG.
      • 1.2.2.4. Restaurant profile shall include a top consumed food(s).
      • 1.2.2.5. Restaurant page shall include comments section.
      • 1.2.2.6. Restaurant page shall include list of foods.
      • 1.2.2.7. Food page shall contain a button labeled as “Tasted it!”.
      • 1.2.2.8. Food page shall include the ingredients.
        • 1.2.2.8.1. Food page shall include micronutrients and macronutrients which are calculated from the ingredients automatically.
        • 1.2.2.8.2. Food page shall include calorie depending on the ingredients.
      • 1.2.2.9 Food page shall include a comment section.
      • 1.2.2.10 Food page shall include semantic tags.
      • 1.2.2.11 Food page shall include ratings.
      • 1.2.2.12 Food page shall include restaurant information
      • 1.2.2.13 Server page shall include ratings

2. System Requirements

  • 2.1. Functional Requirements
    • 2.1.1. The system shall allow a user to examine the history of his/her consumption.
    • 2.1.2. The system shall warn the user if he or she is about selecting a food which contains some nutrients she does not want
    • 2.1.3. The system shall allow a user to see top foods of a restaurant to which s/he is going.
    • 2.1.4. The system shall allow a user to sort a list of foods according to some fields which are set beforehand.(Ingredients, calorie etc.)
    • 2.1.5. The system shall allow a user to rate a food or server.
  • 2.2. Non-Functional Requirements
    • 2.2.1. Security
      • 2.2.1.1. Confidentiality, integrity, availability, accountability, privacy and authenticity shall be provided.
        • 2.2.1.1.1. Privacy
          • 2.2.1.1.1.1. The user’s information shall not be shared, copied or used without user’s permission.
        • 2.2.1.1.2. Availability
          • 2.2.1.1.2.1. Information shall be available to authorised users when they need them.
    • 2.2.2. Usability
      • 2.2.2.1. The system shall be user friendly.
        • 2.2.2.1.1. Learnability
          • 2.2.2.1.1.1. New users shall begin effective interaction.
          • 2.2.2.1.1.2. Help document shall be provided.
        • 2.2.2.1.2. Flexibility
          • 2.2.2.1.2.1. Negotiable task allocation between the user and the system should be provided. (Task-Migratability)
          • 2.2.2.1.2.2. The system shall be dialogue initiative.
        • 2.2.2.1.3. Robustness
          • 2.2.2.1.3.1. User shall be able to evaluate internal conditions of the system. (Observability)
          • 2.2.2.1.3.2. The system shall provide support for undoing errors. (Recoverability)
          • 2.2.2.1.3.3. The system functionality shall match common user tasks. (Task Conformance)
    • 2.2.3. Portability
      • 2.2.3.1. The system shall have Web and Mobile client.
        • 2.2.3.1.1. The system shall be compatible with latest versions of Google Chrome, Mozilla Firefox and Safari available in 2016.
        • 2.2.3.1.2. The system shall be compatible with Android.
    • 2.2.4 Reliability
      • 2.2.4.1. The system shall recover the last working state in case of crush.
    • 2.2.5 Flexibility
      • 2.2.5.1. The system shall be designed to add new features easily.
    • 2.2.6. Accessibility
      • 2.2.6.1. The interface shall be designed according to color-blindness.
      • 2.2.6.2. The font size shall be changed for users who have eye discomforts.
    • 2.2.7. Efficiency
      • 2.2.7.1. The system shall be storage-friendly.
    • 2.2.8. Maintainability
      • 2.2.8.1. The system shall support previous version for 6 months.
    • 2.2.9. Price
      • 2.2.9.1. The system shall be free for all users.
    • 2.2.10. Operability
      • 2.2.10.1. The system shall be kept in safe and reliable functioning operation.
    • 2.2.11. Performance
      • 2.2.11.1. The maximum response time shall be 5 seconds for all tasks excluding problems regarding users such as network problems etc..

Clone this wiki locally