POS System
A modern, feature-rich Point of Sale (POS) system built with Laravel 12, Filament 4, and Livewire 3.
πΈ Screenshots
Click to view screenshots
Dashboard
POS Interface
Sales Management
Item Management
β¨ Features
Core POS Functionality
- π 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
Dashboard & Reporting
- π Sales Statistics - Comprehensive sales analytics
- π΅ Revenue Tracking - Daily, weekly, monthly reports
- π¦ Inventory Overview - Stock levels at a glance
- π Low Stock Alerts - Automated notifications
User Interface
- π¨ Modern Design - Clean and professional UI
- β‘ Fast & Intuitive - Optimized for speed
- π± Mobile Responsive - Works on all devices
- π Filament Admin - Powerful admin panel
π Demo
Live Demo: https://pos-app-yi7setba.on-forge.com
Demo Credentials:
- Email: [email protected]
- Password: demo
π Requirements
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
Recommended PHP Extensions
php-mbstring
php-xml
php-bcmath
php-curl
php-gd
php-mysql
php-zip
php-intl
βοΈ Installation
1. Clone the Repository
git clone https://github.com/fabyo0/pos-app.git
cd pos-app
2. Install Dependencies
# Install PHP dependencies
composer install
# Install Node.js dependencies
npm install
3. Environment Configuration
# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate
4. Database Setup
Update 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_password
Create the database:
mysql -u root -p
CREATE DATABASE pos_system;
exit;
5. Run Migrations & Seeders
# Run migrations
php artisan migrate
# Seed database with sample data
php artisan db:seed
6. Create Storage Symlink
php artisan storage:link
7. Build Frontend Assets
# Development
npm run dev
# Production
npm run build
8. Start the Application
php artisan serve
Visit: http://localhost:8000
π Default Credentials
After seeding, you can log in with:
- Email: [email protected]
- Password: password
π§ͺ Running Tests
This project uses PestPHP for testing.
Run All Tests
php artisan test
Or using Pest directly:
./vendor/bin/pest
Run Specific Test Suite
# Feature tests only
php artisan test --testsuite=Feature
# Unit tests only
php artisan test --testsuite=Unit
Test with Coverage
php artisan test --coverage
Testing Database
Configure a separate testing database in .env.testing:
DB_CONNECTION=mysql
DB_DATABASE=pos_system_testing
π οΈ Tech Stack
| 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 |
π€ Contributing
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
π Bug Reports & Feature Requests
Found a bug or have a feature request? Please open an issue.
π License
This project is open-sourced software licensed under the MIT license.
π Acknowledgments
- Laravel - The PHP Framework
- Filament - Admin Panel
- Livewire - Reactive Components
- Tailwind CSS - Utility-first CSS
π Support
If you find this project helpful, please give it a βοΈ!
π Project Stats
Built with β€οΈ by Fabyo