Aplikasi web Point-of-Sale (POS) dan manajemen kafe yang dirancang untuk menangani alur pemesanan multi-role secara lengkap. Dibangun sebagai proyek untuk sertifikasi BNSP, aplikasi ini mengelola alur kerja dari pemesanan mandiri oleh pelanggan, konfirmasi kasir, Kitchen Display System (KDS), hingga pelaporan omset di panel admin.
Aplikasi ini memiliki 4 peran utama dengan alur kerja yang saling terhubung:
- Pemesanan Mandiri: Pelanggan dapat memindai QR di meja, memilih meja, dan melihat menu yang dikelompokkan berdasarkan kategori.
- Melihat Rating: Setiap item menu menampilkan rata-rata rating dan jumlah ulasan dari pelanggan lain.
- Checkout: Setelah selesai memilih, pelanggan melakukan checkout. Pesanan dibuat dengan nomor order unik (misal:
ORD-251026-ABCD) dan statusmenunggu_pembayaran. - Riwayat & Ulasan: Setelah pesanan diselesaikan oleh kasir, pesanan akan muncul di halaman riwayat. Pelanggan dapat memberikan rating (1-5 bintang) dan komentar untuk setiap item menu yang telah mereka pesan.
Dasbor kasir adalah pusat kendali yang memiliki dua tanggung jawab utama:
- 1. Konfirmasi Pembayaran:
- Melihat antrian pesanan yang berstatus
menunggu_pembayaran. - Setelah pelanggan membayar, kasir menekan "Konfirmasi".
- Status pesanan berubah menjadi
diprosesdan secara otomatis dikirim ke antrian Dapur (KDS).
- Melihat antrian pesanan yang berstatus
- 2. Menyelesaikan Pesanan:
- Melihat antrian pesanan yang berstatus
siap_disajikan(pesanan yang telah selesai disiapkan oleh dapur). - Kasir mengantarkan pesanan ke meja pelanggan, lalu menekan "Selesai".
- Status pesanan berubah menjadi
selesai, dan pesanan kini muncul di riwayat pelanggan.
- Melihat antrian pesanan yang berstatus
- Antrian Pesanan: Layar KDS hanya menampilkan pesanan yang relevan (status
diproses). - Manajemen Stok Otomatis: Saat koki selesai menyiapkan pesanan dan menekan "Siap Disajikan":
- Logika ini dibungkus dalam
DB::transactionuntuk memastikan keamanan data. - Stok setiap item menu di dalam pesanan akan dikurangi secara otomatis dari database (
stock_quantity). - Status pesanan berubah menjadi
siap_disajikandan hilang dari layar KDS.
- Logika ini dibungkus dalam
Admin memiliki kontrol penuh atas seluruh ekosistem kafe melalui Panel Admin Filament:
- Laporan Penjualan: Melihat seluruh riwayat pesanan dengan filter canggih berdasarkan rentang tanggal dan status.
- Kalkulasi Omset: Halaman laporan secara otomatis menjumlahkan total omset dari semua pesanan yang ditampilkan (
summarize(Sum::make())). - Manajemen Menu & Stok: Menambah, mengedit, dan menghapus menu, serta mengatur
stock_quantity(stok awal). - Manajemen Pengguna & Role: Membuat akun untuk staf dan menetapkan role mereka (
admin,kasir,kitchen). - Manajemen Ulasan: Melihat semua ulasan yang masuk dari pelanggan dan dapat memfilter ulasan berdasarkan rating (misal: "tampilkan semua ulasan bintang 1").
Harap dicatat bahwa proyek ini dibuat untuk memenuhi skema sertifikasi BNSP. Alur kerja utamanya telah selesai dan berfungsi, namun masih memiliki banyak ruang untuk pengembangan lebih lanjut.
Satu fitur utama yang direncanakan namun belum diimplementasikan adalah pembayaran via QRIS. Saat ini, alur pembayaran pelanggan masih menggunakan mekanisme manual (bayar di kasir), di mana kasir memvalidasi pembayaran secara manual.
Fitur potensial untuk pengembangan di masa depan meliputi:
- Integrasi Payment Gateway (QRIS): Mengganti alur bayar di kasir dengan sistem payment gateway (seperti Midtrans/Xendit) agar pelanggan bisa bayar langsung setelah checkout.
- Real-time Notifications: Menggunakan WebSockets (Laravel Echo) untuk notifikasi real-time (misalnya, notifikasi ke pelanggan saat pesanan "Siap Disajikan").
- Manajemen Inventaris: Sistem manajemen stok bahan baku yang lebih detail, yang akan mengurangi stok bahan (bukan stok menu) saat pesanan dibuat.
- Framework Backend: Laravel 11
- Panel Admin: Filament 3
- UI/Interactivity: Livewire 3
- Database: MySQL
- Styling: Tailwind CSS
- JavaScript: Alpine.js
- Autentikasi: Laravel Breeze
- Build Tool: Vite
-
Clone repository:
git clone https://github.com/dimasrizkyfebrian/orderbyte.git cd orderbyte -
Install dependensi Backend (PHP):
composer install
-
Install dependensi Frontend (Node.js):
npm install
-
Setup
.env: Salin file.env.examplemenjadi.env.cp .env.example .env
-
Generate Key:
php artisan key:generate
-
Konfigurasi Database: Buka file
.envdan sesuaikan pengaturan database MySQL kamu (buat database baru bernamaorderbyte).DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=orderbyte DB_USERNAME=root DB_PASSWORD=
-
Konfigurasi Driver (
.env): Untuk fungsionalitas optimal (sesuai.env.example), atur driver berikut kedatabase:SESSION_DRIVER=database QUEUE_CONNECTION=database CACHE_STORE=database
-
Jalankan Migrasi & Seeder:
php artisan migrate --seed
-
Link Storage:
php artisan storage:link
-
Jalankan Build Assets (Vite):
# Untuk development (menonton perubahan file) npm run dev # Atau untuk production npm run build
-
Jalankan Server Lokal: Buka terminal baru dan jalankan:
php artisan serve
Aplikasi sekarang berjalan di http://127.0.0.1:8000.
Proyek ini berada di bawah Lisensi MIT.