- CSS 30.9%
- JavaScript 27.1%
- Python 26%
- HTML 16%
| __pycache__ | ||
| application | ||
| logs | ||
| sites | ||
| sql | ||
| static | ||
| templates | ||
| .gitignore | ||
| celery_worker.py | ||
| celerybeat-schedule | ||
| celerybeat-schedule-shm | ||
| celerybeat-schedule-wal | ||
| config.py | ||
| database.ini | ||
| database.py | ||
| main.py | ||
| manage.py | ||
| MyDataclasses.py | ||
| outh.py | ||
| plu_items.csv | ||
| postsqldb.py | ||
| process.py | ||
| README.md | ||
| requirements.txt | ||
| run-server.bat | ||
| run-server.sh | ||
| webpush.py | ||
| webserver.py | ||
PantryTrack
PantryTrack is a full-featured inventory and recipe management system designed for home pantries, kitchens, and culinary enthusiasts. Created as a hands-on learning project for databases, web technologies, and workflow automation, PantryTrack combines barcode scanning, shopping, and kitchen organization in one unified modern web application.
Key Features
-
Inventory Management:
- Add items manually or with a barcode scanner
- Organize products with categories, brands, and locations
- Track real-time stock levels and usage
-
Recipe Builder:
- Use pantry items to build recipes
- Link inventory directly to ingredients
- Automatic depletion of ingredient stocks when cooking
-
Shopping Lists:
- Generate shopping lists from recipes or inventory shortages
- Mark off items as purchased
-
Receipts & Kiosk Entry:
- Create receipts manually or scan barcodes for fast kiosk entry
- Log all purchased items and easily add them to inventory
- Review, edit, and receive receipts into your pantry
-
Kiosk Mode & Scan-In/Scan-Out:
- Set up a public kiosk to quickly scan items in after shopping
- Scan items out as you use them right from your pantry
- Great for families, community kitchens, or highly active pantries
-
Admin & Data Management:
- PostgreSQL database with robust schema
- Handles user authentication, tracking, and role-based access
Technologies Used
- Backend: Python (Flask), Celery (background jobs), Authlib (OAuth)
- Database: PostgreSQL
- Frontend: JavaScript, HTML, CSS (UIKit), Jinja2
- Integration: Barcode scanners (USB & API), local/remote Redis support for background tasks
- DevOps: Docker-ready (via .env), cross-platform support
Why PantryTrack?
What started as a passion project became a practical solution for true kitchen organization. Along the way, it became a place to:
- Learn barcode technology and API integration
- Master PostgreSQL and advanced SQL
- Practice ORM and schema management
- Explore real-world web development with Flask and JavaScript
- Design scalable, production-ready, dockerized apps
Getting Started
-
Clone and set up your development environment:
- Python 3.10+
- PostgreSQL
- (optional but recommended) Redis, if you want Celery
-
Install Python dependencies:
python -m venv venv source venv/bin/activate pip install -r requirements.txt -
Configure your environment: Edit the provided
.envto set secrets, DB, OAuth, and Redis variables. See comments inwebserver.pyand.env.examplefor required keys. -
Run the app and Celery:
./run-server.sh # or python webserver.py # and in another terminal: celery -A celery_worker.celery worker --loglevel=info
Future Plans
- Better mobile/phone support
- Integration with common grocers via receipt parsing
- Real-time collaborative lists
- More reporting, notifications, and analytics
License
This is a personal learning project. No warranty is implied. Pull requests and suggestions are welcome!