A modern, feature-rich Point of Sale (POS) system built with Laravel 12, Filament 4, and Livewire 3.
- π Product Management - Complete CRUD with categories
- ποΈ Shopping Cart - Real-time calculations and updates
- π³ Multiple Payment Methods - Cash, Card, Bank Transfer
- π° Discount System - Percentage & fixed amount discounts
- π€ Customer Management - Track customer purchases
- π Stock Tracking - Real-time inventory validation
- π Advanced Search - Quick product search with filters
- π Sales Statistics - Comprehensive sales analytics
- π΅ Revenue Tracking - Daily, weekly, monthly reports
- π¦ Inventory Overview - Stock levels at a glance
- π Low Stock Alerts - Automated notifications
- π¨ Modern Design - Clean and professional UI
- β‘ Fast & Intuitive - Optimized for speed
- π± Mobile Responsive - Works on all devices
- π Filament Admin - Powerful admin panel
Live Demo: https://pos-app-yi7setba.on-forge.com
Demo Credentials:
- Email: admin@example.com
- Password: 123
Before you begin, ensure your system meets the following requirements:
- PHP >= 8.3
- Composer >= 2.0
- MySQL >= 8.0 (or MariaDB >= 10.3)
- Node.js >= 20.0 & npm >= 10.0
- Git
php-mbstring
php-xml
php-bcmath
php-curl
php-gd
php-mysql
php-zip
php-intl
git clone https://github.com/fabyo0/pos-app.git
cd pos-app# Install PHP dependencies
composer install
# Install Node.js dependencies
npm install# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generateUpdate your .env file with database credentials:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=pos_system
DB_USERNAME=your_username
DB_PASSWORD=your_passwordCreate the database:
mysql -u root -p
CREATE DATABASE pos_system;
exit;# Run migrations
php artisan migrate
# Seed database with sample data
php artisan db:seedphp artisan storage:link# Development
npm run dev
# Production
npm run buildphp artisan serveVisit: http://localhost:8000
After seeding, you can log in with:
- Email: admin@admin.com
- Password: password
This project uses PestPHP for testing.
php artisan testOr using Pest directly:
./vendor/bin/pest# Feature tests only
php artisan test --testsuite=Feature
# Unit tests only
php artisan test --testsuite=Unitphp artisan test --coverageConfigure a separate testing database in .env.testing:
DB_CONNECTION=mysql
DB_DATABASE=pos_system_testing| Technology | Version | Purpose |
|---|---|---|
| Laravel | 12.x | Backend Framework |
| Filament | 4.x | Admin Panel |
| Livewire | 3.x | Frontend Reactivity |
| MySQL | 8.x | Database |
| Tailwind CSS | 3.x | Styling |
| Alpine.js | 3.x | JavaScript Framework |
| Vite | 5.x | Asset Bundling |
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Found a bug or have a feature request? Please open an issue.
This project is open-sourced software licensed under the MIT license.
- Laravel - The PHP Framework
- Filament - Admin Panel
- Livewire - Reactive Components
- Tailwind CSS - Utility-first CSS
If you find this project helpful, please give it a βοΈ!
Built with β€οΈ by Fabyo