GameTrakker
A multi-tenant Pennsylvania Small Games of Chance point-of-sale, inventory, and PA Department of Revenue reporting platform for social clubs and taverns — a modern rebuild of the abandoned 2014–2017 Cordova/PHP app, with a touchscreen POS, full DOR SGOC_Report XML filing, and a native tablet POS companion.
One Next.js app, four surfaces. Host-based routing serves www (public + login), admin (manager dashboard), pos (floor register), and api from gametrakker.net, behind one Let's Encrypt cert with cross-subdomain SSO.

Platform Features
Touchscreen POS Register
A fast floor register with PIN-based staff sessions, a touchscreen pay-in/pay-out keypad, and offline resilience.
- •PIN login for floor staff (club + PIN)
- •Keypad modal: Pay In / Pay Out with change-due math
- •Ticket-price validation (no partial / below-price tickets)
- •Offline IndexedDB queue with auto-sync on reconnect
- •In-register Jackpot & Door Prize entry (PIN-auth)
- •ESC/POS receipt printer + cash drawer via print-bridge
All 9 SGOC Game Types
Tracks every official Pennsylvania Small Games of Chance game type end-to-end, with pay-in/pay-out and inventory.
- •Pull Tabs & Punch Boards
- •Raffles (incl. Special Permit)
- •Daily / Weekly Drawings
- •50/50, Race Night, and Pools
- •Per-sale ticket tally and open-deal tracking
- •Bingo & Keno intentionally excluded (not SGOC)
DOR SGOC_Report XML Filing
Generates the official PA Department of Revenue submission — XSD-valid XML, aggregated by week and game-type code, PGP-ready.
- •XSD-valid SGOC_Report XML (validated against the official schema)
- •Sections 1–5: license, ledger, charity payouts, expenses, totals
- •Game-type guard rejects unmappable types before filing (HTTP 422)
- •PGP encryption hook for DOR transmission
- •Daily, Weekly, Monthly, and Employee reports
- •Schedule-V and CSV export
Games & Inventory
Full game lifecycle with a shared Game Master catalog, on-hand inventory, and bulk operations.
- •Game CRUD with image upload
- •Game Master catalog with real manufacturer artwork
- •On-hand inventory and open-deal tracking
- •Bulk activate / inactivate
- •Per-game reconciliation via the payout engine
- •78-game demo catalog for the showcase club
Operations
Jackpots, door prizes, charities, and expenses — the money movement around the games.
- •Jackpot tracking and payouts
- •Door prize entry
- •Charities and charitable payout distribution
- •Expense recording
- •Pay-in / pay-out ledger with idempotent replay protection
- •Recharts daily-activity dashboard
Multi-Tenant Admin + RBAC
Organization, club, and staff management with feature-level permissions authoritative across nav and API.
- •Company / SGOC license with county-municipality cascade
- •Staff CRUD with PINs, custom roles, and per-user grants
- •Clubs and company groups
- •requireCapability() gates both nav and API from one grant
- •Manager (web NextAuth) + floor (PIN session) auth models
- •Audit logging on privileged actions
Stripe Billing
Organization-level subscriptions with signature-verified webhooks and a self-service billing portal.
- •Org-level plan mapping from Stripe price IDs
- •Checkout + customer portal (owner-gated)
- •Signature-verified webhook plan sync
- •Graceful 503 when billing is unconfigured
- •Public pricing page
Legacy Migration
Imports the abandoned 2014–2017 Cordova/PHP/MySQL app's data into the modern multi-tenant Postgres schema.
- •MySQL → Postgres migration tool (idempotent by legacy company ID)
- •Companies → Organizations, Users → PIN-hashed memberships
- •Game Master, Games, GamePay ledger, charities, jackpots
- •Exact financial-total reconciliation checks pass
- •Re-run safe: never touches the demo seed
Technology Stack
Build Metrics
9
SGOC Game Types
65
Unit Tests
18
E2E Tests
4
Subdomains