# Pantry 🍳 Self-hosted kitchen inventory management β€” family-friendly PWA with barcode scanning. [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ## 🎯 Vision A simple, modern kitchen inventory app that the whole family can actually use. Born from frustration with existing tools: - **Grocy:** Powerful but overwhelming - **KitchenOwl:** Nice UI but lacks features **Pantry** bridges the gap β€” simple enough for daily use, powerful enough to be useful. ## ✨ Key Features (Planned) - πŸ“± **PWA** β€” Install on phone, works offline - πŸ“Έ **Barcode scanning** β€” Scan β†’ Add (3 taps) - 🏷️ **Tag-based organization** β€” Flexible categories (fridge, dairy, etc.) - πŸ“Š **Unit conversions** β€” kg ↔ g, L ↔ mL - πŸ‘₯ **Multi-user** β€” Shared inventory (no household complexity) - πŸ”’ **Self-hosted** β€” Your data stays yours - 🌐 **Open Food Facts** β€” Auto-fill product data from barcodes ## πŸš€ Quick Start (Local Development) ```bash # Clone repository git clone https://gitea.jeanlucmakiola.de/pantry-app/pantry.git cd pantry # One-command startup ./dev.sh ``` **What this does:** 1. Starts Supabase (PostgreSQL + API + Auth + Studio) 2. Installs frontend dependencies 3. Launches Nuxt dev server **Access:** - App: `http://localhost:3000` - Supabase Studio: `http://localhost:54323` **See [DEV_SETUP.md](DEV_SETUP.md) for detailed setup guide.** ## πŸ“š Documentation - [**Project Plan**](docs/PROJECT_PLAN.md) β€” Vision, roadmap, phases - [**Architecture**](docs/ARCHITECTURE.md) β€” Tech stack, data model, design decisions - [**Database Schema**](docs/DATABASE.md) β€” Tables, relationships, RLS policies - [**API Reference**](docs/API.md) β€” Endpoints, Supabase functions - [**Development Guide**](docs/DEVELOPMENT.md) β€” Setup, workflow, conventions - [**Deployment**](docs/DEPLOYMENT.md) β€” Docker, Coolify, production setup ## πŸ› οΈ Tech Stack | Layer | Technology | |-------|------------| | Frontend | Nuxt 4 (Vue 3) | | Styling | Tailwind CSS + Nuxt UI | | Backend | Supabase (Postgres, Auth, Realtime) | | Barcode | html5-qrcode | | Runtime | Bun | | Deployment | Docker Compose | | External API | Open Food Facts | ## πŸ—‚οΈ Monorepo Structure ``` pantry/ β”œβ”€β”€ app/ # Nuxt 4 PWA β”œβ”€β”€ supabase/ # Database, migrations, functions β”œβ”€β”€ docker/ # Docker Compose, configs β”œβ”€β”€ docs/ # Documentation └── scripts/ # Utilities ``` ## 🎯 Principles 1. **Family-friendly** β€” If your parents can't use it, it's too complex 2. **Start simple** β€” Ship small, iterate fast 3. **Extendable** β€” Clean architecture for future features 4. **Self-hosted first** β€” No SaaS plans, no lock-in ## πŸ“‹ MVP Status (14/34 Complete - 41.2%) **Current Phase:** Week 2 βœ… Complete, Week 3 πŸ”„ In Progress βœ… **Week 1 - Foundation (6/6)** - Database schema + RLS policies - Nuxt 4 app scaffold - Supabase integration - App layout βœ… **Week 2 - Core Inventory (8/8)** - SQL helper functions - Seed data (units + tags) - Inventory CRUD UI - Add/Edit/Delete components πŸ”„ **Week 3 - Barcode Scanning (1/5)** - BarcodeScanner component - html5-qrcode integration - Product lookup (pending) - Scan-to-add flow (pending) ⏸️ **Week 4-6** - Tag UI, PWA, Deployment (20 issues) See [PROJECT_PLAN.md](docs/PROJECT_PLAN.md) for detailed roadmap. ## 🀝 Contributing This is an early-stage project. Contributions welcome once v0.1 ships. ## πŸ“„ License MIT Β© 2026 Jean-Luc Makiola ## πŸ™ Acknowledgments - Open Food Facts for product data - Supabase for the backend platform - Nuxt/Vue ecosystem