Poised Genie
Point of Sale · Production

POS and back-office for the shops nobody else builds for.

Avyra POS is the operations brain for variety, tobacco, and convenience stores — the places running on three spreadsheets and a notepad. Bulk inventory by Excel, physical counts with live value tracking, sales analytics, and the hardware integrations that actually work at the till.

.xlsx / .csv
Bulk upload
yes
Auto-PLU
Live $ impact
Stock count
Every change
Audit trail
Features

What it does in production.

Excel upload for inventory

Drop in an .xlsx with hundreds of products. Auto-detects duplicates by PLU, barcode, or name. Auto-generates PLUs and a 30% markup price when fields are blank.

Physical inventory count

Side-by-side system-vs-counted quantities with live value impact. Color-coded surplus / shortage. Notes per line. Batch update with full audit trail.

Sales analytics

Category, item, and time-of-day breakdowns. Spot shrinkage, restock timing, and the items that actually move.

Smart category rules

Grocery is non-taxable, everything else taxable — out of the box. Override per category as needed.

Hardware integrations

Barcode scanners, receipt printers, scales, cash drawers, and customer displays. We size and ship the hardware, not just the software.

Role-based access

Admin, manager, and clerk roles. Sensitive actions (bulk upload, counts) require manager+; the floor sees only what they need.

Grouped views

Tobacco and lottery inventory grouped by family — count cartons and singles separately without losing the totals.

Auditable by default

Every count, upload, and price change writes an immutable log entry. Every shrinkage question has a paper trail.

Architecture

How it's built.

  • Frontend: React 19 + Material UI v7 + Vite + React Router v7.
  • Backend: Node + Express + Mongoose, JWT-authenticated, Multer for uploads, XLSX for parsing.
  • Windows till app for in-store hardware (separate spec).
  • Zero schema migration to enable bulk upload — works with the existing Product model.
  • Calculations: `Difference = counted − system`, `Value impact = difference × cost`.
  • Production-tested at Anytime Variety (Ontario, 2026).
┌────────────────────────────┐
│   admin-panel-v2 (React)   │  ← managers + clerks
│   MUI v7 · Vite · Router7  │
└──────────────┬─────────────┘
               │  /api
               ▼
┌────────────────────────────┐
│   back-end (Node/Express)  │
│   JWT auth · Multer · XLSX │
└──────────────┬─────────────┘
               ▼
        MongoDB (Mongoose)
               │
               └─► windows-app (Electron till)
                    + scanners, printers, scales
Use cases

Who runs it today.

Variety & convenience

The original use case. Tobacco, lottery, snacks, beverages — categorized correctly, taxed correctly, counted easily.

Specialty retail

Any single-location shop where the owner is also the operator. Replaces the spreadsheet, the notepad, and the dread of inventory night.

Small franchises

Multi-store rollouts share a back-office and consolidate reporting without forcing each store onto the same SKU list.

Built withReact 19Material UI v7ViteNode.jsExpressMongoDBMongooseJWTMulterXLSXAxios
FAQ

Questions we get asked.

Why not just use Square or Lightspeed?+

Try doing tobacco-pack-vs-carton inventory counts on either, with proper Canadian tax categories and a paper audit trail. We built this because there wasn't a good answer for shops under 2,000 SKUs that still need real controls.

Can my staff actually use it?+

Yes. Inventory count uses color-coded surplus/shortage cells with live dollar impact. The Excel upload supports template download and reports every row's outcome.

Does it run offline?+

The Windows till app survives short network drops. The admin panel needs network — it's where managers work, not the floor.

Can you add barcode scanning to counts?+

It's on the v2 roadmap. The current build supports it via scanner-as-keyboard input. Voice input and photo documentation are coming.

Ready when you are

Got a product to build? Tell us what you have in mind.

We kick off in days, not months. Working software in weeks. If we're not the right fit, we'll tell you up front.