Replace BTCPay payments with free pre-orders + live ready-status

- server.js: order store with K484-XXXX codes, stand assignment, SSE
  status to customers, passcode-gated staff API, persists to .data/
- staff.html at /staff: order board with Mark ready / Collected / Cancel
- index.html: drop BTCPay API key, invoices, QR, BTC price; orders now
  server-backed with live PREPARING -> READY updates and stand location
- e2e-test.js rewritten for the order loop (14 checks, all passing)
- README added; .gitignore covers server/.data
This commit is contained in:
avi 2026-09-28 15:09:49 -05:00
commit 582e571eff
10 changed files with 656 additions and 1096 deletions

34
README.md Normal file
View file

@ -0,0 +1,34 @@
# KITCHEN 484 · Solarpunk Summit
Festival kitchen site: browse the food schedule, place a free pre-order,
and watch it flip to **READY** the moment the kitchen fires it — with the
stand to pick it up from.
## What it is
- `index.html` — customer PWA (schedule, cart, pickup codes, live status)
- `server/server.js` — zero-dependency Node backend: order store, pickup
codes (`K484-XXXX`), SSE live status, static hosting
- `server/staff.html` — staff order board at `/staff` (passcode-gated:
mark orders READY / COLLECTED / CANCELLED, filter by stand)
- `home.html` — K484 association page (separate, untouched)
Payments were removed (Sep 2026): pre-orders are free reservations;
people pay at the stand. The old BTCPay proxy lives in git history
(commit `601c85f`) if it's ever needed again.
## Run
```sh
cd server
cp .env.example .env # set STAFF_PASSCODE (openssl rand -hex 4)
node server.js # http://localhost:8787
```
Orders persist to `server/.data/orders.json` (gitignored).
## Test
```sh
cd server && npm run test:e2e # 14 checks: order loop, auth, SSE, restart persistence
```