Current State
Where the PLQPOS build stands today, and the plan for turning the November demo into a real, deployable point of sale.
Live today
Portal — nov2026.nvai.dev
Primary project index for the month, with links to every PLQPOS surface.
Register & Manager Console — pos-ryan-initial-interface.nvai.dev
Touchscreen register (full-width cart, Quick Keys pop-out, Functions F1–F10, scan-above-cart) and the manager console (Dashboard, Inventory, Invoices, Promotions, Cash & Z-Report, Time Clock, Reports).
Backend & Dashboard — plqpos-nov2026.nvai.dev
Cloudflare Pages Functions over a D1 database: catalog, scan, age verification, checkout, orders, payments, invoice ingestion. Catalog seeded from High Country Beverage invoice W-7539342 at a 30% markup.
Helper — pos-helper-ccsimulator-20261106.nvai.dev
PAX S300 style card-reader simulator covering approved, declined, partial, timeout and the rest of the test scenarios.
What’s real vs. demo
- Real: register UI, console UI, invoice ingestion (PDF / CSV / JSON, Encompass & Breakthru), D1 schema and API, card-auth contract, time clock audit trail.
- Demo: dashboard and report figures are date-seeded synthetic data (
salesForDate()), not live sales. - Local only: time clock state lives in
localStorageshared between the register and console — no server-side persistence yet.
Next build — phases
Phase 0 Decide
Set scope: v2 of PLQPOS_NOV2026 or a fresh project; the source of truth for sales; whether to integrate with hq.poudreliquors.com / PLQ Internal; which hardware (PAX S300, Encompass, Breakthru, scanners).
Phase 1 Data model
Move time clock and sales into D1 for real: employees, time_entries, time_log (immutable audit), alongside the existing products, sales, sale_items, invoices tables.
Phase 2 API
Add POST /api/v1/timeclock/punch (server enforces in/out rules), POST /api/v1/timeclock/adjust (manager only), GET /api/v1/timeclock/report, and GET /api/v1/timeclock/status. PIN-based auth for now.
Phase 3 Register
Carry the existing UI; point the F7 Time Clock modal and checkout at the new backend.
Phase 4 Console
Read real sales from /api/v1/reports/sales instead of demo data; Time Clock view and Reports backed by the API. Keep the chart styling (Inter, muted axis ticks, cumulative chart above the 15-minute chart).
Phase 5 Invoices
Already working — file picker, dropzone, pdf.js, sign convention, review step. Point at the new backend.
Phase 6 Deploy
New Pages project + D1 database, custom domain under nvai.dev, link from the portal, cache-bust assets.
Risks & dependencies
- hq.poudreliquors.com sits behind Cloudflare Access with Google Workspace sign-in (@poudreliquors.com), app “PLQ Internal”. Blocks back-office integration until an auth path exists.
- No real sales data until the register is live — reports stay synthetic before then.
- Invoice feeds depend on the Encompass API key (rotate it) and the Breakthru PDF format staying stable.
Immediate next actions
- Confirm the Phase 0 answers (scope, repo name, sales source, hq integration).
- Scaffold the new repo from
PLQPOS_NOV2026(schema.sql,functions/,seed/). - Add the time-clock tables and API routes.
- Point the register’s F7 modal at the new backend.
- Swap the console’s demo data for real API reads.
- Deploy and verify end to end.