A desktop point-of-sale and inventory management system built for Toko Rajawali, a multi-category retail store in Tondano, North Sulawesi, selling computers & electronics, stationery (ATK), cakes & pastries, snacks, beverages, and packaging supplies.
Packaged as a native Windows desktop application using NativePHP + Electron.
Rajawali Stok is a point-of-sale (POS) and inventory management system built for Toko Rajawali, a retail store in Tondano, North Sulawesi that sells a wide mix of products β from computer accessories and electronics to stationery, cakes & pastries, snacks, drinks, and packaging materials.
The system was built to replace manual, paper-based stock tracking and cash-register sales with a single, streamlined application that keeps stock counts, sales, and reporting all in one place. It runs as a native desktop app (via NativePHP + Electron) so it can be installed and used directly on the store's computer without needing a separate server, PHP, or browser setup.
The system supports three distinct roles:
- Admin β full access to POS, inventory, and reporting.
- Owner β access to dashboards, reports, and business oversight.
- Dapur (Kitchen) β scoped access limited to bakery-related categories (finished cakes/pastries and raw baking ingredients).
- Fast, click-to-add product grid organized by category tabs (ATK, Electronics, Cake & Pastry, Snacks, Beverages, Packaging)
- Live product search
- Real-time cart with quantity controls and running total
- Multiple payment methods: Cash (with change calculation), QRIS, and Bank Transfer
- Stock-aware checkout β prevents overselling and flags low/out-of-stock items
- Thermal-style (80mm) receipt printing, rendered as a print-ready HTML document for full compatibility with the desktop app's print preview
- Stock-in (barang masuk) and stock-out (barang keluar) tracking
- Product catalog management across multiple categories
- Low-stock warnings directly in the POS and catalog views
- Role-scoped category access (e.g. kitchen staff only see bakery-related stock)
- Real-time dashboard defaulting to today's activity, with historical filters
- Excel export with multiple color-coded sheets (via PhpSpreadsheet)
- PDF report generation (via DomPDF)
- Role-based access control with Laravel Gates
- CSRF protection, mass-assignment protection, and hardened middleware
- Eager-loaded queries to avoid N+1 performance issues
- Foreign-key indexed migrations for data integrity
| Layer | Technology |
|---|---|
| Backend Framework | Laravel (PHP) |
| Frontend | Blade Templating, Alpine.js, Tailwind CSS |
| UI Feedback | SweetAlert2, Chart.js |
| Desktop Runtime | NativePHP + Electron |
| Local Database (Desktop) | SQLite |
| Reporting | PhpSpreadsheet (Excel), DomPDF (PDF) |
- PHP >= 8.3
- Composer
- Node.js & NPM
- (For desktop builds) Windows with Developer Mode enabled
-
Clone the repository
git clone https://github.com/mystrygrdn/tokorajawali-pos-inventory.git cd tokorajawali-pos-inventory -
Install dependencies
composer install npm install
-
Configure environment
cp .env.example .env php artisan key:generate
-
Set up the database
php artisan migrate --seed
-
Run in the browser (recommended for development)
npm run dev php artisan serve
-
Run as a native desktop app
php artisan native:install php artisan native:serve
-
Build a distributable Windows installer
php artisan native:build win
The finished installer will be generated inside
nativephp/electron/dist/.
This project is built for internal use by Toko Rajawali. Please contact the repository owner before reusing or redistributing.