A modern, robust Point of Sale (POS) system built with Laravel and Vue.js, designed for high-performance retail management.
- POS Interface: Optimized for both touch and desktop, with barcode scanning and session management.
- Inventory Management: Track stock, handling unit conversions, and low-stock alerts.
- Multi-Buy Pricing: Flexible pricing strategies (Buy X Get Y, Tiered Discounts).
- User Roles: Granular permissions for Admins, Managers, and Cashiers.
- Reporting: Real-time sales analytics and detailed reports.
- Mobile Native Experience: Responsive design with bottom sheets and touch-friendly controls.
- Clone the repository
- Install dependencies:
composer install npm install
- Environment Setup:
cp .env.example .env php artisan key:generate
- Database Migration:
php artisan migrate --seed
- Run Development Server:
php artisan serve npm run dev php artisan queue:work --timeout=60
This project utilizes PHPUnit for automated testing.
To run the full test suite, execute:
php artisan testOr directly via PHPUnit:
./vendor/bin/phpunitCashRegisterServiceTest: Verifies the core logic of the Cashier module.test_open_session_creates_record: Ensures cash register sessions are correctly initialized with opening amounts.test_calculate_expected_cash: Validates the financial calculations, ensuring that opening cash + cash sales match the expected total (ignoring non-cash methods).- Note: These tests use specific database transactions (
DB::beginTransaction()/DB::rollBack()) to ensure no test data persists in your local database.
PricingServiceTest: Verifies the multi-buy pricing logic.test_calculate_total_multiple_tiers_greedy: Ensures complex combinations of pricing tiers are applied correctly (e.g., verifying that the system prioritizes the largest applicable bundle first).
- Includes standard HTTP tests to verify route accessibility and controller responses.
If you discover any security related issues, please email the administrator instead of using the issue tracker.
Private / Proprietary.