FreshGuard

Team Name

FreshGuard

Timeline

Fall 2024 – Spring 2025

Students

  • Thi Hong Linh Nguyen – Computer Science
  • Khoi Nguyen Vu – Software Engineering
  • Obadah Al-Smadi – Software Engineering
  • Viet Hoang – Computer Science
  • Hung Cao – Software Engineering
  • David Awe – Computer Science

Abstract

Life is busy, we all know what it’s like to be so busy that we forget about something. However, one of the biggest things that we’ve come across is forgetting to keep track of food that’s in our refrigerator or pantry. Frequently as students, we buy some food or cook some food and store it, but with life moving so fast, it gets forgotten in the fridge. Then when we come to grab the food, it’s expired, wasting precious food. This problem of food waste is relevant to almost anyone who has stored food, and this waste is not only highly costly over time, but can also be a health hazard as expired food should not be in contact with fresh food for extended periods.

Therefore, FreshGuard came up with a solution. A mobile application designed to help users keep track of food stored in their refrigerators and pantries to minimize food waste and promote healthier, cost-effective eating habits. FreshGuard offers users an all-in-one experience to manage their pantry, from having a virtual storage, real-time expiration date tracker with notifications, recipes generator using items existing in the pantry, etc.

The app will help users efficiently manage their food inventory, reducing waste and ensuring food safety.  It will not only help students and other busy individuals save money and reduce food waste but also ensure they are consuming fresh and safe food, improving their daily lives. As that is the main goal of FreshGuard.

Background

The problem of food waste is incredibly common, especially in the U.S. A survey conducted on 2000 Americans by Bosch Home Appliances [1] found that Americans throw approximately 103 pounds of spoiled food every year. This spoiled food is also calculated to cost Americans an average of $2,798 every year, showing that this is a notable issue that the average American experiences. This same study also found that 77% of Americans feel that a big reason why they waste so much food is because they simply forget about it. After the team read this article, we realized that this is a common issue even amongst ourselves that we would like to solve, however we didn’t find any captivating solutions. As such, the idea of FreshGuard was born, a solution to this problem that will finally suit all of our needs. While this project does not have a clear sponsor, there is a clear customer in mind and that customer would be the people diagnosed with ADHD. The reason why this is the target market is because most of the people who waste food do it because they forgot about the food or could not keep track. Since ADHD affects a person’s attention, they become much more likely to fall victim to this, and FreshGuard would be the perfect solution. This idea is also in a more niche market. There are some competitor’s but with even the biggest competitor in “KitchenPal” being a fairly niche app, it gives the project a great opportunity to shine.

Project Requirements

  1. The user shall be able to register an account with the FreshGuard app to allow them to keep their profile and data stored. The user will be able to also login with that same account in the future and will still have their data in their account.
  2. The user shall be able to add their food to their account once logged in and keep track of when the food added will expire. This will be done by a progress meter showing the status of an item as its freshness declines, starting at “Fresh” and eventually going to “Expired” if the food is not consumed/removed by the expiration date.
  3. The user shall be able to manually add their food to their account. This can be done when the user clicks an “add food” button and inputs the information of the food. For example, the user may add “Broccoli” and then the date that they would consider the food “expired” and the food will be kept track of.
  4. The user shall be able to categorize their food depending on where they store it. At minimum, the user will be able to categorize food between “Refrigerator” and “Pantry”. The user will also be able to create their own categorization options like “Freezer”.
  5. The user shall be able to receive notifications on the freshness of their food. For example, if a user added chicken to their account, and the chicken will expire in 7 days, the user will receive reminders to use the chicken before it expires as the date comes closer.
  6. FreshGuard shall be designed so that it can be downloaded on mobile devices. FreshGuard will be available for download as a mobile app on both, iOS and Android devices, via the Apple App Store and Google Play Store respectively. Using the flexibility of ReactNative, FreshGuard shall offer a uniform user interface across iOS and Android, allowing a seamless transfer between devices, if a user should wish to do so.
  7. Authentication and authorization mechanism should be implemented to prevent unauthorized access to user data. All user data must be encrypted when store into the database, including pantry items and images taken from user’s personal devices.
  8. All user inputs must undergo thorough validation to prevent malicious attempts to exploit the FreshGuard system, including, but not limited to, attacks such as SQL injection and cross-site scripting. Additionally, errors must be handled gracefully, ensuring that the system remains stable and secure without crashing or exposing sensitive data.
  9. Secure access to documented source code for authorized maintainers, with updates logged. 
  10. The user shall be able to upload their receipt to the app, and the app will add all of the food items from the receipt onto the user’s account.

Design Constraints

  • Accessibility: Clear layout, easy navigation. Designed for ease-of-use and support for neurodiverse users
  • Cost/Economic: Operate within a limited university-provided budget
  • Schedule: Completion over two semesters with Agile sprint planning
  • Platform Compatibility: Cross-platform via React Native for iOS, Android, and Windows
  • Maintainability: Modular backend services and component-based frontend
  • Security: All user data encrypted and securely stored using Azure and best practices
  • Scalability: Capable of handling growing food inventory and user base
  • Usability: Simple, clutter-free design

Engineering Standards

The FreshGuard system complies with the following engineering standards as defined in the System Requirements Specification:

  • Authentication & Authorization: The app follows the OAuth protocol to ensure secure user login and registration.
  • Mobile Application Security: FreshGuard adheres to the OWASP Mobile Security Testing Guide (MSTG) for secure handling of notifications and receipt uploads, and complies with the California Consumer Privacy Act (CCPA) to safeguard user data in notification services.
  • Food Safety: The system follows the Codex Alimentarius standards for food safety, ensuring proper storage categorizations and recipe recommendations.
  • Data Protection: Fresh Guard implements the General Data Protection Regulation (GDPR) and incorporates the ISO 27018 and ISO 27040 standards to secure both cloud-based and stored user data.
  • Software Quality & Maintenance: Supported through ISO/IEC 9126 for performance and error correction, ISO/IEC 12207 for lifecycle documentation, and ISO 26514 for clear user documentation.
  • Development Environment: Follows the official documentation of React Native for cross-platform best practices and complies with the guidelines of both the Apple App Store and the Google Play Store.
  • Accessibility: The app meets WCAG 2.1 Level AA standards to ensure accessibility for users with visual or cognitive impairments.

System Overview

FreshGuard is built using a modular three-layer architecture:

Data Layer: Utilizes Azure Cosmos DB to store user data, food inventory, and related analytics. Azure Notification Hub is used to send expiration alerts. Azure Key Vault secures application secrets and configuration data. Receipt images and profile photos are stored using Azure Blob Storage.

Presentation Layer: Developed with React Native, this layer handles all user interactions across both Android and iOS. It includes on-boarding screens, barcode or receipt scanning, food inventory display, and a settings panel for notification preferences.

Application Layer: This layer manages the core logic of the app, including food item tracking, expiration reminders, recipe generation, and nutrition insights. Connects the UI with the back-end and ensures real-time updates.

Results

Fresh Guard successfully delivers a smart, user-friendly solution for tracking food inventory and reducing waste. We implemented secure authentication, food entry, expiration tracking, categorized storage, and recipe suggestions. The system is designed with accessibility and ADHD-friendly features in mind, providing a practical and intuitive experience for users.

Future Work

  • Integrate advanced barcode & receipt scanning (OCR/ML)
  • Enable push notifications for expiring items
  • Complete cashback wallet system and receipt processing
  • Enhance accessibility settings (voice input, larger text)
  • Expand community features for recipe sharing and tips

Project Files

Project Charter
System Requirements Specification
Architectural Design Specification
Detailed Design Specification
Poster

References

[1] V. Nicole, “Americans Open Up About Food Waste in New Bosch Study, Toss 103 Pounds Annually — globenewswire.com,” https://www.globenewswire.com/news- release/2019/09/19/1918017/0/en/Americans-Open-Up-About-Food-Waste-in-New-Bosch-Study-Toss-103-Pounds-Annually.html, 2019, [Accessed 10-10-2024].

[2] “Login &x2022; Instagram — instagram.com,” https://www.instagram.com/kitche, [Accessed 10-10-2024].

[3] “Home | NoWaste — nowasteapp.com,” https://www.nowasteapp.com/, [Accessed 10-10-2024].

[4] “7 apps that are helping reduce food waste — oddbox.co.uk,”

Steven McDermott