diff options
| -rw-r--r-- | README.md | 44 |
1 files changed, 28 insertions, 16 deletions
@@ -6,7 +6,7 @@ chores). - SvelteKit (Svelte 5 runes) + adapter-node, no separate front/back. Mobile-first CSS - SQLite via **@libsql/client** + Drizzle ORM - Plain CSS (no framework), Vitest for tests, Prettier + ESLint flat config -- Multi-stage Docker image (node:26-slim), served behind Caddy +- Multi-stage Docker image ## Notable choices @@ -22,25 +22,26 @@ chores). ### Groceries Two core concepts: the **catalog** (every item you've ever added) and the -**list** (what to buy next). Adding an item puts it on the list; checking it -off moves it back to the catalog. Items already on the list are marked as -such in the catalog. Unchecked items stay on the list for the next shopping -trip — there is only one persistent list. +**list** (unchecked items — what to buy next). Adding an item creates it (or +unchecks an existing one). Checking an item off simply marks it done; it +remains visible in the catalog with a strikethrough. Unchecked items persist +on the list for the next shopping trip — there is only one persistent list. **Three modes of use:** 1. **Quick add** — during the week, you run out of milk or need an ingredient. - Open the app, search, tap to add. As frictionless as possible so you + Open the app, type the name, tap to add. As frictionless as possible so you build the habit. 2. **Planning** — before shopping, sit down with your partner and browse the - catalog. Re-add whatever you're missing. The catalog view stays open - after each add (sticky mode), so going through 20–30 items is not - frustrating. Stale one-off items can be deleted from the catalog. + catalog. Tap unchecked items to add them back to the list. The page + does not reload, so going through 20–30 items is not frustrating. + Stale one-off items can be deleted from the catalog. 3. **Shopping** — items are grouped by category (matching store aisles). - Check off as you grab them. Multiple devices, same list — both partners - can check things off in sync. + Check off as you grab them. Multiple devices can use the same list, + but live sync is not implemented yet — refresh to see your partner's + changes. **Product references** — some items like "coffee" or "pasta" aren't generic. For these you can record one or more reference brands, each with a name, @@ -49,15 +50,26 @@ you're unsure which brand you usually buy or you spot an alternative, you can compare against your references right from the item. If a new brand wins, you can add it or switch the reference. -**Categories** — items are auto-categorized (LLM-assisted) and can be -manually adjusted. Categories correspond to physical store aisles for an -efficient shopping walk. +**Categories** — items are manually assigned to categories. Categories +correspond to physical store aisles for an efficient shopping walk. + +**PWA** — installed as a standalone app via `@vite-pwa/sveltekit`. Service +worker precaches assets; works offline after first visit. ## TODO +### Bugs / Polish + - [ ] Live updates from server -- [ ] Bug: adding a ref triggers the Enregistré timeout -- [ ] Feature: from catalog, multi select and add in batch to category +- [ ] Search/filter in list and catalog +- [ ] Fixed category order in both lists (drag to reorder aisles) + +### Features + +- [ ] From catalog, multi-select and add in batch to the list +- [ ] Update item name/category on blur, no explicit save button +- [ ] Auto-categorize new items (LLM-assisted) +- [ ] Chores module (intro already promises "groceries, chores") ## Deploy |
