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.
This document provides a detailed overview of each feature within the Proof POS system.
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.
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.
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
lowStockThresholdare 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.
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.
- Framework: Next.js (with App Router)
- UI Library: React
- Styling: Tailwind CSS
- Components: ShadCN UI
- AI/Generative: Firebase Genkit
- Forms: React Hook Form & Zod
- Charts: Recharts
This application is designed to run within Firebase Studio. The development environment is pre-configured.
-
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
-
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
- Username:
- Cashier:
- Username:
cashier1 - Password:
password
- Username:
- Admin:
-
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.