Inspiration
The idea for ExpiryGuard came from a very common but costly problem — forgetting about expiry dates. Whether it’s milk that’s gone bad, medicines that are no longer safe to consume, or subscriptions that silently renew and charge you, missed expiries lead to waste, health risks, and unnecessary expenses.
While there are scattered tools for tracking products or setting reminders, most are either manual and time-consuming or lack flexibility to handle multiple input methods.
We envisioned a centralized, AI-powered expiry management system that works seamlessly for everyone — busy parents, small businesses, warehouses, or even individuals managing important documents. Our goal was to make expiry tracking as effortless and automated as possible, leveraging OCR, voice commands, barcode scanning, and intelligent notifications.
What it does
ExpiryGuard is a smart expiry date management system that helps users track, manage, and get notified about expiry dates of products, documents, and subscriptions.
Key Features:
- Multiple input methods: Manual entry, barcode scanning, OCR from product labels, and voice input for hands-free convenience.
- AI-powered OCR recognition: Automatically extracts expiry dates from uploaded product images using OCR.space API.
- Voice command support: Allows users to speak product details naturally, e.g., "Milk will expire tomorrow", and the system will parse and record it.
- Secure authentication: JWT-based login/signup to protect user data.
- Visual analytics: Interactive dashboard with Chart.js to show Safe, Near Expiry, and Expired product statuses at a glance.
- Automated email alerts: Customizable notifications sent before expiry, powered by an email scheduler.
- Responsive design: A clean, mobile-friendly interface built with TailwindCSS for easy access anywhere.
With ExpiryGuard, users no longer need to rely on memory or scattered notes — the system keeps track for them and proactively sends alerts before it’s too late.
How we built it
We divided development into frontend, backend, and AI/automation integrations:
Frontend
- Built using React (Vite) for a fast and modular development process.
- Styled with TailwindCSS for a clean, responsive UI.
- Chart.js for real-time expiry status visualization via doughnut charts.
- Integrated barcode scanning using QuaggaJS and react-qr-barcode-scanner for fast product data capture.
- Implemented protected routes to ensure only authenticated users can access the dashboard.
Backend
- Developed with FastAPI for high performance and simplicity.
- MongoDB for storing product data, user accounts, and expiry details.
- JWT authentication for secure signup/login flows.
- Scheduled background jobs using an email scheduler to send notifications before expiry.
- Created REST API endpoints for product management, authentication, and notification settings.
AI/OCR/Voice Features
- OCR.space API to extract printed expiry dates from uploaded images.
- Speech Recognition API to process natural language voice commands.
- LangChain with Google Gemini LLM for advanced date parsing and contextual understanding.
This architecture allowed us to keep the system modular, scalable, and easily extendable for future features like mobile integration.
Challenges we ran into
OCR Accuracy Variability
Extracting expiry dates from labels was challenging due to variations in fonts, layouts, and lighting conditions in images. We had to preprocess images and fine-tune parsing logic.Natural Language Parsing for Voice Input
Translating voice input into structured data (product name, expiry date) required integrating AI models capable of understanding diverse phrasing and accents.Email Notification Timing
Ensuring that scheduled email alerts fired consistently and efficiently without overloading the server was tricky, especially with customizable notification times.Data Synchronization
Keeping the frontend dashboard in sync with backend changes (e.g., after adding a product via barcode or OCR) required careful API state management.Security & Authentication
Protecting user data while ensuring smooth login/logout flows, token refreshing, and prevention of unauthorized access was a constant priority.
Accomplishments that we're proud of
- Built a fully functional AI-powered expiry tracking system from scratch, integrating OCR, voice, barcode, and manual entry methods in a single workflow.
- Achieved high OCR accuracy for a wide range of product labels by implementing preprocessing techniques.
- Designed a responsive, intuitive UI that makes expiry management easy for all users.
- Created a reliable email alert system that ensures users are notified before products expire.
- Developed a modular backend that can scale to support mobile apps or IoT devices in the future.
What we learned
- How to effectively integrate multiple technologies — OCR, voice recognition, barcode scanning, and AI parsing — into a single cohesive application.
- Best practices for building scalable, secure FastAPI applications with MongoDB and JWT authentication.
- The importance of user experience design when dealing with time-sensitive data like expiry dates.
- Techniques for image preprocessing to improve OCR accuracy and speech-to-text post-processing for cleaner data extraction.
- How to orchestrate scheduled background jobs in a cloud environment without reliability issues.
What's next for ExpiryGuard
- Mobile App Development: Create iOS and Android versions for on-the-go expiry management.
- Multi-Language Voice Input: Support different languages and accents to reach a global audience.
- AI-based Product Categorization: Automatically classify products into categories like food, medicine, or documents.
- IoT Integration: Connect with smart fridges or pantry trackers for fully automated expiry logging.
- Shared Accounts & Teams: Allow households or small businesses to collaborate on a shared expiry database.
- Push Notifications: Add mobile and browser push alerts alongside email notifications for instant reminders.
Log in or sign up for Devpost to join the conversation.