Commit Graph

15 Commits

Author SHA1 Message Date
clawd
8c0ffc653f security: shopping + recipe creation require login
- BottomNav: hide Shopping + Neu when not authenticated
- ShoppingPage: login prompt when not authenticated
- Prevents unauthenticated access to shared shopping data
2026-02-18 18:17:40 +00:00
clawd
ec02ffddae feat: shopping list requires login
- Unauthenticated users see login prompt instead of shared list
- Prevents Tante Ursula from seeing Luna's Torten-Zutaten
- Shopping query only runs when authenticated
- Friendly CTA: 'Melde dich an um deine eigene Einkaufsliste zu nutzen'
2026-02-18 18:14:59 +00:00
clawd
c5774e8c8d feat: split random into 'Was koche ich?' + 'Was backe ich?'
- Two dice buttons on homepage
- Cook: mittag, abend, fruehstueck categories
- Bake: backen, torten, desserts categories
- Backend: /api/recipes/random?categories=slug1,slug2 filter
- Luna's feature request
2026-02-18 18:13:03 +00:00
clawd
03f3893c2c feat: Smart Shopping List + Household bugfixes
Shopping:
- Merged view (default): same ingredient + unit = summed amounts
  (150g Quark + 300g Quark → 450g Quark)
- Shows which recipes need each ingredient
- Toggle between 'Zusammengefasst' and 'Nach Rezept' views
- Alphabetically sorted in merged view

Household bugfixes:
- Fixed bouncy modal animation (removed Framer Motion spring)
- Fixed clipboard copy on HTTP (textarea fallback)
- Fixed logout on join (JWT secrets mismatch in docker-compose)

Also: mounted backend data/ volume for recipe images
2026-02-18 17:56:29 +00:00
clawd
cc8e2482e9 fix: TS errors + Docker Compose running locally
- Removed unused imports (PublicRoute, GripVertical, addFromRecipe, X, ShoppingGroup)
- Fixed HouseholdCard unused var
- Fixed ShoppingPage household query (missing queryFn)
- Killed tmux sessions, app runs fully on Docker now
- 3 containers: db (postgres:17), backend (node:22), frontend (nginx)
2026-02-18 17:31:31 +00:00
clawd
301e42b1dc v2.1.2026 — PostgreSQL, Auth, Household, Shopping Smart-Add, Docker
Backend:
- SQLite → PostgreSQL (pg_trgm search, async services)
- All services rewritten to async with pg Pool
- Data imported (50 recipes, 8 categories)
- better-sqlite3 removed

Frontend:
- ProfilePage complete (edit profile, change password, no more stubs)
- HouseholdCard (create, join via code, manage members, leave)
- Shopping scope toggle (personal/household)
- IngredientPickerModal (smart add with basics filter)
- Auth token auto-attached to all API calls (token.ts)
- Removed PlaceholderPage

Infrastructure:
- Docker Compose (backend + frontend + postgres)
- Dockerfile for backend (node:22-alpine + tsx)
- Dockerfile for frontend (vite build + nginx)
- nginx.conf with API proxy + SPA fallback
- .env.example for production secrets

Spec:
- AUTH-V2-SPEC updated: household join flow, manual shopping items
2026-02-18 17:26:24 +00:00
clawd
30e44370a1 Auth v2: Register/Login/Profile, Households, per-user Favorites/Notes/Shopping, Frontend Auth Pages 2026-02-18 15:47:13 +00:00
clawd
b0bd3e533f fix: don't send Content-Type on PATCH without body (fixes favorite 400) 2026-02-18 10:51:19 +00:00
clawd
931e2a3c1d fix: heart button - bigger tap target, stopPropagation, scale animation on tap 2026-02-18 10:50:45 +00:00
clawd
4d34e8304d fix: add favicon.svg 2026-02-18 10:48:40 +00:00
clawd
37f4bda795 fix: tablet responsiveness - wider layout, bigger text, 3-col grid for Tab S Ultra 2026-02-18 10:45:53 +00:00
clawd
c222c880a3 feat: v1.1 - random re-roll, shopping summary, offline PWA, auth prep, profile page 2026-02-18 10:32:12 +00:00
clawd
de567f93db feat: v1 release - serving calculator, notes UI, tags, random recipe, confetti, favorites section, PWA icons, category icons, animations 2026-02-18 10:23:22 +00:00
clawd
60ca01fb94 feat: OG image scraper - auto-fetch recipe images from Pinterest/URLs
- New backend service: og-scraper.service.ts (extracts og:image, og:title, og:description)
- Pinterest support via Twitterbot UA (gets original resolution from i.pinimg.com)
- Works with Chefkoch, Allrecipes, blogs, any site with og:image meta tags
- GET /api/og-preview?url= for preview
- POST /api/recipes/:id/fetch-image to download + process with sharp
- Frontend: 'Bild holen' button appears when source URL is filled
- Auto-fills title & description from OG data if empty
- Images processed to WebP, max 1200px wide
2026-02-18 10:15:18 +00:00
clawd
ee452efa6a feat: stabilization + recipe edit/create UI 2026-02-18 09:56:01 +00:00