Skip to main content

Overview

This quickstart guide walks you through logging into the BMS POS system and completing your first sale transaction. By the end of this guide, you’ll understand the basic workflow of the POS interface.
Prerequisites: Ensure you have completed the installation steps and the system is running on http://localhost:5002

Login to the system

1

Navigate to the login screen

When you launch the BMS POS application, you’ll be presented with the login screen showing three role options:
  • Cashier - Access to POS and basic functions
  • Inventory - Access to inventory management
  • Manager - Full system access including reports and settings
For this quickstart, select Manager to access all features.
2

Enter your credentials

Use the default credentials to log in:
Employee ID: 0001
PIN: 1234
Role: Manager
  1. Click on the Employee ID field (or it will be selected by default)
  2. Use the on-screen keypad to enter 0001
  3. Click on the PIN field
  4. Use the on-screen keypad to enter 1234
  5. Click the blue Sign In button
Change the default PIN after your first login for security purposes. Navigate to Manager Dashboard → Employees to update your PIN.
3

Access the Manager Dashboard

Upon successful login, you’ll be redirected to the Manager Dashboard. This is your central hub with quick access to:
  • Point of Sale - Process sales transactions
  • Sales History - View past transactions
  • Inventory - Manage products and stock
  • Reports - View business analytics
  • Settings - Configure system options

Make your first sale

1

Open the POS interface

From the Manager Dashboard, click the Point of Sale button to open the POS interface.The POS screen has two main sections:
  • Left side: Product catalog with search functionality
  • Right side: Shopping cart and payment controls
2

Add products to the cart

You can add products to the cart in three ways:Method 1: Click product cards
  • Browse the product grid on the left
  • Click any product card to add it to the cart
  • Click again to increase quantity
Method 2: Search for products
  • Click the search bar at the top
  • Type a product name, barcode, brand, or category
  • Click the matching product to add it
Method 3: Scan barcodes
  • Connect a USB barcode scanner (optional)
  • Scan product barcodes to instantly add them to the cart
Products display stock levels. Items marked OUT OF STOCK cannot be added, and LOW STOCK items show a warning.
3

Review the cart

On the right side, review your cart:
  • Each line shows: Product name, price per unit, quantity, and line total
  • Click the quantity to edit it manually
  • Click the × button to remove an item
  • The bottom shows:
    • Subtotal: Total before tax
    • Sales Tax: Automatically calculated (default 10%)
    • Total: Final amount due
The tax rate can be configured in Settings → Tax Settings. You can also enable secondary taxes or tax exemptions.
4

Process payment

  1. Click the green Pay button at the bottom right
  2. A payment modal appears showing the order summary
  3. Select a payment method from the dropdown:
    • Cash
    • Card
    • ETF/Digital
  4. Enter the amount paid (use the on-screen keyboard for touch displays)
  5. The system automatically calculates change
  6. Click Complete Payment when ready
Manager Discounts: Managers can apply discounts (10%, 20%, 30%, 40%, 50%) before payment. If system settings require manager approval, cashiers must enter a manager PIN.
5

View the receipt

After completing payment:
  • A receipt preview appears (if enabled in system settings)
  • Review the transaction details
  • Choose to:
    • Print Receipt - Send to connected thermal printer
    • Skip Print - Complete without printing
    • Back - Return to payment screen
The transaction is saved with a unique ID format: TXN-YYYYMMDD-XXXXXXXX

Post-sale actions

View sales history

Navigate to Sales History from the dashboard to:
  • View all completed transactions
  • Filter by date range
  • Search by transaction ID
  • View detailed receipts for past sales
  • Process returns/refunds
API Endpoint: GET /api/sales (src: BMS_POS_API/Controllers/SalesController.cs:22)

Check inventory updates

After each sale, product stock is automatically decremented:
// Automatic inventory update on sale
product.StockQuantity -= item.Quantity;
product.LastUpdated = currentTime;
(src: BMS_POS_API/Controllers/SalesController.cs:133-134)

Review reports

Access the Reports section to view:
  • Daily sales summary
  • Top-selling products
  • Employee performance
  • Payment method breakdown
  • Tax collection summary

Common workflows

Process a return

Navigate to Returns → Enter transaction ID → Select items to return → Process refund

Restock inventory

Go to Inventory → Select product → Click Adjust Stock → Enter new quantity → Save

Add new products

Open Inventory → Click Add Product → Fill in details (name, barcode, price, stock) → Save

Manage employees

Navigate to Employees → Add/edit employee records → Assign roles → Set PINs

Keyboard shortcuts

The POS interface supports barcode scanners and keyboard input:
  • Barcode scanner: Automatically detected and adds products instantly
  • Enter key: Completes payment when amount is sufficient
  • Escape key: Closes modals and keyboards

Troubleshooting

  • Verify you entered 0001 (four digits with leading zeros)
  • Check that the API is running on http://localhost:5002
  • Test API health: curl http://localhost:5002/health
  • Review API logs in the terminal
  • Ensure products exist in the database (check Inventory section)
  • Verify products are marked as Active (inactive products are hidden)
  • Check the browser console for API errors (F12)
  • Cart must contain at least one item
  • Amount paid must be greater than or equal to the total
  • Check for insufficient stock errors
  • Ensure scanner is in USB HID keyboard mode
  • Test scanner in a text editor (should type characters)
  • Check Electron keyboard event listeners in src/frontend/components/POS.tsx:182-218

Session management

The BMS POS includes automatic session management:
  • Auto-logout: Sessions expire after inactivity (configurable)
  • Session extension: Activity extends the session automatically
  • Secure PINs: All PINs are hashed using BCrypt for security
  • Activity logging: All actions are logged with user, timestamp, and IP
(src: src/frontend/utils/SessionManager.ts)

Next steps

Architecture

Learn about the system architecture and how components work together

API reference

Explore all available API endpoints and data models

Configuration

Configure system settings, taxes, payment methods, and more

Employee management

Set up employees, roles, and permissions

Build docs developers (and LLMs) love