Skip to content

Repository files navigation

barcode

Scan on your phone. Paste on any computer.

A temporary phone-to-PC barcode scanner. Open a website on any computer, pair your phone by scanning a QR code, then scan a barcode — the value appears in the browser, ready to copy. For labels with no barcode on them, the phone can read the printed text instead; you tap the line you want and that exact line is what gets sent.

Built for retail and technical support, where a technician setting up a customer's machine needs to enter product keys, activation codes, serial numbers, or Wi-Fi credentials, and installing software on that machine is inconvenient or impossible.

No accounts. No install on the PC. No permanent pairing. The session expires and nothing is left behind.

Documentation

Document Contents
Product overview What this is, who it is for, and what it must not become
Architecture Components, technology choices, deployment
Protocol Session lifecycle, WebSocket messages, limits, error codes
Security and privacy Threat model, logging rules, data handling
UI specification Receiver and scanner states, copy, failure modes
Scope and roadmap MVP scope, phases, what is deliberately excluded
Operations runbook Deploy, roll back, read logs, troubleshoot

Layout

packages/protocol/     shared message types, limits, pairing URLs, WS client
packages/relay/        Fastify + ws server; sessions live in memory only
packages/web/          one app for both devices; role comes from the pairing fragment

Development

npm ci
npm run build          # protocol, both front-ends, then the relay
npm test               # relay unit + integration tests
npm run typecheck

npm start              # serves the app at / and /p/ on :3000

Open http://localhost:3000 on the computer. The phone needs HTTPS for camera access, so for real device testing point a tunnel at port 3000 and set PUBLIC_ORIGIN to the tunnel's HTTPS URL — pairing URLs are built from it.

Deployment

docker compose up -d --build behind Caddy, driven by ./deploy.sh, which rolls back automatically if the new build does not come up healthy. See the operations runbook.

Status

Phase 0 complete: relay, web receiver and phone web scanner, working end to end, plus on-device text capture for labels with no barcode. Native Android is Phase 1.

About

A special barcode scanner.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages