Go to file
2025-10-16 17:06:18 +07:00
app update gambar struk 2025-10-16 17:06:18 +07:00
bootstrap [feat RoleMiddleware, update AuthControlller, app.php, BrankasList, TrayList, Login.vue, web.php 2025-09-08 09:48:32 +07:00
config (feat AuthControlller, Update User.php, auth.php, web.php] 2025-09-04 14:13:53 +07:00
database [Refactor] Seeder 2025-10-14 13:06:15 +07:00
Documentation [Update] print label 2025-10-15 14:33:47 +07:00
driver update gambar struk 2025-10-16 17:06:18 +07:00
public [Fix] Filter nampan 2025-09-19 09:50:10 +07:00
resources update gambar struk 2025-10-16 17:06:18 +07:00
routes [feat] cetak laporan (belom) 2025-09-18 15:59:48 +07:00
storage first commit 2025-08-27 16:32:02 +07:00
tests first commit 2025-08-27 16:32:02 +07:00
.dockerignore [Update] Docker 2025-10-01 13:42:03 +07:00
.editorconfig first commit 2025-08-27 16:32:02 +07:00
.env.example [Update] Docker 2025-10-15 10:02:06 +07:00
.gitattributes first commit 2025-08-27 16:32:02 +07:00
.gitignore first commit 2025-08-27 16:32:02 +07:00
artisan first commit 2025-08-27 16:32:02 +07:00
composer.json [feat] export laporan (pdf) 2025-09-08 18:28:49 +07:00
composer.lock [feat] export laporan (pdf) 2025-09-08 18:28:49 +07:00
composer.phar first commit 2025-08-27 16:32:02 +07:00
docker-compose.yml [Update] Docker 2025-10-15 10:02:06 +07:00
Dockerfile [Update] Docker 2025-10-15 10:02:06 +07:00
nginx.conf [Update] Docker 2025-10-01 13:42:03 +07:00
package-lock.json [Update] print label 2025-10-15 14:33:47 +07:00
package.json [Update] Navigation menu 2025-09-01 11:51:20 +07:00
phpunit.xml first commit 2025-08-27 16:32:02 +07:00
README.md [Update] Print barcode 2025-10-16 11:12:27 +07:00
vite.config.js [Update] Navigation menu 2025-09-01 11:51:20 +07:00

💎 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
# 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_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:

👤 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