6.0 KiB
💎 Aplikasi Kasir Toko Perhiasan
Aplikasi kasir modern berbasis web untuk toko perhiasan dengan sistem manajemen yang lengkap dan antarmuka yang user-friendly.
👥 Tim Development
PT Teknologi Mulia Sejahtera Cemerlang (Abbauf Tech) - Internship Program
- Baghaztra Van Ril - Backend Developer
- Aditya Ahmad Afarison - Frontend Developer
- Timotius Julius Iwan - Backend Developer
- Dhilan Radya Irawan - Frontend Developer
🚀 Tentang Aplikasi
Aplikasi Kasir Toko Perhiasan adalah sistem Point of Sale (POS) yang dirancang khusus untuk kebutuhan toko perhiasan dengan fitur manajemen yang komprehensif dan sistem role-based access control.
✨ Fitur Utama
👑 Role Owner
- Manajemen Produk - CRUD produk perhiasan lengkap dengan detail
- Manajemen Nampan - Organisasi produk berdasarkan nampan display
- Manajemen Brankas - Sistem penyimpanan produk berharga
- Manajemen Sales - Kelola data karyawan dan sales performance
- Kasir - Akses penuh ke sistem transaksi
- Laporan - Dashboard analytics dan laporan keuangan
- Manajemen Akun - User management dan pengaturan sistem
💼 Role Kasir
- Lihat Produk - View-only access ke database produk
- Kasir - Interface transaksi untuk penjualan
🛠️ Tech Stack
- Backend: Laravel 11.x
- Frontend: Vue.js 3 + Vue Router
- Database: MySQL/PostgreSQL
- Styling: Tailwind CSS
- Build Tool: Vite
- Authentication: Laravel Sanctum
- HTTP Client: Axios
📋 Prerequisites
Pastikan sistem Anda sudah memiliki:
- PHP >= 8.1
- Composer >= 2.0
- Node.js >= 16.x
- NPM atau Yarn
- MySQL >= 8.0 atau PostgreSQL >= 13
- Git
🔧 Instalasi
1. Clone Repository
git clone https://git.abbauf.com/Magang-2025/Kasir.git
cd Kasir
2. Install Dependencies Backend
# Install PHP dependencies
composer install
# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate
3. Install Dependencies Frontend
# Install Node.js dependencies
npm install
4. Konfigurasi Database
Edit file .env sesuai dengan konfigurasi database Anda:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=kasir_perhiasan
DB_USERNAME=your_username
DB_PASSWORD=your_password
5. Setup Database
# Jalankan migrasi
php artisan migrate
# Jalankan seeder (data dummy)
php artisan db:seed
6. Storage Link
# Buat symbolic link untuk storage
php artisan storage:link
7. Jalankan Aplikasi
Development Mode
# Terminal 1 - Laravel Server
php artisan serve
# Terminal 2 - Vite Dev Server
npm run dev
Production Mode
# Build untuk production
npm run build
# Jalankan dengan web server (Apache/Nginx)
# atau gunakan PHP built-in server
php artisan serve --host=0.0.0.0 --port=8000
8. Print Label
- Install driver, ada pada folder
./driver/untuk windows 64bit.- Pilih
NIIMBOT B3S_Ppada saat install driver. - Sambungkan printer ke komputer via USB.
- Nyalakan printer.
- Pilih
- Temukan kode qr yang akan diprint (misalnya pada halaman brankas)
- Klik tombol print pada halaman tersebut
- Pilih printer
NIIMBOT B3S_Pdan atur kertas ke ukuran kertas40mm x 30mm, marginDefault, scaleDefault - Klik print
- Pilih printer
🌐 Akses Aplikasi
Setelah instalasi berhasil, akses aplikasi melalui:
- URL: http://localhost:8000
- Admin Panel: http://localhost:8000/admin (jika tersedia)
👤 Default Login
Owner Account:
- Email:
owner@tokoperhiasan.com - Password:
password123
Kasir Account:
- Email:
kasir@tokoperhiasan.com - Password:
password123
📁 Struktur Folder
kasir-toko-perhiasan/
├── app/
│ ├── Http/Controllers/ # API Controllers
│ └── Models/ # Database Models
├── database/
│ ├── migrations/ # Database Migrations
│ ├── seeders/ # Data Seeders
│ └── factories/ # Model Factories
├── public/ # Public Files
├── resources/
│ ├── css/
│ │ └── app.css # Main CSS File
│ ├── js/
│ │ ├── components/ # Reusable Vue Components
│ │ ├── pages/ # Vue Pages
│ │ ├── router/ # Vue Routes
│ │ ├── services/ # API Services
│ │ └── App.vue
│ └── views/
│ └── app.blade.php # Main SPA Template
└── routes/
└── web.php # Laravel Routes
📊 Fitur Database (Revisi)
Tabel Utama
- akun → Data pengguna (owner, kasir)
- produk → Master data produk perhiasan
- foto → Kumpulan foto untuk tiap produk
- nampan → Organisasi tempat penyimpanan produk (display)
- item → Stok unit fisik dari produk (bisa ada banyak untuk 1 produk)
- transaksi → Data transaksi penjualan
- item_transaksi → Detail item yang dijual per transaksi
- sales → Data marketing/sales yang membawa pelanggan
(catatan: “brankas” nggak perlu tabel khusus, karena sudah diwakili item.id_nampan = null)
Relationships
// Produk bisa punya banyak foto
Produk -> hasMany -> Foto
// Produk bisa punya banyak item fisik
Produk -> hasMany -> Item
// Item bisa ada di satu nampan, atau null (brankas)
Item -> belongsTo -> Nampan
// Transaksi dicatat oleh satu kasir
Transaksi -> belongsTo -> Akun (kasir)
// Transaksi bisa melibatkan 0/1 sales
Transaksi -> belongsTo -> Sales
// Transaksi punya banyak item_transaksi
Transaksi -> hasMany -> ItemTransaksi
// Item_transaksi menghubungkan 1 transaksi dengan 1 item
ItemTransaksi -> belongsTo -> Item
📄 License
Lisensi dan kepemilikan atascource code adalah milik PT Teknologi Mulia Sejahtera Cemerlang.
Tim Internship TMSC 2025