Requirements - bounswe/bounswe2025group9 GitHub Wiki
- Revision History
- Introduction
- Glossary
- 1. Functional Requirements
- 2. Non-Functional Requirements
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 |
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.
- 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.
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.
Elicitation Questions prepared with customer
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.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.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.