utsav@homelab:~$
cd ~/projects/zebra-pos
ZEBRA TC53 CASHIER
> U2 · GPU, HANDHELD COMPANION TO THE MAIN POS
utsav@homelab:~/projects/zebra-pos$ cat README.md
Built specifically for the Zebra TC53's own dedicated hardware barcode scanner, deliberately no
camera scanning anywhere in this app. Exclusive to Khatiwada Store, my family's shop, reachable
privately over Tailscale so a staff member can ring up a sale anywhere in the shop instead of
being tied to the counter. Proof that if a customer's own hardware has a real barcode scanner,
I have a real solution built for it, not just a generic camera fallback.
utsav@homelab:~/projects/zebra-pos$ ./features --list
▸ Zebra's own DataWedge keyboard wedge scanning, no camera anywhere in the app
▸ Works with standard EANs and the shop's own printed alphanumeric shelf labels
▸ Runs inside Zebra's Enterprise Browser kiosk shell, with a native EB.Barcode scan path alongside DataWedge
▸ Save and resume a cart mid transaction, browser local today, server side named carts planned
▸ Shares the exact same live database as the main Nepal Grocery POS, one source of truth
▸ Fonepay QR payment step, static QR today, dynamic per sale QR planned once bank API access lands
utsav@homelab:~/projects/zebra-pos$ docker inspect zebra-pos --format stack
HARDWAREZebra TC53, Snapdragon 6490, 6 inch display, IntelliFocus scan engine, no camera used
INPUTDataWedge keyboard wedge, plus Enterprise Browser's native EB.Barcode API
ACCESSPrivate, Tailscale only, exclusive to Khatiwada Store, zero login by design
PAYMENTSStatic Fonepay QR today, dynamic per sale QR blocked on bank API access
DATASame store.db and sales.db as the main Nepal Grocery POS, one source of truth
STATUSDeployed and reachable over Tailscale, in active testing, not yet the shop's primary till
utsav@homelab:~/projects/zebra-pos$ git log --reverse --milestones
2026-07-12Project kickoff, proved the DataWedge keyboard wedge concept informally at Bunnings before buying anything
2026-07-13Backend copied from the proven Nepal Grocery POS, Zebra optimized cashier UI and payment step built
2026-07-14Zebra TC53 purchased secondhand through Cash Converters Australia, on device fixes shipped the same day
2026-07-15Offline first PWA (app shell, catalog mirror, sales outbox) and the Android back button handling both landed after several real, on device bug rounds
2026-07-16Native Enterprise Browser scan API, EB.Barcode, added alongside DataWedge, plus admin shelf label barcode printing
2026-07-23A separate SaaS pilot demo variant of this same codebase added, signed token SSO handoff, sellable as a Zebra handheld option; the real Khatiwada Store deployment stays zero auth, Tailscale is the trust boundary
2026-07-27 to 2026-08-19Shared admin panel kept in step with the main POS: palette redesigns landing on a bright food-app theme, a self-hosted category icon system, a full Category taxonomy overhaul with bulk assignment, and a mobile polish pass. The handheld cashier itself, purpose-built for the TC53, stays untouched throughout
ONGOINGIn active testing on the real device inside Enterprise Browser, not yet cut over as the shop's primary till
utsav@homelab:~/projects/zebra-pos$