# Storybid Self-hosted charity auction platform supporting live and silent auctions in the same event, with offline-first PWA bidding and automatic LAN failover for event-night resilience. ## Stack | Layer | Choice | |------------|---------------------------------------------| | Client | React 18 + TypeScript + Vite + Tailwind | | PWA/Offline| Workbox (vite-plugin-pwa) + Dexie/IndexedDB | | Real-time | Socket.io | | Server | Node.js + Express + TypeScript | | ORM | Prisma | | Database | PostgreSQL (SQLite optional for dev) | | Cache/Queue| Redis (optional) | | Auth | Email magic links + Twilio Verify SMS OTP | | Payments | Stripe Payment Element / Payment Intents | | Media | Local disk (multer) served as static files | | Deploy | Docker Compose (Unraid / Linux VM) | ## Quick Start (development) ```bash # 1. Clone and install git clone cd storybid npm install # 2. Start DB + Redis docker compose -f docker-compose.dev.yml up -d # 3. Configure environment cp .env.example .env # Edit .env with your Stripe, Twilio, and SMTP keys # 4. Migrate database and seed demo data npm run db:migrate npm run db:seed # 5. Start dev servers npm run dev # Client → http://localhost:5173 # Server → http://localhost:3001 ``` ## Production Deployment See [`ops/README.md`](./ops/README.md). ## Event-Night Network See [`ops/unifi-dns.md`](./ops/unifi-dns.md) for UniFi local DNS setup and WAN-failover testing. ## Staff Runbook See [`event-runbook/preflight.md`](./event-runbook/preflight.md) for the pre-event checklist and [`event-runbook/staff-roles.md`](./event-runbook/staff-roles.md) for per-role instructions. ## Project Plan The full product specification lives in [`STORYBID.md`](./STORYBID.md). ## Build Roadmap | Phase | Focus | Status | |-------|------------------------------------------------|---------| | 1 | Foundation – monorepo, auth, org/event models | ✅ done | | 2 | Live Auction – auctioneer console, bidder view | ✅ done | | 3 | Silent Auction – catalog, timers, outbid | ✅ done | | 4 | Offline Resilience – PWA, outbox, failover | ✅ done | | 5 | Event Ops – check-in, checkout, fund-a-need | ⬜ todo | | 6 | Hardening – load test, a11y, backups, docs | ⬜ todo |