Short Description / Project Goal
This project aims to tackle this issue by developing a mobile-responsive web application that is capable of tracking groceries in the fridge, and managing their expiration dates, delivering timely notifications when an item is about to expire, or has not been used in a while. The user would be able to check their fridge’s inventory, and edit groceries’ names, expiration dates, and notification settings that would control when the notifications would be delivered.
Key Features
- Inventory Management: Automatic detection of groceries using a connected camera.
- Expiration Tracking: Users can assign expiration dates to items and receive push notifications when items are nearing their expiration.
- IoT Integration: Captures images of fridge contents to update the inventory dynamically.
- Machine Learning: Processes images to identify changes in fridge inventory, such as added or removed items.
- User-Friendly Interface: A responsive web-app design that ensures seamless interaction with the system.
- Push Notifications: Sends real-time alerts through Firebase Cloud Messaging based on user preferences.
- Cloud Storage: Stores images securely using Cloudinary.
Screenshots
Architecture Overview
The ExpiryPal system is composed of six main components:
- Front-End (FE): A React+Vite-based web interface for user interaction.
- Back-End (BE): A Flask-based API that connects the database, IoT devices, and the ML model.
- Database (DB): MariaDB for structured data storage of users, fridges, and groceries.
- Machine Learning (ML): A model that processes fridge images to detect inventory changes.
- Firebase Cloud Messaging (FCM): Handles real-time push notifications.
- Cloudinary: Manages storage for IoT-captured and processed images.
Technologies Used
- Front-End: React+Vite, Tailwind CSS
- Back-End: Flask, SQLAlchemy
- Database: MariaDB
- Machine Learning: OpenCV
- IoT: SmartRoom camera integration
- Other Tools: Docker, Firebase, Cloudinary