Skip to content

Requirements

Ozgur Savascioglu edited this page May 13, 2025 · 35 revisions

Glossary

  • Meal Planner: A system feature that helps users organize their meals for a specific period, such as a day, a week, or a custom timeframe, by selecting and scheduling recipes.
  • Allergen Information: A detailed list of potential allergens present in ingredients and recipes, helping users with dietary restrictions avoid harmful substances.
  • Budget Grocery: A category of groceries that are affordable and cost-effective, offering budget-friendly ingredient options for meals.
  • Large Grocery Markets: Big supermarket chains that offer a wide range of food products and ingredients.
  • Local Markets: Independent grocery stores that are smaller in size compared to supermarket chains.
  • Shopping List: A list generated for a selected meal, detailing the necessary ingredients.
  • Non-Registered User: A Non-Registered User refers to a visitor on the sign-in page who cannot access the platform's functionalities.
  • Log In: An action that allows users to pass the security phase and interact with the platform.
  • Registered User: A signed-up member with access to personalized features like saving recipes and creating meal plans.
  • Dietitians: Nutrition experts who provide guidance on healthy eating and verify nutrition-related content.
  • Username: A unique identifier chosen by the user to access the system.
  • Secure Password: A password with a minimum of 8 characters, including at least one uppercase letter, one lowercase letter, and one number.
  • Valid Email Address: A real, working email address required for account registration and communication.
  • Terms of Use and Privacy Policy: Legal agreements outlining the platform’s rules, data handling policies, and user rights, which must be accepted before using the service.
  • Profile Page: A section where registered users can view and modify their personal details and settings.
  • Ingredient Lists: A list of ingredients required for a specific recipe.
  • Comment: A textual response to a recipe, market or meal added by registered users.
  • Q&A Page: A community-driven platform within the system where users can post nutrition-related questions and receive answers from verified dietitians.
  • Standard User: A general user with basic access to the platform, such as viewing content, saving recipes, and tracking meals.
  • Home Cook: A user who prepares meals at home and may contribute recipes to the platform. Can also use meal planning tools and interact with other users.
  • Admin: A user with the highest level of access, responsible for managing users, content, permissions, and overall platform settings.
  • Account: A user profile that stores personal information, preferences, and access permissions based on the assigned role.
  • Recipe: A structured set of instructions for preparing a dish, including ingredients, quantities, and cooking steps.
  • Meal Plan: A scheduled selection of meals over a specific period, designed for dietary goals, convenience, or budgeting. May be created by users or dietitians.

1. Functional Requirements

1.1 User Requirements

1.1.1 User Registration & Login

  • 1.1.1.1 Registration Requirements

    • 1.1.1.1.1 Users shall be able to register only if they provide a unique username, a valid email address, a password, and accept the Terms of Use and Privacy Policy.
  • 1.1.1.2 Login Requirements

    • 1.1.1.2.1 Registered users shall be able to log in using their registered credentials.
    • 1.1.1.2.2 Registered users shall be able to log out from the system.

1.1.2 Profile Management

  • 1.1.2.1 Registered users shall be able to view their profile page.
  • 1.1.2.2 Registered users shall be able to specify food allergies (e.g., nuts, dairy, gluten, shellfish), which the system shall use to filter out incompatible recipes and provide personalized recipe recommendations accordingly.
  • 1.1.2.3 Registered users shall be able to upload, update, and remove their profile photo.
  • 1.1.2.4 Registered users should be able to change their username and password.
  • 1.1.2.5 Registered users shall be able to update their email address.
  • 1.1.2.6 Registered users shall be able to manage their notification preferences via on/off toggles for different types of email notifications, including when a followed user or dietitian posts new content such as a recipe or comment; when another user bookmarks one of their recipes; when a user rates their recipe; when someone replies to a forum discussion they created; when someone replies to a Q&A post they created; and when a new user follows them.
  • 1.1.2.7 Registered users shall have the option to set their profile visibility to public or private.
  • 1.1.2.8 Registered users shall have a section in their profile displaying achievements, including the total number of recipes they have created; the average rating across all their recipes; and the total number of bookmarks received for their recipes.
  • 1.1.2.9 Registered users should have the option to display badges (Home Cook, Experienced Home Cook) on their profile.
  • 1.1.2.10 Registered users shall be able to permanently delete their account through account settings.
  • 1.1.2.11 Users shall be able to reset their password via email.
  • 1.1.2.12 Registered users shall have a "Bookmarked Recipes" section in their profile, where they can save and access selected recipes for future reference.

1.1.3 User Types

  • 1.1.3.1 Non Registered User

    • 1.1.3.1.1 Non-registered users shall be able to register.
    • 1.1.3.1.2 Non-registered users shall be able to see Terms of Use and Privacy Policy.
    • 1.1.3.1.3 Non-registered users shall be able to initiate a password reset process by providing their email, which the system shall use to send a secure reset link.
  • 1.1.3.2 Registered User

    • 1.1.3.2.1 Registered users shall inherit all non-registered user requirements.
    • 1.1.3.2.2 Registered users shall be able to browse recipes, nutrition tips, and the local resource directory.
    • 1.1.3.2.3 Registered users shall be able to comment on recipes and discussions
    • 1.1.3.2.4 Registered users shall be able to like recipes.
    • 1.1.3.2.5 Registered users shall be able to follow/unfollow other registered users.
    • 1.1.3.2.6 Registered users shall be able to view the meal plans of the users they follow, based on the visibility settings set by the followed user.
    • 1.1.3.2.7 Registered users shall be able to create, edit, and delete personal meal plans.
    • 1.1.3.2.8 Registered users shall be able to create, edit, and delete recipes with cost breakdowns.
    • 1.1.3.2.9 Registered users shall be able to bookmark recipes and meal plans.
    • 1.1.3.2.10 Registered users shall be able to delete their comments on recipes and retract their likes from recipes.
    • 1.1.3.2.11 Registered users shall be able to rate recipes based on taste and difficulty.
    • 1.1.3.2.12 Registered users shall gain the role of home cook if they provide 5 recipes that are approved by a dietitian user.
    • 1.1.3.2.13 Registered users shall be able to ask questions on the Q&A page.
  • 1.1.3.3 Dietitian

    • 1.1.3.3.1 Dietitians shall inherit all registered user requirements.
    • 1.1.3.3.2 Dietitians shall upload a verification document for validation of their account.
    • 1.1.3.3.4 Dietitians shall be able to rate recipes on a 1–5 scale in terms of healthiness.
    • 1.1.3.3.5 Dietitians shall have a personal profile page within the system to display their professional information (name, university/college where they obtained their degree(s), areas of expertise, phone number, email, clinic location, and website link.)
    • 1.1.3.3.6 Dietitians shall be able to answer questions on the Q&A page.
    • 1.1.3.3.7 Dietitians shall be able to provide nutrition tips on the Q&A page.
  • 1.1.3.4 Home Cook

    • 1.1.3.4.1 Home cooks shall inherit all registered user requirements.
    • 1.1.3.4.2 Home cooks shall be able to submit recipes for featured recognition.
    • 1.1.3.4.3 Home cooks shall be able to provide cooking tips and reviews.
    • 1.1.3.4.4 Home cooks shall be able to create, edit, and delete meal plans.
    • 1.1.3.4.5 Home cooks shall have an experience field to indicate cooking expertise level.
    • 1.1.3.4.6 Home cooks shall gain the title of experienced cook if they have uploaded more than 20 recipes.
  • 1.1.3.5 Admin

    • 1.1.3.5.1 Admins shall be able to remove user accounts.
    • 1.1.3.5.2 Admins shall be able to temporarily or permanently ban user accounts.
    • 1.1.3.5.3 Admins shall be able to remove user-generated content.
    • 1.1.3.5.4 Admins shall be able to update local resource listings (food banks, farmers' markets).
    • 1.1.3.5.5 Admins shall be able to manage reported content and user issues.

1.2 System Requirements

1.2 System Requirements

1.2.1 Budget Grocery Search & Comparison

  • 1.2.1.1: The system shall allow users to search for grocery products across multiple retailers by category, name, or price.
  • 1.2.1.2: The system shall allow users to compare the prices of grocery products among retailers.
  • 1.2.1.3: The system shall update and display up-to-date stock availability for each product.
  • 1.2.1.4: The system shall update and display up-to-date pricing data for each product.
  • 1.2.1.5: The system shall allow users to filter search results based on dietary restrictions, special preferences, and budget limits.
  • 1.2.1.6: The system shall maintain a searchable directory of local food banks and farmers’ markets.
  • 1.2.1.7: The system shall refresh retailer price and stock data every 3 months to maintain up-to-date information.
  • 1.2.1.8: If the upstream API is temporarily unreachable, the system shall fall back to the most recent successful data pull until the connection is restored.
  • 1.2.1.9: The system shall refresh the local-food directory through an automated web-crawl performed every 3 months.
  • 1.2.1.10: The system shall enable users to search and filter the local-food directory based solely on the metadata (e.g., distance, operating hours, produce type) collected during the most recent crawl.

1.2.2 Nutrition Education

  • 1.2.2.1: The system shall provide a dedicated Q&A page where users can post questions related to healthy eating and nutrition.
  • 1.2.2.2: The system shall restrict responses to user questions on the Q&A page to verified dietitians only, with their answers highlighted or prioritized.
  • 1.2.2.3: The system shall allow verified dietitians to rate uploaded recipes based on nutrition values.
  • 1.2.2.4: The system shall allow registered users to access nutrition tips based on their food allergies.

1.2.3 Community Recipe Sharing

  • 1.2.3.1: The system shall provide step-by-step guides for meal preparation for each recipe.
  • 1.2.3.2: The system shall display detailed cost breakdowns per serving for each recipe.
  • 1.2.3.3: The system shall display detailed ingredient lists for each recipe, including quantities, allergen information, and market-specific prices.
  • 1.2.3.4: The system shall provide a ranking system that enables users to comment on and rate recipes based on taste and difficulty.
  • 1.2.3.5: The system shall ensure that media are correctly displayed with recipe details.
  • 1.2.3.6: The system shall ensure that images and videos are displayed at a high enough quality and within common aspect ratios to appear sharp, undistorted, and smoothly playable on modern devices using broadly supported formats.
  • 1.2.3.7: The system shall ensure that all media assets include descriptive alternative text for accessibility and that a visually appropriate placeholder thumbnail is displayed if a media asset fails to load.

1.2.4 Meal Planning

  • 1.2.4.1: The system shall display random recipes from the database that fit the budget entered by the user for breakfast, lunch, and dinner.
  • 1.2.4.2: The system shall be capable of generating a meal plan based on the ingredients available to the user.
  • 1.2.4.3: The system shall provide a warning when the user's selections exceed the budget.
  • 1.2.4.4: The system shall classify recipes according to their meal tags.
  • 1.2.4.5: The system shall display the user’s current meal plan.
  • 1.2.4.6: The system shall filter through suggested meal plans based on prices and preferences.
  • 1.2.4.7: The system shall generate shopping lists based on the selected meal plan.
  • 1.2.4.8: The system shall calculate the associated shopping list.
  • 1.2.4.9: The system shall display the total cost of the associated shopping list.
  • 1.2.4.10: The system shall indicate the retailers from which the items on the shopping list can be purchased.
  • 1.2.4.11: The system shall detect potential allergens and provide warnings.
  • 1.2.4.12: The system shall retrieve meal plans from existing data sources by filtering for compatibility with the user's budget, nutritional targets, and allergy restrictions.
  • 1.2.4.13: The system shall prioritize the retrieved meal plans based on how closely they align with cost efficiency, dietary preferences, and ingredient availability.

1.2.5 Administration

  • 1.2.5.1: The system shall provide a flag system for each page.
  • 1.2.5.2: The system shall provide an interface for a system administrator to review flags and perform only the operations they are authorized for.
  • 1.2.5.3: The system shall display a warning informing the user that account deletion is a permanent action, resulting in the complete and irreversible loss of all personal data, saved recipes, ratings, comments, meal plans, account preferences, and any other user-generated content associated with the account.
  • 1.2.5.4: The system shall process the account deletion and remove all personal data upon successful deletion.
  • 1.2.5.5: The system shall display a confirmation message once the account is successfully deleted.
  • 1.2.5.6: In the event of a failure during the deletion process due to system, network, or authentication errors, the system shall record the error, notify the user, and provide a mechanism to attempt the deletion again.
  • 1.2.5.7: The flag system shall support four flag types—Inappropriate, Spam, Copyright, and Incorrect Data—and each flag shall create an admin review queue entry with status values {Open, In Review, Resolved}.

2. Non-Functional Requirements

2.1 Performance and Responsiveness

  • 2.1.1 The main website page shall load within 5 seconds.
  • 2.1.2 The mobile app shall launch within 5 seconds.
  • 2.1.3 The system shall be able to serve up to 1000 concurrent users.

2.2 Security and Privacy

  • 2.2.1 Passwords shall have a minimum length of 8 characters, include at least one uppercase letter, one lowercase letter, and one number.
  • 2.2.2 Passwords shall be stored securely using hashing.
  • 2.2.3 Access to user information should be able to be protected by a secure authentication method (e.g., multi-factor authentication).
  • 2.2.4 The system shall comply with applicable data protection regulations (e.g., GDPR, KVKK).
  • 2.2.5 The system shall securely remove all personal information from the platform’s database upon account deletion to ensure user privacy.
  • 2.2.6 The system shall ensure that any shared content (such as recipes or meal plans) is deleted as part of the account deletion process.

2.3 Usability and Accessibility

  • 2.3.1 There shall be a simple help section to assist users in navigating the platform.

👥 Team Members

📌 Milestone Report

💬 Communication Plan

📋 Meeting Agendas

📅 Meeting Notes

📂 Backend Subgroup Meeting Notes

📂 Frontend Subgroup Meeting Notes

📂 Mobile Subgroup Meeting Notes

📚 Lecture Notes

🛠️ Team Best Practices

✍️ Guidance

❗ Issues

🚀 Project

🧱 Diagrams

👩‍💼 User Scenarios

Click to Expand ⬇️

🗂️ Templates

Clone this wiki locally