Files
SlabUploader/README.md
T

45 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SlabUploader
Mobile-first, self-hosted app for publishing one-of-a-one wood slabs to WooCommerce.
Field capture (offline) → deterministic measurement/pricing/normalization → publish a
single slab to the store as a pending product.
Owner: Ty (Whidbey). Store: www.whidbeywoodstore.com. Deploy: .201 (Caddy, Docker).
## Status
**Planning complete — ready for implementation.** All 20 product decisions locked
(PRD "Decisions log", 2026-08-24). Build plan in `docs/IMPL-PLAN.md` (phases 0–6).
## Documentation
| File | What |
|---|---|
| `Slab capture app PRD.txt` | Requirements + locked decisions (source of truth for "what") |
| `docs/ARCHITECTURE.md` | Services, client/server split, offline PWA, data flow |
| `docs/TECH-SPEC-PIPELINE.md` | Deterministic math + image pipeline, constants, 9 test vectors |
| `docs/DATA-MODEL.md` | SQLite schema + status state machine |
| `docs/OPENAPI.md` | Client↔server API contract (deliverable #2) |
| `docs/CONTENT-WOO.md` | Content templates + WooCommerce payload/integration |
| `docs/PROMPTS.md` | Call 1 vision prompt + Call 2 content prompt (server files) |
| `docs/DEPLOYMENT.md` | Compose, Caddy, backup/restore, key rotation (deliverable #4) |
| `docs/IMPL-PLAN.md` | Phased build plan with acceptance criteria + exit gates |
| `AGENTS.md` | Working contract + hard rules for anyone implementing |
## Quick orientation
- **Deterministic core** (measurements, pricing, normalization, Woo sync) is pure,
network-free, and unit-tested. Inference (species/character + optional content) is
the *only* scoped-LLM surface, and it's toggleable — the app fully works without it.
- **Offline-first PWA**: capture works with no network; drafts + photos persist in
IndexedDB and sync when online.
- **Two containers** (`frontend`, `fastapi`) + Caddy. Single SQLite + image volumes.
- **v1 non-goals**: no versioning, no staff/roles, no bulk publish, no analytics,
no update path (create-only, SKU-deduped).
## Repo remotes
- Canonical (source of truth): Gitea `Ty_Tech/SlabUploader` on **gitea-atd** (`https://gitea.vps1.afterthedemo.com/Ty_Tech/SlabUploader`)
- Optional later mirrors: `gitea-truenas`, GitHub — not SoT for this workstream
## Getting started (implementer)
1. Read `AGENTS.md` (hard rules) and `docs/IMPL-PLAN.md` (phases).
2. Start at Phase 0 — scaffold + the tested deterministic pipeline.
3. Don't skip the exit gates; Ty signs each phase.