Team Name
FreshAlert
Timeline
Fall 2024 – Spring 2025
Students
- Piero Leon – Software Engineering
- Li Jui Tseng – Computer Science
- Anne Nguyen – Computer Science
- Tien Hoang – Computer Science
- Ali Alumary – Computer Science
Abstract
FreshAlert is a React Native mobile app that helps people with ADHD (or anyone who gets
easily distracted) keep track of perishable food and cut down on waste. With a
super-simple interface, you can add items manually or pull them in via a Walmart API, then
get gentle, timely reminders before things go bad. Backed by Firebase for storage and
real-time alerts, FreshAlert focuses on intuitive design and focused notifications so users
never lose track of what’s in their fridge.
Background
People with ADHD or other focus challenges often buy food intending to cook it, then get
distracted and let it spoil, wasting money and causing frustration. Existing
grocery-management and meal-planning apps offer lots of features, but their multi-step
interfaces and buried notifications aren’t built for someone who needs quick,
straightforward reminders. This gap leaves distracted users without an ADHD-friendly
solution to track perishables. With ADHD diagnoses on the rise in both children and adults,
the need for a simple, engaging expiration-management tool is growing—and FreshAlert
aims to fill that niche by delivering clear, timely alerts and an easy-to-use design.
Project Requirements
- Store and manage food items in a centralized database
- Send Push Notifications for Expiring/Expired Food
- Allow users to add new items manually via text input
- Enable removal of items from the inventory
- Support editing of existing item entries
- Suggest recommended expiration dates
- Walmart API lookup for Receipts
- Implement secure user authentication using OAuth
- Provide a clean, user-friendly interface
- Personalize the displayed data according to the logged-in user
Design Constraints
- Aesthetics: The interface should use a minimal color palette, clear typography, and
uncluttered layouts to reduce distractions and help users focus on adding, editing,
and checking food items. - Interoperability: Data exchange with external systems (Firebase auth/storage,
Walmart receipt API) must use standard formats (JSON, OAuth 2.0) so that new
integrations (e.g., other grocery APIs) can be added with minimal refactoring. - Maintainability: The codebase should follow modular architecture and documented
coding standards (consistent component structure) to simplify future updates,
debugging, and onboarding of new developers. - Marketability: App icon, name, and store listing screenshots must appeal to the
ADHD community and clearly communicate the core benefit (waste reduction). - Public Health: All food-safety notifications should use vetted guidelines (e.g. USDA
shelf-life recommendations) and avoid any misleading health claims
Engineering Standards
- Authentication & Encryption/Security Standards: User credentials are managed via
OAuth 2.0, all network traffic uses TLS 1.2+, and sensitive data at rest (e.g., user
profiles, inventory) is encrypted with AES-256. Passwords are hashed before
storage. - ISO 16982: Focuses on usability and ergonomics in product design to have an easyto-use interface. By adhering to this standard, we can ensure that the manual entry
process is user-friendly, minimizing frustration and errors, which is essential for
users who struggle with focus and attention. - ISO 8601: Specifies the international standard for representing dates and times in a
consistent, unambiguous format. [4] This standard is crucial for ensuring that
expiration dates are accurately recorded, stored, and interpreted across different
systems and regions. This will ensure compatibility with other systems that may use
the app’s data, such as calendars or notifications. - OSHA Compliance: All development and testing activities conducted in on-campus
labs will follow OSHA general industry safety standards (29 CFR 1910), including
proper workstation ergonomics and equipment lockout/tagout procedures to keep
the team safe. - Programming/Web Dev Standards: The app is built with JavaScript, React Native,
and Expo. We enforce consistency with community style guides (ESLint/Prettier)
and follow OWASP Mobile Top 10 best practices for secure coding.
System Overview
The system architecture is composed of multiple interconnected layers that collaborate to
build the full functionality of the application. The main components include the Front End,
Back End, Database (Firestore), and Walmart API. The Front End provides the user
interface, including Login, Sign-Up, Profile, Home, and Upload pages, interacting with the
Back End for data and functionality. The Back End handles authentication (OAuth), session
management (Local Storage), and acts as a bridge between the Front End and the
Database (Firestore). Database (Firestore) stores user data, Walmart receipts, expiration
dates, and food items, communicating with both the Back End and Front End. The Walmart
API fetches transaction receipts, which are then stored in Database (Firestore) for user
access and processing.
Results
The app successfully allows users to add food items manually or automatically fetch
receipt data, track expiration dates, and receive notifications before items expire. These
features help users manage their food better and reduce waste.
Future Work
- OCR on Receipts
- Meal Prepping
- Recipe Linking
- Refine the Web and Android version
Project Files
Project Charter
System Requirements Specification
Architectural Design Specification
Detailed Design Specification
Poster
References
[1] React Native Documentation. https://reactnative.dev/docs/getting-started
[2] Expo Documentation. https://docs.expo.dev/
[3] Iso/tr 16982: Ergonomics of human-system interaction – usability methods supporting human-centered design, 2002. standard.
[4] Iso 8601: Data elements and interchange formats – information interchange – representation of dates and times, 2004. standard.
[5] U.S. Department of Agriculture, Food Safety and Inspection Service. “Food Product Dating.”: https://www.fsis.usda.gov/food-safety/safe-food-handling-and-preparation/food-safetybasics/food-product-dating