This commit is contained in:
2026-06-17 00:21:00 +02:00
commit 408e48c568
41 changed files with 6617 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# shopping-list
Self-hosted, topic-based shopping lists with price-drop notifications.
Track things you want to buy (clothes, gear, whatever), paste product URLs,
get mailed when a deal appears.
## Stack
- **Backend** — Rust, [Axum](https://github.com/tokio-rs/axum), SQLx + Postgres,
argon2 password hashing, server-side sessions (tower-sessions), lettre SMTP.
- **Frontend** — SvelteKit + TailwindCSS, grunge/breakcore theme.
- **Infra** — docker-compose (Postgres + backend + frontend).
## Status
Phased build. Current: **Phase 1 — auth foundation**.
| Phase | Scope |
|-------|-------|
| 1 | Accounts, email verification, login/logout, password reset, per-user settings |
| 2 | Lists (topics) + items CRUD |
| 3 | Tracked URLs: paste → periodic refetch → price parse + history |
| 4 | Notifications: SMTP price-drop alerts |
| 5 | Design polish |
## Quick start (dev)
```sh
cp .env.example .env
# edit .env — set SESSION_SECRET (openssl rand -hex 32) and SMTP creds
# Postgres only, run backend/frontend natively while developing:
docker compose up -d db
# backend
cd backend && cargo run
# frontend (separate shell)
cd frontend && pnpm install && pnpm dev
```
Full stack in containers:
```sh
docker compose up --build
```
App: http://localhost:5173 · API: http://localhost:8080
## Notes
- Deal tracking uses **user-pasted product URLs** refetched on a schedule —
no hardcoded retailer scrapers. Region default: DE/EU, EUR.
- SMTP is required for email verification + notifications. Use a real provider
or a dev catcher like [Mailpit](https://github.com/axllent/mailpit).