Requirements - bounswe/bounswe2025group9 GitHub Wiki

Affordable & Healthy Eating Hub 🍏 : Software Requirements Specification (SRS)

Table of Contents

Revision History

Revision Number Date Author Reviewer Description Revision Hash
0.0.1 01/03/2025 Arda Saygan, Onur Kucuk, Yusuf Anil Yazici, Yusuf AKIN Initial draft 8499e82
0.0.2 06/03/2025 Yusuf AKIN Removed: 2.1.3, 2.4.4 , 2.4.5, 2.5.3 ; Revised: Made 2.* more manageble/simpler and more quantifyable c1462fd
0.1.0 06/03/2025 Yusuf AKIN Arda Saygan,Berkay Bilen Revised all functional requirements beb6a2e
0.1.1 08/03/2025 Yusuf AKIN Adjusted the phrasing of 1.\*, 2.\*, 3.\* without significant semantic change, except providing a minimum data requirement of 500 items for 1.I. Changed the enumeration of NFR's. Marked 8.I to be deleted as it is not easily verifiable. Marked 9.II to be deleted as it looks like a duplicate of 9.IV 6a6e705
0.1.2 09/03/2025 Yusuf Anıl Yazıcı Yusuf AKIN Adjusted the enumeration, added dropdown menus for requirement titles. 77f0016
0.1.3 10/03/2025 Arda Saygan Added 1.7 Account Management, in 1.4.6 added 'unlike' interaction c6bc37a
0.1.4 11/03/2025 Berkay Bilen Yusuf AKIN Arda Saygan Updated Introduction part 85bda9e
0.1.5 12/03/2025 Arda Saygan Updated glossary by adding meal plans to post types 476b5c5
0.1.6 14/03/2025 Yusuf Anıl Yazıcı Onur Küçük Made requirements more specific as per feedback - detailed nutrition score calculation (1.1.3), clarified food item submission process (1.1.2), and allergen selection (1.2.1). Added: New Moderator Management section (1.8) with moderator privileges and responsibilities. 1b8251f
0.1.7 14/03/2025 Onur Küçük Yusuf AKIN Made improvements to section 1.8, Moderator Management, by adding 1.8.4, 1.8.5, 1.8.6 and 1.8.7. Review changes: Rename 1.8 as Moderation a57c0b7
0.1.8 14/03/2025 Berkay Bilen Arda Saygan Reviewed documentation and added more detail as demanded by Suzan hoca as mentioned in issue #71 Changed points are : 1.1.4 1.3.5 1.3.6. 1.4.8 1.4.9 1.6.2 4453f90
0.1.9 14/03/2025 Fatih Furkan Bilsel Yusuf Anıl Yazıcı I gave additional details for sections 1.2.1 and 1.4.8 8c6e21b
0.1.10 14/03/2025 Yusuf Anıl Yazıcı Arda Saygan Restructured requirements for better clarity and referencing: 1) Reformatted 1.1.4 to use lettered list format for dietary options; 2) Split 1.2.1 into separate numbered requirements (1.2.1, 1.2.2) and renumbered subsequent items; 3) Separated recipe cost calculation from filtering options (1.3.5, 1.3.6) and nutrition details (1.3.7, 1.3.8); 4) Divided 1.4.8 Post Reporting System into individual requirements (1.4.8-1.4.12) to improve traceability 74c8ff5
0.1.11 15/03/2025 Berk Göktaş Updated requirements adding requirement 1.2.12 d3ef2de
0.1.12 15/03/2025 Mete Damar, Taha Topaloğlu Yusuf Anıl Yazıcı Updated glossary. 0b15879
0.1.13 19/03/2025 Berk Göktaş Yusuf Anıl Yazıcı Edited 1.6.1.1.1, 1.6.1.1.2, 1.4.1, 1.2.11, 1.2.9, and 1.1.2.1 according to the feedbacks given in Moodle. 4a99e04
0.1.14 19/03/2025 Yusuf Anıl Yazıcı Edited 1.3.6 and 1.5.3 according to the feedbacks given in Moodle. 3664b4a
0.1.15 19/03/2025 Onur Küçük Restructured 1.6.1 into two subsections 1.6.1.1 Inventory & Store Management and 1.6.1.2 Market Listing, revised requirement 1.6.1.1.2 and added 1.6.1.1.4, 1.6.1.1.5 and all requirements under 1.6.1.2 1927918
0.1.16 19/03/2025 Arda Saygan Onur Küçük Modified 1.7.5 and 1.7.6, add mail address information while signing up and described account saving procedure. 5bffc3
0.1.17 17/04/2025 Berkay Bilen Arda Saygan Modified 1.3.5 according to Moodle feedback d255409

Introduction

Purpose

The Affordable & Healthy Eating Hub aims to provide a digital platform that promotes budget-friendly and nutritious food choices. It enables users to compare grocery prices in different local food markets nearby, manage meal planning, and engage with a community focused on healthy eating. By integrating smart food selection tools, user-generated recipes, and local food resource connections, the platform enhances accessibility to affordable, nutritious meals.

Document Conventions

  • Functional requirements are prefixed with 1. and grouped into relevant categories.
  • Non-functional requirements are prefixed with 2. and categorized based on performance, usability, security, and compliance aspects.
  • Important definitions and terminology are listed in the Glossary section for clarity.

Product Scope

The Affordable & Healthy Eating Hub is a web-based and mobile application designed to:

  • Help users find affordable yet healthy grocery options through price comparisons.
  • Allow users to create and share meal plans, ensuring balanced nutrition within budget constraints.
  • Provide a food database with nutrition information, dietary filters, and allergen warnings.
  • Support a recipe-sharing platform, where users can contribute and discover healthy meals.
  • Enable marketplace interactions, where local sellers and buyers can connect over grocery items.
  • Foster a community-driven forum, where users can exchange nutrition tips and discuss healthy eating habits.

By offering these features, the platform contributes to making healthy eating accessible and sustainable for a wide range of users.

References:

Elicitation Questions prepared with customer

Glossary

Nutrition score: A numerical rating (two decimal places, out of 10) assigned to a food item based on its nutritional profile, calculated by considering calorie density, micronutrient values, and processing levels.

Allergens: Substances in food that can trigger allergic reactions in sensitive individuals.

Allergies: User-defined dietary restrictions that generate alerts when selected ingredients appear in a recipe or shopping list.

Recipe: A structured post containing a list of ingredients with units, step-by-step instructions, nutrition analysis, cost breakdown, and optional store recommendations for ingredients.

Shopping list: A customizable collection of grocery items that users can compile for purchase, with system-generated suggestions based on local store availability and prices.

Meal plan: A structured schedule of meals that balances nutritional needs and the user's budget over a specified time interval.

Nutrients: The components in food that provide nourishment, including proteins, carbohydrates, fats, vitamins, and minerals.

Local: Stores and/or sellers located within the same city as the user.

User: An individual who accesses the platform as a general consumer, dietitian (by creating a dietitian profile), or store owner (by adding store and product information).

Dietary option: A specific eating pattern categorized as vegetarian, vegan, or celiac.

Post: A user-generated content item shared in the forum, categorized as a meal plan, recipe, or nutrition tip.

Profession Tags: Labels that identify users as either a "Dietitian" or "Store Owner."

Market Listing: A sorted display of markets organized by corresponding food items.

Nutrition Tip: A post containing dietary advice or food recommendations.

Post Tag: A classification label for user content, categorized as "Dietary Tip," "Recipe," or "Meal Plan."

Cost breakdown: A detailed analysis of ingredient expenses calculated per unit or gram.

Forum: A discussion space where users interact with posts through rating, commenting, or sharing via links.

Rating: A user-provided evaluation score for meal plans, recipes, dietitians, and food stores that can be used as a filtering criterion.

Price estimate: A calculated approximation of the total cost for a recipe, individual ingredients, or a complete shopping list.

Nutritional analysis: A detailed declaration and comparison of the macronutrients and micronutrients present in a recipe.

Grocery tracking: A feature that maintains a record of previously purchased items.

Grocery option: Any food item available for purchase on the platform, such as apples, rice, or other consumables.

Micronutrients: Essential nutrients required by the body in small amounts, including vitamins and minerals.

Macronutrients: Essential nutrients required by the body in large amounts, including proteins, carbohydrates, and fats.

Food Item: A database entry containing a food's name, category, and complete nutritional information.

Food Catalog: A comprehensive system containing all food items with their detailed nutritional profiles, which users can propose additions to.


1. Functional Requirements

1.1. Food Database
  • 1.1.1 The system shall include a list of at least 500 common food items with nutritional details, including protein, fat, and caloric content.

  • 1.1.2.1 A user shall be able to propose a new food item for a moderator to review and approve by providing the following mandatory fields:

    • Food Name
    • Food Category (e.g., Fruit, Vegetable, Dairy, Meat, Grain)
    • Macronutrient Information:
      • Calories (kcal per 100g)
      • Carbohydrates (g per 100g)
      • Protein (g per 100g)
      • Fat (g per 100g)
  • 1.1.2.2 The user shall be able to provide optional micronutrient data, including:

    • Vitamins (e.g., Vitamin A, C, B12, D in mg/μg per 100g)
    • Minerals (e.g., Iron, Calcium, Magnesium in mg per 100g)
  • 1.1.3 The system shall calculate and display a nutrition score (scale of 0.00-10.00) for each food item based on:

    • Protein content (30% of score)
    • Carbohydrate quality (30% of score, favoring complex carbs over simple sugars)
    • Nutrient balance (40% of score, representing the overall balance of macro and micronutrients)
  • 1.1.4 The system shall support the following dietary options:

    • a) Low-fat
    • b) High-protein
    • c) Vegetarian
    • d) Vegan
    • e) Celiac-friendly
    • f) Gluten-free
    • g) Lactose-free
1.2. User Profile Management
  • 1.2.1 Users shall be able to select multiple allergens from a predefined list, including:
    • a) Common allergens: Gluten, lactose, peanuts, soy, shellfish, eggs, tree nuts, sesame, fish
    • b) Food additives: Sulfites, artificial colorants, preservatives
  • 1.2.2 Users shall be able to add custom allergens by entering a food or ingredient not included in the predefined list.
  • 1.2.3 Users shall have the ability to list their personal recipes.
  • 1.2.4 Users shall be able to store and update their contact information.
  • 1.2.5 Users shall be able to view their shopping list.
  • 1.2.6 Users shall be able to view inventory items they have listed.
  • 1.2.7 Users shall be able to view their liked posts.
  • 1.2.8 Users shall be able to view their liked recipes.
  • 1.2.9 Users shall be able to choose and display profession tags such as a dietician or store owner without needing proof.
  • 1.2.10 Users shall be able to upload certificates supporting their profession tags.
  • 1.2.11 Users shall be able to report other users using a report panel so that the moderators can take action, by selecting one of the report options and providing a description in text for the reason of the report:
    • a) Invalid certificate - The certificate uploaded in the reported user's profile is not authenticated or does not match the profession claimed.
    • b) Misleading information - The inventory, contact information, location, or the name of the store is incorrect, or a user profile contains false information.
  • 1.2.12 Users shall be able to see the warnings, post removals, bans and suspensions issued to their accounts and the related reasons.
1.3. Recipe Management
  • 1.3.1 Recipes shall include a list of ingredients.

  • 1.3.2 Recipes shall include links to nutritional values for each ingredient, linking to the relevant food item.

  • 1.3.3 Recipes shall include a way to list and detail preparation steps.

  • 1.3.4 System shall support a way to display providers for each recipe ingredients that links with the relevant market listings.

  • 1.3.5 The system shall provide an estimated recipe cost by estimating prices of each ingredient based on the following strategy :

    • a) If there are 3 or more listings for an ingredient within the selected location scope (e.g., neighborhood), the system shall average the three lowest prices within that scope.
    • b) If there are fewer than 3 listings, the system shall expand the scope to a broader area (e.g., city) to complete the calculation.
  • 1.3.6 Users shall be able to filter recipes by costs (calculated as the sum of ingredient costs, where each ingredient cost is the average of its 3 nearest Market Listings):

    • a) Lowest to highest cost
    • b) Highest to lowest cost
    • c) Best cost-to-nutrition ratio (cost divided by nutrition score)
  • 1.3.7 Recipes shall have an aggregated nutrition score, calculated based on ingredient quality, macronutrient balance, and micronutrient density.

  • 1.3.8 Users shall be able to sort and filter recipes by:

    • a) Highest to lowest nutrition score (healthiest recipes first)
    • b) Setting a minimum nutrition score threshold
    • c) Overall nutrition score
    • d) Ranking
    • e) Newest to oldest (by their posting date)
1.4. Forum & Nutrition Tips
  • 1.4.1 Posts shall have tags, and the post owners shall be able to edit those tags.

  • 1.4.2 Users shall be able to write free-text forum posts.

  • 1.4.3 Nutrition tips shall be provided to guide users on healthy eating habits.

  • 1.4.4 Users shall be able to browse forum posts.

  • 1.4.5 Users shall be able to filter posts by tags and sort them by rating.

  • 1.4.6 Users shall be able to interact with forum posts by,

    • a) Liking posts
    • b) Commenting on posts
    • c) Sharing posts via a link
    • d) Unliking liked posts
  • 1.4.7 Posts can have tags that could be used for filtering the following tags:

    • a) Dietary tip
    • b) Recipe
    • c) Meal plan
  • 1.4.8 Users shall be able to report forum posts for the following reasons:

    • a) Spam – Irrelevant, repetitive, or promotional content not related to nutrition
    • b) Misinformation – False or misleading health claims that could be harmful
    • c) Inappropriate Content – Including hate speech, offensive language, promotion of unhealthy practices, or unauthorized advertisements
  • 1.4.9 Reports shall be processed within 48 hours.

  • 1.4.10 Possible moderation actions shall include:

    • a) Warning to the user for minor violations
    • b) Post removal for guideline violations
    • c) Account suspension or ban for repeated offenses
  • 1.4.11 Users shall be able to track the status of their reports in a "Reported Posts" section.

  • 1.4.12 Reported posts shall be sent to moderators, who can take actions including approving, warning, removing, or banning users if necessary.

1.5. Meal Planner
  • 1.5.1 Users shall be able to select an optional budget for weekly or monthly meal planning.
  • 1.5.2 Users shall be able to share their meal plans as a post.
  • 1.5.3 System shall be able to generate meal plans by randomly selecting recipes that match user's dietary preferences and restrictions, ensuring the total macronutrients equal the average nutritional needs of a person. These recipes will be randomly assigned to the meal plan schedule to create balanced daily and weekly meals.
  • 1.5.4 Users shall be able to save and reuse meal plans.
  • 1.5.5 Users shall be able to receive nutritional summaries for their meal plans.
1.6. Market
1.6.1. Producer
1.6.1.1 Inventory & Store Management
  • 1.6.1.1.1 Store owners shall be able to maintain an inventory of food items they own, including quantity.
  • 1.6.1.1.2 Store owners shall be able to assign and unassign a list of food items from their inventories to a specific store they own.
  • 1.6.1.1.3 Each store owner must have a registered location.
  • 1.6.1.1.4 Store owners shall be able to create and manage multiple stores, by providing following fields:
    • a) Store name
    • b) Store location
    • c) Contact information (phone number, email)
    • d) Store description (optional)
  • 1.6.1.1.5 Each store shall list only a subset of items from the user's inventory that's not listed in any other store of that store owner.
1.6.1.2 Market Listing
  • 1.6.1.2.1 Each market listing shall belong to exactly one store and reference an item from the store owner's inventory.
  • 1.6.1.2.2 Each market listing shall include the following information:
    • a) Price
    • b) Stock
    • c) Description (optional)
    • d) Image (optional)
  • 1.6.1.2.3 The Market shall display all available listings from all stores.
1.6.2. Consumer
1.6.2.1. Grocery Search & Filtering
  • 1.6.2.1.1 Users shall be able to search and filter grocery options by:

    • a) Name
    • b) Price (set min-max values)
    • c) Nutrition scores (filter in a range that can be numeric for example 1-10)
    • d) Dietary options (vegetarian, vegan, celiac-friendly)
  • 1.6.2.1.2 Users shall be able to filter grocery options by:

    • a) Nutrition scores
    • b) Dietary options
    • c) Price
    • d) Allergies
    • e) Store ratings
1.6.2.2. Grocery Interaction
  • 1.6.2.2.1 Users shall be able to interact with inventory items by:

    • a) Rating items
    • b) Sharing items via a link
    • c) Viewing item details (image, price, stock, etc.)
1.6.2.3 Shopping List Management
  • 1.6.2.3.1 Users shall be able to create shopping lists with the following capabilities:

    • a) Shopping lists shall be saved for future use.
    • b) Users shall be able to delete a shopping list.
1.7. Account Management
  • 1.7.1 Users shall be able to sign up by giving their mail address, choosing a unique username and a secure password.
  • 1.7.2 Users shall be able to log in using their username and password.
  • 1.7.3 Users shall be able to log out of their account.
  • 1.7.4 Users shall be able to change their password after logging in.
  • 1.7.5 Users shall be able to save their account if they forget their username or password. This should be done by receiving a new password to their registered mail address.
  • 1.7.6 Users shall receive an authentication mail when they first sign up. When this mail is replied, system shall complete the sign-up procedure.
1.8. Moderation
  • 1.8.1 The system shall assign moderator privileges to selected users.
  • 1.8.2 Moderators shall be able to review and approve or reject new food item submissions.
  • 1.8.3 Moderators shall be able to verify and approve profession tags and certificates uploaded by users.
  • 1.8.4 The system shall provide a moderation dashboard for moderators to review reported posts or users.
  • 1.8.5 Moderators shall be able to view detailed information about reported posts or users, including:
    • a) Report reason
    • b) Reporting user details.
    • c) Timestamp of the report.
  • 1.8.6 Moderators shall be able to take action on reported posts or users by,
    • a) Removing posts
    • b) Warning users
    • c) Banning users
  • 1.8.7 The system shall maintain a history of previous report records and moderation actions.

2. Non-Functional Requirements

2.1. Performance & Scalability
  • 2.1.1 The platform shall support at least 50 concurrent users without performance degradation.
  • 2.1.2 Search queries shall return results in under 5 seconds for datasets under 100,000 records.
  • 2.1.3 The system shall handle up to 500 new recipe submissions per hour without significant degradation in performance.
2.2. Usability & Accessibility
  • 2.2.1 The platform shall provide a basic, clean UI with clear navigation and labels.
  • 2.2.2 The system shall support keyboard navigation for key workflows (e.g., form submission, search).
  • 2.2.3 The platform shall support at least 2 languages, with basic text translation only (not full localization).
2.3. Reliability & Availability
  • 2.3.1 The system shall allow manual database backups to prevent data loss.
  • 2.3.2 The system shall restart automatically if it crashes (e.g., via a simple restart script or a cloud function).
  • 2.3.3 The system shall aim for 95% uptime during testing (allowing for debugging and improvements).
  • 2.3.4 The system shall automatically restart if the primary process crashes or becomes unresponsive, ensuring minimal downtime without requiring manual intervention.
2.4. Security & Privacy
  • 2.4.1 User passwords shall be hashed using bcrypt(?) before storage.
  • 2.4.2 The system shall use HTTPS for secure communication if deployed online.
  • 2.4.3 Users shall have basic privacy settings (e.g., ability to make posts private).
2.5. Compliance & Regulations
  • 2.5.1 Sellers shall be able to upload food safety certifications, but they won't be verified automatically.
  • 2.5.2 The system shall allow sellers to add allergen information manually, but this won't be enforced.
  • 2.5.3 The system shall display a basic Terms of Service upon user registration, requiring users to check a box indicating their agreement before completing signup.
⚠️ **GitHub.com Fallback** ⚠️