Some checks failed
Deploy to Coolify / Code Quality (pull_request) Has been cancelled
Deploy to Coolify / Run Tests (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Development (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Production (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Test (pull_request) Has been cancelled
Pull Request Checks / Validate PR (pull_request) Has been cancelled
Organized docs into logical subdirectories:
**New Structure:**
- docs/
- README.md (index with quick links)
- PROJECT_PLAN.md (root level - main roadmap)
- development/
- getting-started.md (5-min quickstart)
- local-setup.md (detailed Docker Compose guide)
- workflow.md (daily development)
- git-workflow.md (branching strategy)
- architecture/
- overview.md (tech stack, design)
- database.md (schema, RLS, migrations)
- api.md (endpoints, functions)
- deployment/
- production.md (Docker, Coolify)
- ci-cd.md (automated pipelines)
**Cleaned Up:**
- Moved DEV_SETUP.md → docs/development/local-setup.md
- Removed outdated SETUP.md (referenced old Coolify setup)
- Replaced with getting-started.md (current Docker Compose flow)
- Updated README.md links to new structure
All paths tested, no broken links.
190 lines
4.5 KiB
Markdown
190 lines
4.5 KiB
Markdown
# Getting Started with Pantry Development
|
|
|
|
Welcome! This guide will get you from zero to running Pantry locally in ~5 minutes.
|
|
|
|
## 🎯 What You'll Build
|
|
|
|
A self-hosted kitchen inventory app with:
|
|
- Inventory management (add, edit, delete items)
|
|
- Tag-based organization (Fridge, Freezer, Dairy, etc.)
|
|
- Unit conversions (g, kg, L, cups)
|
|
- Barcode scanning (coming soon)
|
|
- PWA features (offline, installable)
|
|
|
|
## ⚡ Quick Start
|
|
|
|
### Prerequisites
|
|
|
|
- **Docker** & **Docker Compose** - [Install](https://docs.docker.com/get-docker/)
|
|
- **Bun** - [Install](https://bun.sh): `curl -fsSL https://bun.sh/install | bash`
|
|
- **Git**
|
|
|
|
### One-Command Setup
|
|
|
|
```bash
|
|
# Clone the repo
|
|
git clone https://gitea.jeanlucmakiola.de/pantry-app/pantry.git
|
|
cd pantry
|
|
|
|
# Run the setup script
|
|
./dev.sh
|
|
```
|
|
|
|
That's it! The script will:
|
|
1. ✅ Start Supabase services (Docker Compose)
|
|
2. ✅ Wait for services to initialize
|
|
3. ✅ Install frontend dependencies
|
|
4. ✅ Launch Nuxt dev server
|
|
|
|
### Access the App
|
|
|
|
| Service | URL | Purpose |
|
|
|---------|-----|---------|
|
|
| **App** | `http://localhost:3000` | Main frontend |
|
|
| **Supabase Studio** | `http://localhost:54323` | Database admin UI |
|
|
| **API** | `http://localhost:54321` | Backend API |
|
|
|
|
## 🎮 Try It Out
|
|
|
|
1. Open `http://localhost:3000`
|
|
2. Click **"Add Manually"** to create your first item
|
|
3. Fill in:
|
|
- Name: "Milk"
|
|
- Quantity: 1
|
|
- Unit: Liter
|
|
- Tags: Fridge, Dairy
|
|
- Expiry: Set a date
|
|
4. Click **"Add Item"** and see it in the grid!
|
|
|
|
### Explore Features
|
|
|
|
- **Edit item:** Click "Edit" on any card
|
|
- **Adjust quantity:** Use +/- buttons
|
|
- **Delete item:** Click "Delete" (confirms first)
|
|
- **View database:** Open Supabase Studio at `:54323`
|
|
|
|
## 📁 Project Structure
|
|
|
|
```
|
|
pantry/
|
|
├── app/ # Nuxt 4 frontend
|
|
│ ├── components/ # Vue components
|
|
│ │ └── inventory/ # Inventory UI (List, Card, Forms)
|
|
│ ├── composables/ # Data hooks (useInventory, useSupabase)
|
|
│ ├── pages/ # Routes (index, scan, settings)
|
|
│ └── types/ # TypeScript definitions
|
|
├── supabase/
|
|
│ └── migrations/ # Database schema (001-005)
|
|
├── docker-compose.yml # Supabase services
|
|
├── docker/
|
|
│ └── kong.yml # API gateway config
|
|
└── docs/ # Documentation
|
|
```
|
|
|
|
## 🛠️ Common Tasks
|
|
|
|
### View Logs
|
|
|
|
```bash
|
|
# All services
|
|
docker-compose logs -f
|
|
|
|
# Just the database
|
|
docker-compose logs -f db
|
|
```
|
|
|
|
### Reset Database
|
|
|
|
```bash
|
|
# Stop and remove volumes (fresh start)
|
|
docker-compose down -v
|
|
|
|
# Restart (migrations auto-apply)
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Access Database Directly
|
|
|
|
```bash
|
|
# psql CLI
|
|
docker-compose exec db psql -U postgres -d postgres
|
|
|
|
# Or use Supabase Studio (GUI)
|
|
open http://localhost:54323
|
|
```
|
|
|
|
### Stop Everything
|
|
|
|
```bash
|
|
# Stop services (keep data)
|
|
docker-compose stop
|
|
|
|
# Stop and remove everything
|
|
docker-compose down -v
|
|
```
|
|
|
|
## 🔍 What's Included
|
|
|
|
### Database (Pre-seeded)
|
|
|
|
**30 Units:**
|
|
- Weight: g, kg, mg, lb, oz
|
|
- Volume: mL, L, cup, tbsp, tsp
|
|
- Count: piece, dozen, bottle, can, jar
|
|
|
|
**33 Tags:**
|
|
- Position: Fridge, Freezer, Pantry
|
|
- Type: Dairy, Meat, Vegetables, Fruits
|
|
- Dietary: Vegan, Gluten-Free, Organic
|
|
- Custom: Low Stock, To Buy, Meal Prep
|
|
|
|
### Features (Working Now)
|
|
|
|
- ✅ Add/Edit/Delete inventory items
|
|
- ✅ Tag selection (multi-select)
|
|
- ✅ Unit conversions
|
|
- ✅ Expiry date tracking with warnings
|
|
- ✅ Responsive layout (mobile-ready)
|
|
- ✅ Quantity quick actions (+/- buttons)
|
|
|
|
### Features (Coming Soon)
|
|
|
|
- ⏳ Barcode scanning (Week 3)
|
|
- ⏳ User authentication UI
|
|
- ⏳ Tag management
|
|
- ⏳ PWA (offline mode)
|
|
|
|
## 📚 Next Steps
|
|
|
|
### Learn the Stack
|
|
|
|
1. **[Architecture Overview](../architecture/overview.md)** - Tech stack and design decisions
|
|
2. **[Database Schema](../architecture/database.md)** - Tables and relationships
|
|
3. **[Development Workflow](workflow.md)** - Daily development process
|
|
|
|
### Make Your First Change
|
|
|
|
1. Pick an issue from Gitea
|
|
2. Create a branch: `git checkout -b feature/your-feature`
|
|
3. Make changes, test locally
|
|
4. Commit: `git commit -m "feat: your feature"`
|
|
5. Push and create PR
|
|
|
|
### Troubleshooting
|
|
|
|
See **[Local Setup Guide](local-setup.md)** for:
|
|
- Port conflicts
|
|
- Database connection issues
|
|
- Frontend errors
|
|
- Environment variables
|
|
|
|
## 🤝 Need Help?
|
|
|
|
- **Documentation:** Browse `/docs` folder
|
|
- **Issues:** Create an issue on Gitea
|
|
- **Local setup:** See [local-setup.md](local-setup.md)
|
|
|
|
---
|
|
|
|
**Ready to code?** Check out the [Development Workflow](workflow.md)!
|