258 lines
6.0 KiB
Markdown
258 lines
6.0 KiB
Markdown
# 💎 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
|
|
|
|
```bash
|
|
git clone https://git.abbauf.com/Magang-2025/Kasir.git
|
|
cd Kasir
|
|
```
|
|
|
|
### 2. Install Dependencies Backend
|
|
|
|
```bash
|
|
# Install PHP dependencies
|
|
composer install
|
|
|
|
# Copy environment file
|
|
cp .env.example .env
|
|
|
|
# Generate application key
|
|
php artisan key:generate
|
|
```
|
|
|
|
### 3. Install Dependencies Frontend
|
|
|
|
```bash
|
|
# Install Node.js dependencies
|
|
npm install
|
|
```
|
|
|
|
### 4. Konfigurasi Database
|
|
|
|
Edit file `.env` sesuai dengan konfigurasi database Anda:
|
|
|
|
```env
|
|
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
|
|
|
|
```bash
|
|
# Jalankan migrasi
|
|
php artisan migrate
|
|
|
|
# Jalankan seeder (data dummy)
|
|
php artisan db:seed
|
|
```
|
|
|
|
### 6. Storage Link
|
|
|
|
```bash
|
|
# Buat symbolic link untuk storage
|
|
php artisan storage:link
|
|
```
|
|
|
|
### 7. Jalankan Aplikasi
|
|
|
|
#### Development Mode
|
|
|
|
```bash
|
|
# Terminal 1 - Laravel Server
|
|
php artisan serve
|
|
|
|
# Terminal 2 - Vite Dev Server
|
|
npm run dev
|
|
```
|
|
|
|
#### Production Mode
|
|
|
|
```bash
|
|
# 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_P` pada saat install driver.
|
|
- Sambungkan printer ke komputer via USB.
|
|
- Nyalakan printer.
|
|
- Temukan kode qr yang akan diprint (misalnya pada halaman brankas)
|
|
- Klik tombol print pada halaman tersebut
|
|
- Pilih printer `NIIMBOT B3S_P` dan atur kertas ke ukuran kertas `40mm x 30mm`, margin `Default`, scale `Default`
|
|
- Klik print
|
|
|
|
---
|
|
|
|
## 🌐 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
|
|
|
|
```php
|
|
// 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_
|