Skip to content

Swift-Coding-Club-UCD/Best-By

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Best-By

Best-By Logo

Smart Food Management & Recipe Suggestions

Overview

Best-By is an innovative iOS app designed to streamline food management, reduce waste, and enhance your cooking experience. By intelligently tracking the expiration dates of your food items and suggesting personalized recipes based on what you have, Best-By helps you make the most of your grocery shopping while minimizing waste.

The Problem We're Solving

In the United States, 30-40% of food supply is wasted, with a significant portion due to mismanagement of shelf life and expiration dates (source). While food manufacturers label products with estimated "best by" dates, many consumers forget to check them or don't monitor their food inventory effectively.

Best-By tackles this issue by:

  • Tracking each product's freshness
  • Sending timely reminders before food expires
  • Suggesting recipes so items can be used before they spoil

By helping users stay organized and informed, we're reducing waste, saving money, and promoting a more sustainable approach to everyday eating.

Features

  • Smart Inventory Tracking: Easily manage your food items with expiration date monitoring
  • Personalized Recipe Suggestions: Discover recipes based on ingredients you already have
  • Dietary Preference Filters: Customize recipe suggestions based on your dietary needs and preferences
  • Recipe Collections: Organize favorite recipes into custom folders for easy access
  • Shopping List: Automatically generate shopping lists from recipe ingredients
  • Profile Customization: Set allergy information, cooking preferences, and more
  • Meal Planning: Schedule meals for the week with suggested recipes

Technical Details

  • Smart Inventory Tracking: Easily manage your food items with expiration date monitoring
  • Personalized Recipe Suggestions: Discover recipes based on ingredients you already have
  • Dietary Preference Filters: Customize recipe suggestions based on your dietary needs and preferences
  • Recipe Collections: Organize favorite recipes into custom folders for easy access
  • Shopping List: Automatically generate shopping lists from recipe ingredients
  • Profile Customization: Set allergy information, cooking preferences, and more
  • Meal Planning: Schedule meals for the week with suggested recipes

Technologies Used

  • Swift & SwiftUI: Modern UI development with declarative syntax
  • Spoonacular API: Recipe discovery and ingredient analysis
  • MVVM Architecture: Clear separation of concerns for maintainability
  • Async/Await & Combine: Efficient asynchronous programming
  • Core Data: Local data persistence
  • Local Notifications: Expiration date reminders

Architecture

Best-By follows the MVVM (Model-View-ViewModel) architecture pattern:

  • Models: Represent data structures like FridgeItem, Recipe, UserProfile
  • Views: SwiftUI views for presenting the user interface
  • ViewModels: FridgeViewModel manages application logic and state

Core Features

Inventory Management

  • Add food items with categories, quantities, and expiration dates
  • Visual indicators for food freshness status
  • Sort and filter options for better organization
  • Expiration notifications to reduce food waste

Recipe Discovery

  • Automated recipe suggestions based on available ingredients
  • Recipe filtering by cooking time, difficulty, and dietary preferences
  • Detailed instructions and ingredient lists
  • Option to add missing ingredients to shopping list

User Profiles

  • Customizable user profiles with preferences
  • Allergy and dietary restriction tracking
  • Recipe complexity and cooking time preferences
  • Favorite recipe management with folder organization

Installation

  1. Clone the repository:

    git clone https://github.com/aktanazat/Best-By.git
  2. Open the project in Xcode:

    cd Best-By
    open fridge/fridge.xcodeproj
  3. Set up your Spoonacular API key:

    • Get an API key from Spoonacular
    • Replace the API key in RecipeService.swift
  4. Build and run the app on your simulator or device

Usage

  1. Initial Setup: Create your profile and add any dietary preferences or allergies
  2. Add Food Items: Add items to your inventory with their expiration dates
  3. Generate Recipes: Browse recipe suggestions based on your available ingredients
  4. Create Shopping Lists: Add missing ingredients to your shopping list
  5. Save Favorites: Save and organize your favorite recipes into custom folders

Customization

Best-By offers extensive customization options:

  • Theme Selection: Choose between light, dark, or system theme
  • Accent Colors: Personalize the app with your preferred accent color
  • Measurement System: Toggle between metric and imperial units
  • Notification Settings: Customize when you receive expiration alerts

Contributing

We welcome contributions to Best-By! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Team

  • Aliyah Azizi
  • Aktan Azat
  • Amber Gonzalez
  • Emily Nguyen

Made with ❤️ by the Best-By Team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages