Back to ProjectsCase Study Available

Project Case Study

ShelfPilot POS

Retail Point-of-Sale and Inventory Platform

A role-aware retail POS and inventory management system for small and medium businesses. Connects product management, barcode checkout, stock control, VAT/tax, payment recording, receipts, reporting, and operational oversight — with offline sales continuity and audit logging.

Next.jsTypeScriptTailwind CSSNestJSPostgreSQL / PrismaRBACPWAOffline Sales Queue
ShelfPilot POS executive dashboard showing sales overview, inventory status, low-stock alerts, and quick access to POS checkout

Product Overview

ShelfPilot POS is a web-based retail point-of-sale and inventory management system built for small and medium businesses. It helps business owners manage products, generate or attach barcodes, scan items at checkout, automatically calculate totals, apply VAT or other taxes, process payments, deduct stock after sales, and generate compact but detailed receipts. The system works for supermarkets, mini-marts, pharmacies, boutiques, restaurants, wholesalers, and other retail businesses.

Problem

  • Many small and medium business owners still manage sales, stock, prices, payments, and receipts manually or with disconnected tools.
  • Slow checkout leads to queues and customer frustration.
  • Manual pricing causes mistakes and lost revenue.
  • Poor stock visibility leads to stockouts and overstocking.
  • Cashier manipulation and fraud are difficult to detect without audit trails.
  • Receipt paper waste from unnecessarily long receipts.
  • Difficulty understanding daily sales performance without structured reporting.

User Roles and Permissions

ShelfPilot POS enforces role-based access control on both frontend and backend. Each role has specific permissions and restrictions:

Business Owner / Admin

Full permissions: manage business profile, users, roles, products, prices, VAT/tax, discounts, reports, refunds, and audit logs.

Manager

Operational permissions: add/edit products, receive stock, approve discounts and refunds, view branch reports, close cashier shifts.

Cashier

Checkout permissions: scan products, manage cart, complete sales, apply allowed discounts, print receipts, view own sales history.

Inventory Staff

Stock permissions: add received stock, count stock, record damaged or lost stock, view inventory list, generate stock adjustment requests.

Accountant / Auditor

Read-only financial permissions: view sales, payment, and tax reports, view audit logs, export reports.

Core MVP Features

Inventory management
Product creation and editing
Barcode and SKU handling
Barcode scanner support
Cashier checkout flow
Cart calculation with VAT/tax
Discount handling
Compact receipt generation
Sales history
Stock deduction after sale
Low-stock alerts
Basic reporting

Checkout Workflow

The POS checkout flow is optimized for speed. The scan field stays focused by default so that scanned barcode input immediately adds the product to cart:

Step 1

Admin creates product with SKU and barcode

Step 2

Cashier scans barcode at checkout

Step 3

Cart calculates subtotal, discount, VAT, and total

Step 4

Cashier processes payment and confirms

Step 5

Stock is deducted automatically

Step 6

Compact receipt is generated and printed

Dashboard and Inventory

The Next.js web dashboard serves as the business command center — product management, inventory tracking, category organization, and low-stock monitoring.

ShelfPilot POS executive dashboard showing sales overview, inventory status, low-stock alerts, and quick access to POS checkout

Executive Dashboard

Business overview showing sales performance, inventory status, low-stock alerts, and quick access to POS and reports.

ShelfPilot POS inventory overview showing all products with stock quantities, categories, and search filters

Inventory Overview

All products in inventory with stock quantities, categories, and search by name, SKU, barcode, or category.

ShelfPilot POS add new product form showing fields for product name, category, SKU, barcode, selling price, stock quantity, and tax status

Add New Product

Product creation form with name, category, SKU, barcode, selling price, stock quantity, unit type, and taxable status.

ShelfPilot POS product catalogue showing all products with names, prices, stock levels, and active status

Product Catalogue

Full product catalogue with active and inactive products, prices, and stock levels.

Category and Stock Management

ShelfPilot POS category management screen showing product categories with options to add, edit, and organize

Category Management

Organize products into categories for filtering, reporting, and dashboard navigation.

ShelfPilot POS low-stock alerts showing products below reorder level with stock quantities and reorder thresholds

Low-Stock Alerts

Dashboard alerts for products below reorder level and fast-moving products close to stockout.

ShelfPilot POS product details screen showing product information including price, stock level, barcode, category, and tax status

Product Details

Individual product detail view with price, stock, barcode, category, tax status, and price change history.

Sales History and Refunds

Complete sales history with date range filters, cashier information, and payment methods. Refunds require manager approval and create separate refund records linked to the original sale.

ShelfPilot POS sales history showing a list of completed sales with dates, cashier names, payment methods, and sale totals

Sales History

Complete sales history with date range filters, cashier information, payment methods, and sale status.

ShelfPilot POS sale and refund details screen showing individual sale items, totals, payment method, and refund options

Sale and Refund Details

Individual sale detail with items, totals, payment method, and refund processing with manager approval.

Reports and Analytics

MVP reports include daily sales summary, sales by date range, sales by cashier, top-selling products, low-stock products, inventory value estimate, payment method summary, discount summary, and refund summary. Sensitive reports such as profit and cost price are hidden from unauthorized roles.

ShelfPilot POS reports and analytics dashboard showing daily sales summary, top-selling products, payment method breakdown, and discount summary

Reports and Analytics

Daily sales summary, sales by date range, top-selling products, payment method summary, and discount summary.

Security, Staff and Offline

ShelfPilot POS staff and role management screen showing user list with role assignments and permission levels

Staff and Role Management

User management with role assignment for owners, managers, cashiers, inventory staff, and accountants.

ShelfPilot POS offline sync screen showing queued local sales syncing to the backend with sync status indicators

Offline Sync

When internet returns, locally queued sales sync to the backend. Admin can view sync status.

ShelfPilot POS audit logs screen showing a chronological trail of price changes, stock adjustments, refunds, and sensitive actions

Audit Logs

Audit trail for price changes, stock adjustments, voided sales, refunds, and sensitive actions.

Differentiating Features

Paper-Saving Smart Receipt Mode

Admin selects receipt style: full, compact, or ultra-compact. Compact receipts reduce spacing, shorten long product names, and remove unnecessary blank lines.

No Barcode, No Problem

Generate barcodes for any product, print simple labels, use SKU as barcode, or create shelf tags instead of individual product stickers.

Fast Checkout Mode

Always-ready scan input, keyboard shortcuts, quick quantity edit, quick cash amount buttons, and product search by name when barcode fails.

Daily Cashier Closing

At end of shift, cashier closes register with expected cash, actual cash counted, POS/card payments, and variance report with manager approval.

Price Change History

Every price update is logged with old price, new price, user who changed it, date/time, and optional reason — preventing silent price manipulation.

Offline Sales Queue

Cashier continues selling offline. Sales are saved locally and sync automatically when internet returns. Product catalog and key settings are cached.

Mistake Prevention Warnings

System warns when product price is zero, stock is insufficient, discount is unusually high, duplicate item is scanned rapidly, or payment is below total.

Architecture

Web Dashboard

Next.jsTypeScriptTailwind CSSRole-Based UI

Cashier / POS

Web-based POSPWA InstallableOffline Local CacheKeyboard Shortcuts

Backend API

NestJSREST APIJWT AuthenticationRBAC

Database

PostgreSQLPrisma ORMSoft DeletesImmutable Sales

Receipts

Compact Receipt ModeBrowser PrintREPRINT Detection

Offline

Local Sales QueueAuto-Sync on ReconnectCached Product Catalog

System Diagram

  Web Dashboard (Next.js) ──▶ NestJS REST API ──▶ PostgreSQL (Prisma ORM)
      │                              │
      │                              ├──▶ Audit Log
      │                              └──▶ Receipt Generation
      │
  Cashier / POS (PWA) ──▶ NestJS REST API
      │
      ├──▶ Offline: Local sales queue → sync when online
      │
  Auth: JWT access/refresh tokens, RBAC
  Data: business_id multi-tenant isolation, soft deletes, immutable sales
  Hardware: USB/Bluetooth scanner (keyboard input), browser print, camera scanning

Security and Audit

JWT authentication with access and refresh tokens
Role-based access control enforced on both frontend and backend
Cashier cannot view cost price or profit reports
Cashier cannot edit product prices unless explicitly permitted
Manager PIN required for large discounts, refunds, price overrides, and manual stock reductions
Completed sales are immutable — refunds create separate records
Stock deduction happens in a database transaction
Payment confirmation and sale completion are atomic
Duplicate receipt numbers are prevented
Reprinted receipts display REPRINT
Receipt hash stored to detect tampering
Audit log for all sensitive actions: price changes, stock adjustments, voided sales, refunds

Offline Sales Continuity

For poor internet environments, the cashier can continue selling offline. Sales are saved locally in the browser and sync to the backend when connectivity returns. The product catalog and key settings are cached locally. Admin can view sync status to confirm all offline sales have been uploaded.

Implemented MVP Features

Business registration and login
User roles and permissions (Owner, Manager, Cashier, Inventory, Accountant)
Product creation and editing with SKU and barcode
Category management
Barcode generation
Product search by name, SKU, barcode, or category
POS checkout screen with cart calculation
VAT/tax settings with inclusive or exclusive mode
Basic discount handling with role-based limits
Manual payment confirmation
Compact receipt generation and print view
Sales history with date range filters
Stock deduction after sale
Stock receiving and adjustment
Low-stock report
Daily sales report
Audit logs for sensitive actions
Offline sales draft and queue for POS

Future Roadmap

The following features are described in the product requirements document as post-MVP or future features. They are not yet implemented.

  • Digital receipts via link or QR code
  • WhatsApp and email receipt sharing
  • Supplier management improvements
  • Purchase order management
  • Customer profiles
  • Multi-branch support
  • Manager shift closing
  • Advanced refund flow
  • Product import and export by CSV or Excel
  • Payment gateway integration
  • Receipt printer direct ESC/POS support
  • Mobile app for owners
  • Expiry tracking for pharmacies
  • Restaurant table and order mode
  • Loyalty points
  • Basic profit and margin reports

Let's Build Together

Interested in retail platforms like ShelfPilot POS?

I'm open to full-time roles, contract work, and founder collaborations in full-stack product engineering and retail technology.