-
Notifications
You must be signed in to change notification settings - Fork 0
Class Diagrams (DRAFT)
MeteDamar edited this page Mar 14, 2025
·
4 revisions
classDiagram
class MarketListing {
-marketListingId String
-foodEntryID Integer
-price Double
-stockQuantity Integer
-description String
-imageURL String
-createdAt Date
-lastModifiedAt Date
+updateStock(quantity Integer) void
+updatePrice(price Double) void
}
class Market {
-marketID Integer
-marketName String
-marketOwnerID Integer
-description String
-location String
-contact String
-marketListings List~MarketListing~
+addListing(listing MarketListing) void
+removeListing(listingID Integer) void
+getListingByID(listingID Integer): MarketListing
+getListings() List~MarketListing~
}
Market "1" --> "*" MarketListing : has
classDiagram
class FoodEntry {
-String name
-String category
-float servingSize
-float caloriesPerServing
-float proteinContent
-float fatContent
-float carbohydrateContent
-Set~String~ allergens
-Set~String~ dietaryOptions
-float nutritionScore
-String imageUrl
+FoodEntry(String name, String category)
+FoodEntry(String name, String category, float servingSize, float calories, float protein, float fat, float carbs)
+float calculateNutritionScore()
+void updateNutritionalInfo(float calories, float protein, float fat, float carbs)
+void updateServingSize(float servingSize)
+void addAllergen(String allergen)
+void removeAllergen(String allergen)
+void addDietaryOption(String option)
+void removeDietaryOption(String option)
+boolean isDietCompatible(String dietType)
+Set~String~ getAllCompatibleDiets()
+boolean isAllergenFree(String allergen)
+boolean isAllergenFree(Set~String~ allergens)
+Map~String, Object~ getFullDetails()
}
class FoodCatalog {
-List~FoodEntry~ foodItems
-Map categorizedItems
+void addFoodItem(FoodEntry item)
+void removeFoodItem(FoodEntry item)
+List~FoodEntry~ searchByName(String nameQuery)
+List~FoodEntry~ filterByNutritionScore(float minScore)
+List~FoodEntry~ filterByDietaryOption(String option)
+List~FoodEntry~ filterByAllergenFree(Set~String~ allergens)
+List~FoodEntry~ filterByCategory(String category)
+FoodEntry getFoodItemById(String id)
+List~FoodEntry~ getAllFoodItems()
}
FoodCatalog "1" o-- "many" FoodEntry : contains >
classDiagram
class RecipeList {
-recipes: List<Recipe>
+RecipeList()
+void addRecipe(Recipe recipe)
+void removeRecipe(Integer recipeID)
+Recipe findRecipe(String name)
+void sortRecipesByPostDate()
+void sortRecipesByCost()
+void sortRecipesByNutritionScore()
+void filterRecipesAllergens(String allergen)
+void filterRecipesDietaryOptions(String dietaryOption)
+void sortRecipesByCostToNutritionScoreRatio()
+void listAllRecipes()
}
class Recipe {
-recipeID: Integer
-postDate: Date
-name: String
-ingredients: List<(FoodEntry,Amount)>
-instructions: List<String>
-servingSize: int
-prepTime: int
-cookTime: int
-totalTime: int
-nutritionScore: float
-totalFatContent: float
-totalProteinContent: float
-totalCarbonhydrateContent: float
-allergens: List<String>
-dietaryOptions: List<String>
-totalCalorie: int
-imageUrl: String
-videoUrl: String
+Recipe(Integer recipeID, String name, List<(FoodEntry,Amount)> ingredients, String instructions, int prepTime, int cookTime, String imageUrl, String videoUrl)
+int calculateTotalTime()
+float calculateCost()
+float calculateCostToNutritionRatio()
+float calculateTotalFatContent()
+float calculateTotalProteinContent()
+float calculateTotalCarbonhydrateContent()
+void changeServingSize()
+List<String> getAllergens()
+List<String> getDietaryOptions()
+void changeMeasurementUnit()
+void removeIngredient()
+void addIngredient()
+void displayRecipe()
}
RecipeList "1" *-- "*" Recipe: contains

-
Use Cases:
- Template
- Scenario 1: Community Sharing
- Scenario 2: For a Dietitian
- Scenario 3: Maintaining a Personal Inventory (as a Producer)
- Scenario 4: Proposing a Product and Adding a Recipe to Weekly Meal Plan
- Scenario 5: Creating a Meal Plan
- Scenario 6: Resetting Password
- Scenario 7: Moderator Actions
- Scenario 8: Searching for and Proposing a New Food Item
- Scenario 9: Budget-Conscious Grocery Shopping
- Scenario 10: Creating a New Store