Skip to content

mottale11/Proof-POS-System

Repository files navigation

Proof POS - Intelligent Point-of-Sale System Documentation

Proof POS is a modern, feature-rich Point-of-Sale (POS) application designed specifically for liquor stores. Built with a powerful and scalable tech stack, it provides role-based access for Admins and Cashiers, streamlined checkout processes, robust inventory management, and AI-powered business insights.

✨ System Features & Functionality

This document provides a detailed overview of each feature within the Proof POS system.


1. Role-Based Access Control (RBAC)

The system is built around two primary user roles to ensure security and proper access control. Users log in with a username, password, and their assigned role.

  • Admin Role: Has unrestricted access to all system features.

    • Permissions: Can manage users, view and manage inventory, access and filter detailed sales reports, and use all AI-powered tools.
    • Dashboard: After logging in, an Admin is directed to a tabbed dashboard for User Management, Inventory, and Reports.
  • Cashier Role: Has a focused set of permissions centered on processing sales.

    • Permissions: Can access the sales/checkout interface, process transactions, and verify customer age.
    • Dashboard: After logging in, a Cashier is taken directly to the sales interface to begin processing customer orders.

2. Cashier Interface & Checkout Process

The cashier interface is optimized for speed and efficiency, supporting both barcode scanning and manual product lookup.

  • Barcode-Driven Checkout:

    • How it works: The primary input on the cashier screen is a barcode scanner field. When a product's barcode is scanned, the system automatically finds the item and adds it to the current sale cart.
    • Feedback: A success notification (toast) appears when an item is added. If the barcode is not found, an error message is displayed.
  • Manual Product Search:

    • How it works: If a barcode is unreadable or unavailable, the cashier can toggle "Manual Search." This reveals a search bar and displays the entire product catalog as interactive cards. The cashier can visually find and click on an item to add it to the cart.
  • Age Verification:

    • How it works: If an item from a restricted category (e.g., Beer, Wine, Spirits) is added to the cart, an "Verify Age" button appears. The sale cannot be completed until the cashier clicks this button, which opens a confirmation dialog.
    • Confirmation: By confirming, the cashier attests that they have verified the customer's legal age. A "Verified" badge then appears.
  • Cart Management:

    • Cashiers can easily increase or decrease the quantity of items in the cart or remove an item completely using dedicated buttons next to each cart entry.
  • Flexible Payments:

    • How it works: After adding items, the cashier proceeds to a payment dialog. They can select from three payment methods: Card, Cash, or Mpesa.
    • Cash Payments: For cash transactions, the cashier enters the amount received from the customer. The system automatically calculates and displays the change due.
  • Receipt Generation & Printing:

    • How it works: Upon completing a sale, a detailed receipt is automatically generated. The receipt includes the store name, date, a unique Receipt No. (Sale ID), the cashier's name, an itemized list of products, subtotal, discount, tax, and the final total.
    • Printing: A dialog displays the receipt and provides a "Print Receipt" button. Clicking this opens the browser's native print dialog, allowing the user to print to a connected receipt printer or save the receipt as a PDF.

3. Inventory Management (Admin)

The inventory section provides Admins with full control over the product catalog.

  • Centralized Product Catalog:

    • View: Admins can view all products in a comprehensive table that shows the product image, name, barcode, status (In Stock vs. Low Stock), batch number, expiry date, price, and quantity.
    • Status Indicators: Products with quantities at or below their lowStockThreshold are automatically flagged with a "Low Stock" badge for easy identification.
  • Add & Edit Products:

    • Barcode-Driven Workflow: Similar to the cashier view, the primary interaction is via a barcode scanner. Scanning an existing barcode highlights the product in the table. Scanning a new, unrecognized barcode opens a dialog to add a new product, with the barcode field pre-filled.
    • Manual Operations: Admins can also manually add a new product or edit an existing one by clicking the appropriate buttons. A form allows them to update all product details.
  • AI-Powered Inventory Assistance:

    • Intelligent Variance Check: Admins can use this AI tool to investigate stock discrepancies. They input a product name, the expected (system) quantity, and the actual (physically counted) quantity. The AI analyzes the variance and, if significant, provides a detailed alert message recommending an investigation.
    • Reorder Suggestions: This tool helps Admins decide what to restock. It analyzes current inventory levels against low stock thresholds and provides a simple list of products that need to be reordered.

4. Admin Reporting & Analytics

The reports dashboard gives Admins a powerful set of tools to analyze sales data and business performance.

  • Sales Dashboard:

    • Key Metrics: At-a-glance cards display core metrics for the selected period: Total Sales, Total Transactions, Total Tax Collected, and Total Discounts.
    • Currency: All financial data is displayed in Kenyan Shillings (Ksh).
  • Customizable Date Ranges:

    • How it works: A sophisticated date range picker allows Admins to filter all report data. They can select from presets like "Today," "Last 7 days," "This Month," or choose a custom date range from a calendar.
  • Data Visualization & Charts:

    • Low Stock Products: An interactive bar chart displays all products that are currently low on stock, providing a quick visual reference for inventory management.
    • Top Selling Items: A bar chart shows the top 5 selling items by revenue for the selected period.
  • Transaction Search & Tracking:

    • How it works: A powerful search bar is available above the "All Transactions" table. Admins can instantly filter sales records by Sale ID (Receipt No.), cashier name, or product name.
    • Sales Attribution: The table clearly shows the Sale ID, date, and the name of the cashier who conducted the sale, allowing for complete traceability.
  • Printable Daily Summary:

    • How it works: Admins can click the "Print Daily Summary" button to generate a clean, printable end-of-day report. This report summarizes all financial activity for the selected period (typically a single day) and is formatted for printing or saving as a PDF.

🚀 Technology Stack

🏁 Getting Started

This application is designed to run within Firebase Studio. The development environment is pre-configured.

  1. Start the development server: The application will automatically start when you launch this project in Firebase Studio. The primary script used is:

    npm run dev
  2. Login to the Application:

    • Navigate to the running application's URL. You will be directed to the login page.
    • Use one of the pre-configured mock users to sign in:
      • Admin:
        • Username: admin
        • Password: password
      • Cashier:
        • Username: cashier1
        • Password: password
  3. Explore the Features:

    • As an Admin, you can navigate between the User Management, Inventory, and Reports tabs.
    • As a Cashier, you will be taken directly to the sales interface.

About

Point of Sale System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages