Everything your business needs to manage customer queues - from the self-service kiosk to executive reports. Built, deployed, and battle-tested in real businesses.
Three counters serving 'Deposit' in parallel - system routes tickets to whichever cashier hits 'Next' first. No conflicts, no lost tickets.
Counter 5 = Deposit + Withdrawal + Customer Service. Cashier pulls from any of their queues. Perfect for off-peak hours.
Room.AdditionalServiceIds[]VIP tickets route straight to a VIP counter. Exclusive flag locks the counter to VIP only, or 'flexible' allows fallback.
Room.Tier · ExclusiveTierCashier speaks Russian? Tag skill='ru' on their profile. Russian customer arrives → system prefers them. Same for Loans/FX/specialties.
User.Skills[] · Service.RequiredSkills[]Cashier on break? One-tap release. Colleague claims it. Every move logged for audit review.
Avg handling time per cashier, daily peaks, top services, VIP ratio - data the branch manager actually uses.
Each business has its own customers, tickets, and settings - full data isolation between clinics.
TenantId on every entityD-001 for one section, G-001 for another - daily auto-reset per clinic.
Arabic, English, Italian, German, Russian, Ukrainian, French, Urdu, Turkish - with auto region detection.
Not a translation - designed Arabic-first with local numerals, dates, and voice.
Full-screen large buttons, high contrast, full RTL - pick branch then service in one tap.
30 seconds idle → back to home screen for the next patient. Visible countdown bar.
Disables F11, Alt-Tab, right-click, zoom - can't escape without staff password.
Pulls active tenants from the server live - no manual config per kiosk.
Browser pairs directly with the printer. Supports Goojprt, MUNBYN, Xprinter, and more.
Web Bluetooth · Nordic UART · ESC/POSLightweight Node.js agent on the kiosk PC receives print commands from the browser.
node-thermal-printer · port 7001Server opens TCP directly to network printer. Epson TM, Star TSP, Bixolon - all supported.
CP864 Arabic · ESC/POS · GS V 0 cutLarge ticket number, Arabic service name, patient name, timestamp, auto-cut.
Each service routes to its own printer (e.g., dental, reception) - system picks automatically.
System logs last success / last failure per printer for instant troubleshooting.
Insert card → name and Civil ID number auto-filled in 2 seconds.
Civil ID stored encrypted (AES) - useless if the database is exfiltrated.
AES-256 + per-tenant keyNon-Kuwaiti patients or those without ID → tap 'skip' for an anonymous ticket.
Local PC/SC agent - no internet, no government API needed.
One click → system picks the next ticket by priority, time, and room.
Patient absent or needs labs? Defer 5/10/15 min without losing their slot.
Patient didn't show after 3 calls → marked 'skipped' and the queue moves on.
Doctor on break? Close the room with a click - auto-routing skips it.
Live table of all waiting patients, issue times, priorities, names, IDs.
Per-ticket notes ('penicillin allergy') - visible to the next staff member.
'Ticket D-007 to Dental Room 1' - natural voice, works offline.
Full-screen, last 5 called tickets, blink on the latest, filter by section.
Small LED above each door shows the called ticket number - red, visible from afar.
MQTT · A1Q-Hub firmwareDisplay at Dental shows Dental tickets only; reception displays show all.
Persistent WebSocket between server and all browsers - sub-100ms updates.
LED panels, printer devices, ESP32 kiosks - all speak MQTT with the server.
a1q/{tenant}/counter/{room}/showNetwork blip? All devices auto-reconnect and resync to current state.
One server event → published to SignalR and MQTT simultaneously, no lag.
Per service, per room, per hour - detects bottlenecks automatically.
Daily/weekly/monthly, by service, by staff, by channel (kiosk/reception/mobile).
Service ranking by demand - plan expansion and staffing.
Any report → one-click Excel, preserving Arabic and RTL.
Trial (14d, 3 rooms) · Starter (5 rooms, 199 KWD) · Pro (15 rooms, 549 KWD) · Enterprise (1899 KWD).
Crockford-Base32 keys (no I/L/O/U), readable from a printed invoice, unguessable.
A1Q-XXXXX-XXXXX-XXXXX-XXXXXRenewal extends expiry + maintenance window, even if expired days ago.
Background worker every 24h flips expired licenses and emits alerts.
Try to add room #16 on Professional? HTTP 402 + 'upgrade plan' UI dialog.
LicenseGuard · LicenseLimitExceptionOne-time online activation; runs offline forever after.
Create tenants, set timezone and locale, plan limits.
SuperAdmin · TenantAdmin · Reception · Doctor · Viewer - distinct permissions per role.
Define services (Dental, General, Pediatrics…), code, color, sort order, group.
Define rooms, link to service, open/close, multi-floor.
Add printers (BT/USB/Net), instant test print, track success/failure.
Add LED panels, link to rooms, test calls, firmware management.
Current license, status, expiry, 30-day warning, activate, renew.
End of day → one click clears today's tickets, numbering resets to 001.
HS256 signed with ≥32-char key, session duration configurable, tenant claim required.
AES with per-tenant key - even the tech admin can't read raw IDs.
Middleware enforces JWT-vs-header tenant match - no cross-tenant access ever.
Explicit allowed origins only, no wildcards, credentials supported.
Runs inside the clinic network - data never leaves your premises.
Single .litedb file - no SQL Server install, no licensing fees.
One .exe installs backend + every frontend (kiosk, display, admin) in 3 minutes.
Patients add to home screen and track position live - no app store.
Kiosk, call displays, and staff workstations all on the same WiFi - no cabling.
First run: 5 questions create admin user, services, rooms, and a 14-day trial license.
No credit card · Key arrives in seconds · Cancel anytime
🚀 Start Now