Expiry Notification System – Smart Inventory & Expiry Tracker

June 2025
Python • PyQt5 • SQLite • Plyer • Docker • Multithreading
Inventory Dashboard
Cross-Platform Notification
Product Data Entry View

Project Objective

To develop a responsive, cross-platform desktop system that provides real-time alerts for expiring products while functioning entirely offline and requiring minimal setup. Designed for small businesses with no access to cloud systems.

Tools & Technologies

Python, PyQt5, SQLite, Plyer, Docker, Multithreading

View on GitHub

Engineering Highlights

Initially built the Notification system with WinToast, however I Replaced WinToast with Plyer to enable cross-platform desktop notifications inside Docker containers (Linux-compatible).

Refactored PyQt5 application architecture using QThread to ensure GUI responsiveness during background expiry checks.

Containerized the entire application with Docker, resolving system dependency mismatches for PyQt and X11 runtime libraries.

Verified GUI and notification forwarding from Linux containers to Windows host using VcXsrv and X11 display bridging.

Deployed in a real-world retail setting, successfully preventing stock loss due to unnoticed expiry for over 5 years.