bee3bcc278
- PRD: 20 locked decisions, open items cleared, fence fixed - docs/TECH-SPEC-PIPELINE.md: deterministic math + 9 test vectors (deliverable #1) - docs/ARCHITECTURE.md, DATA-MODEL.md, OPENAPI.md (deliverable #2), CONTENT-WOO.md, DEPLOYMENT.md (deliverable #4), IMPL-PLAN.md - README rewritten; .gitignore added AGENTS.md pending Ty's approval (protected file write was blocked).
44 lines
2.2 KiB
Markdown
44 lines
2.2 KiB
Markdown
# 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/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: `github.com/TyTech99/SlabUploader`
|
||
- Mirror: Gitea `TyTech_Internal/SlabUploader` (truenas.local:30008)
|
||
|
||
## 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.
|