Skip to content

Quick Start

This guide gets a full ScanPick stack running locally in about 5 minutes. You’ll have PostgreSQL, the API, and the web dashboard all running via Docker.

Terminal window
git clone https://github.com/timDeHof/scanpick.git
cd scanpick
# Copy environment file and set secrets
cp .env.example .env

Edit .env and set:

  • JWT_SECRET — generate with openssl rand -base64 48 | tr -d '/+=' | head -c 64
  • POSTGRES_PASSWORD — any secure password
Terminal window
docker compose up --build

This starts three containers:

  • PostgreSQL 16 — database
  • ScanPick API — .NET 10 backend (port 5000)
  • nginx — serves web dashboard + reverse proxies API (port 80)

Wait for the API to finish seeding demo data (about 10 seconds).

Navigate to http://localhost.

Log in with:

  • Worker ID: worker-001
  • PIN: 1234

You’ll see the wave management dashboard. A demo wave has been seeded automatically.

In a separate terminal:

Terminal window
cd mobile
npm install
npx expo start
  • Press a for Android Emulator
  • Press i for iOS Simulator

Log in with worker-003 / 1234 to see assigned waves and start scanning.

CheckHow
Web dashboardOpen http://localhost
API healthcurl http://localhost:5000/api/health
Swagger UIhttp://localhost:5004/scalar/v1 (dev mode)
MobileApp loads, waves appear