
Qasirku Smart POS
Smart POS & FIFO Inventory Management System
1 / 30CafePOS adalah platform manajemen restoran, cafe, cloud kitchen, dan food court modern yang dirancang untuk mengotomasi seluruh rantai operasional F&B—mulai dari pesanan kasir, monitor dapur (KDS), meja pelanggan, program loyalitas membership, hingga kontrol stok bahan baku otomatis berbasis resep (Bill of Materials - BOM).
Aplikasi ini dibangun menggunakan arsitektur modern berbasis Laravel 13, Inertia.js, dan Vue 3 (TypeScript). Desain antarmukanya premium bergaya dashboard minimalis profesional dengan dukungan Dark Mode penuh dan skema warna aksen Cokelat Kopi (Coffee Theme).
CafePOS dirancang untuk mengendalikan biaya makanan (food cost) dan merapikan operasional harian cafe secara terintegrasi:
expires_at, kuota klaim usage_limit, minimal belanja, dll) serta promo otomatis.v-html) untuk kemudahan navigasi bagi staff kasir maupun admin.users: Akun kasir, waiter, kitchen staff, manager, dan owner.outlets: Daftar cabang cafe fisik (Kemang, Senopati, dll).tables: Daftar meja makan fisik di masing-masing outlet.ingredients: Stok bahan mentah (susu, biji kopi, gula pasir, dll).products: Menu makanan/minuman yang dijual ke pelanggan.recipes: Jembatan resep (BOM) yang menentukan jumlah bahan baku per produk.transactions: Nota transaksi penjualan kasir (dine in/take away/delivery).transaction_items: Rincian item menu yang dibeli di setiap transaksi.wastes: Log pencatatan bahan baku yang terbuang/rusak.opnames: Dokumen opname berkala audit stok bahan baku fisik.settings: Pengaturan global (site name, logo, favicon, tax, service percentage).licenses: Penyimpan kunci verifikasi lisensi lokal terenkripsi.cafepos/
├── app/ # 🧠 LOGIKA BACKEND UTAMA (PHP)
│ ├── Http/
│ │ ├── Controllers/ # Controller logika data & render Inertia
│ │ │ ├── PosController.php # POS Checkout & Auto-Deduction BOM
│ │ │ ├── KdsController.php # Monitor KDS dapur & update status
│ │ │ ├── IngredientController.php # Inventory & resep produk
│ │ │ └── ...
│ │ └── Middleware/ # Filter Keamanan (CheckLicense, DemoModeMiddleware)
│ ├── Models/ # Model Eloquent Database (Relationship)
│ │ ├── License.php
│ │ ├── Product.php
│ │ ├── Recipe.php
│ │ ├── Ingredient.php
│ │ └── ...
├── database/ # 🗄️ SKEMA & SEEDER
│ ├── migrations/ # Berkas migrasi pembuatan tabel database
│ └── seeders/ # Seeder master & dummy data pengujian lengkap
├── resources/ # 🎨 FRONTEND VUE 3 & TYPESCRIPT
│ ├── css/ # CSS & custom styling
│ └── js/ # Kode Vue 3
│ ├── Components/ # Komponen UI (DemoModeBanner, Modal, dll)
│ ├── Layouts/ # Layout Dashboard (AdminLayout)
│ └── Pages/ # Halaman UI (POS, Kds, Products, Tables, Opnames)
Clone / Download Source Code:
git clone <repository-url> cafepos
cd cafepos
Salin Konfigurasi Environment:
cp .env.example .env
Setup Database di File .env:
Buat database MySQL baru bernama cafepos, lalu sesuaikan parameter koneksi di file .env:
DB_C
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cafepos
DB_USERNAME=root
DB_PASSWORD=password_mysql_anda
Instal Dependensi & Generate Key:
composer install
npm install
php artisan key:generate
Migrasi Tabel & Seeder:
CafePOS menyediakan pemisah seeder yang jelas untuk kebutuhan rilis produksi (bersih tanpa data dummy) maupun demo (lengkap dengan data penjualan). Jalankan perintah berikut:
A. Untuk Lingkungan Demo / Development (Dengan Data Simulasi Lengkap):
# Migrasi database dan isi konfigurasi dasar + data demo lengkap
php artisan migrate:fresh --seed
# Isi database dengan Dummy Data Cafe & Logistik lengkap
php artisan db:seed --class=CafePOSDummySeeder
php artisan db:seed --class=CompletePhasesSeeder
B. Untuk Lingkungan Production (Sistem Bersih Siap Pakai):
# Migrasi database kosong
php artisan migrate:fresh
# Isi konfigurasi dasar aplikasi, peran/hak akses, dan menu sidebar
php artisan db:seed --class=ProductionSeeder
Jalankan Server Lokal:
Jalankan server Laravel backend dan Vite compiler frontend secara bersamaan:
php artisan servenpm run devhttp://127.0.0.1:8000Sistem orkestrasi Docker Compose CafePOS telah dikonfigurasi lengkap untuk siap di-deploy pada server Linux VPS Ubuntu produksi menggunakan container Nginx + PHP-FPM + MySQL + Redis.
git clone <repository-url> /var/www/cafepos
cd /var/www/cafepos
cp .env.example .env
nano .env
Atur APP_ENV=production, APP_DEBUG=false, DB_C DB_HOST=mysql`, dan atur password database MySQL yang aman.docker compose -f docker-compose.prod.yml up -d --build
docker compose -f docker-compose.prod.yml exec app php artisan key:generate
docker compose -f docker-compose.prod.yml exec app php artisan migrate --force
docker compose -f docker-compose.prod.yml exec app php artisan db:seed --force
docker compose -f docker-compose.prod.yml exec app php artisan storage:link
# Caching optimasi rute & config
docker compose -f docker-compose.prod.yml exec app php artisan config:cache
docker compose -f docker-compose.prod.yml exec app php artisan route:cache
docker compose -f docker-compose.prod.yml exec app php artisan view:cache
.env diatur APP_ENV=local or APP_ENV=testing.localhost, 127.0.0.1, IP private LAN (192.168.*, 10.*), domain .test atau .local.license.verify akan mengunci sistem dan memaksa redirect ke /admin/license/activate sampai dimasukkan lisensi valid. Lisensi terikat pada APP_KEY. Jangan men-generate ulang APP_KEY setelah melakukan aktivasi lisensi.Gunakan akun di bawah ini untuk menguji hak akses RBAC CafePOS di localhost atau server demo (berlaku bila menjalankan seeder demo):
| Role Peran | Email Login | Password | Penugasan Cabang |
|---|---|---|---|
| Super Admin | superadmin@example.com | password | Semua Outlet Cabang |
| Admin User | admin@example.com | password | Semua Outlet Cabang |
| Owner User | owner@example.com | password | Semua Outlet Cabang |
| Kasir Kemang | cashier@example.com | password | Dibatasi ke Outlet Kemang |
| Kasir Senopati | cashier2@example.com | password | Dibatasi ke Outlet Senopati |
| Kitchen Staff Kemang | kitchen@example.com | password | Dibatasi ke Dapur Kemang |
Developed with ❤️ for Cafe & Restaurant Owners. Copyright © 2026. All rights reserved.

