2026-09-19 22:32:53 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:29:45 +02:00
2026-09-19 22:29:45 +02:00
2026-09-19 22:32:53 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00
2026-09-19 22:19:35 +02:00

KoolTab Remote Tab Control

A production-quality remote tab control system for venues. Allows bar staff to manage and close tabs remotely from a web dashboard, with commands delivered to bar terminals via a sync API.

Architecture

  • Monorepo managed with pnpm
  • NestJS backend API with Prisma ORM (SQLite for dev, PostgreSQL-ready)
  • Next.js dashboard with App Router, TanStack Query, and shadcn/ui
  • Shared TypeScript types package
apps/
  api/          # NestJS backend
  dashboard/    # Next.js frontend
packages/
  shared/       # Shared types & constants
scripts/
  device-sync.ts # Device simulator
docs/
  api.md        # API documentation
  architecture.md
  architecture-decisions.md
  local-development.md
  testing.md
  production.md
  security.md

Requirements

  • Node.js >= 18
  • pnpm >= 8

Quick Start

# 1. Install dependencies
pnpm install

# 2. Generate Prisma client
cd apps/api
pnpm db:generate

# 3. Run migrations
pnpm db:migrate

# 4. Seed demo data
pnpm db:seed
cd ../..

# 5. Start both API and Dashboard in dev mode
pnpm dev

API runs on http://localhost:3001 Dashboard runs on http://localhost:3000 Swagger docs at http://localhost:3001/api/docs

Demo Credentials

Role Email Password
Admin admin@example.com Admin123!
Viewer viewer@example.com Viewer123!

Device Simulator

# Run a full demo (register, sync, ack)
cd scripts
npx ts-node device-sync.ts demo <venueId> <registrationCode>

# Or step by step:
npx ts-node device-sync.ts register <venueId> "Bar Terminal 1" ABC123
npx ts-node device-sync.ts sync <deviceId> <token>
npx ts-node device-sync.ts ack <deviceId> <token> <commandId> completed

Running Tests

# Unit tests
pnpm test

# E2E tests
pnpm test:e2e

Docker

docker compose up

Production Notes

See docs/production.md for production deployment and SQLite → PostgreSQL migration guide.

S
Description
No description provided
Readme
1.4 MiB
Languages
TypeScript 98.2%
JavaScript 0.6%
HTML 0.5%
Dockerfile 0.4%
CSS 0.3%