Kasir/README.md
2025-10-15 14:48:28 +07:00

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 `50mm x 30mm` dan margin `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_