Scaffold and Phase 1

This commit is contained in:
2026-05-02 19:46:42 -05:00
parent ab74e7cad4
commit d909cb7c30
92 changed files with 4967 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
# Event-Day Preflight Checklist
Complete this list at least 60 minutes before doors open.
## Server & Network
- [ ] Server is powered on and accessible at the public URL
- [ ] `docker compose ps` shows all containers healthy
- [ ] Local DNS record resolves: `ping auction.event.lan` responds from server LAN IP
- [ ] Event Wi-Fi SSID is broadcasting; test device can connect
- [ ] Failover test: disconnect WAN, confirm app loads via local hostname, reconnect WAN
- [ ] UPS is charged and protecting server + network gear
## Application
- [ ] Log in as admin at `/admin`
- [ ] Correct event is set to **published** status
- [ ] All auction items are entered with opening bids and increments
- [ ] Silent auction windows have correct open/close times and timezone
- [ ] Soft-close is configured on silent items
- [ ] Stripe keys are set; run a test payment in Stripe test mode
- [ ] Twilio Verify is working: send a test OTP to your phone
## Staff Devices
- [ ] Auctioneer tablet loaded at `/staff/auctioneer`, logged in with `auctioneer` role
- [ ] Spotter phone(s) loaded at `/staff/spotter`, logged in with `spotter` role
- [ ] Check-in tablet(s) loaded at `/staff/check-in`, logged in with `checkin_staff` role
- [ ] Display board TV/projector loaded at `/display` (no login required)
- [ ] All staff devices are connected to the event SSID
## Bidder Registration
- [ ] CSV import completed (or manual bidders entered)
- [ ] Paddle numbers assigned for pre-registered bidders
- [ ] QR code registration link / printed QR codes ready at check-in desk
- [ ] Test bidder account works: log in, view silent catalog, place a test bid, see outbid notification
## Backups
- [ ] Database backup triggered: `docker compose exec db pg_dump -U storybid storybid > backup-$(date +%F).sql`
- [ ] Backup file copied off the event server (USB drive or remote location)
## Go/No-Go
All items checked → **Go**. Any blocker → resolve before opening bidding.
+32
View File
@@ -0,0 +1,32 @@
# Staff Roles Quick Reference
| Role | URL | Can do |
|------------------|-----------------------|-----------------------------------------------------------|
| `admin` | `/admin` | Everything |
| `event_manager` | `/admin/events` | Create/edit events, items, bidders; view reports |
| `auctioneer` | `/staff/auctioneer` | Activate lots, call bids, mark sold/pass |
| `spotter` | `/staff/spotter` | Enter floor bids by paddle number |
| `checkin_staff` | `/staff/check-in` | Search bidders, scan QR, mark checked-in |
| `bidder` | `/` | View catalog, place bids, checkout |
## Auctioneer Workflow (Live Auction)
1. Open `/staff/auctioneer` on your tablet.
2. Tap **Activate** on the first lot — this makes it live to all bidder devices.
3. Call the opening bid from the podium; tap **Call $X** to push the amount to devices.
4. As bids come in (phone or floor), tap **Accept** with the paddle number.
5. Tap **Going Once****Going Twice****Sold** to close the lot.
6. Tap **Next Lot** to advance.
## Spotter Workflow
1. Open `/staff/spotter` on your phone.
2. When you see a floor bid, enter the paddle number and tap **Bid**.
3. The auctioneer console receives it immediately.
## Check-In Workflow
1. Open `/staff/check-in` on your tablet.
2. Scan the bidder's QR code **or** search by name/email.
3. Confirm paddle number and assign a table if relevant.
4. Tap **Check In** — the bidder's device receives their digital paddle.