Go to file
2025-10-21 09:49:49 +07:00
app [Update] Fix kode item error 2025-10-20 16:50:26 +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 [Update] Fix kode item error 2025-10-20 16:50:26 +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] Print label layout 2025-10-21 09:43:23 +07:00
routes fixing error 2025-10-20 17:28:57 +07:00
storage [Update] Print label layout 2025-10-21 09:43:23 +07:00
tests first commit 2025-08-27 16:32:02 +07:00
.dockerignore [Update] Docker done 2025-10-14 10:48:34 +07:00
.editorconfig first commit 2025-08-27 16:32:02 +07:00
.env.docker [Update] Docker done 2025-10-14 10:48:34 +07:00
.env.example Penyesuaian 2025-10-17 16:25:38 +07:00
.gitattributes first commit 2025-08-27 16:32:02 +07:00
.gitignore [Update] Docker done 2025-10-14 10:48:34 +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-17 16:24:26 +07:00
Dockerfile [Refactor] Fix edit produk 2025-10-16 14:30:39 +07:00
nginx.conf [Refactor] Fix edit produk 2025-10-16 14:30:39 +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 README.md 2025-10-21 09:49:49 +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. Dibuat khusus sesuai kebutuhan Toko Emas Jakarta Citayam.

👥 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

Semuah 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
  • Styling: Tailwind CSS
  • Build Tool: Vite
  • Authentication: Laravel Sanctum
  • HTTP Client: Axios

📋 Prerequisites

  • Docker Desktop (Windows/Mac) atau Docker Engine (Linux)
  • Docker Compose v2.0+
  • Git

Opsi 2: Manual Installation

  • PHP 8.2+
  • Composer
  • Node.js 18+
  • NPM
  • MySQL 8.0+
  • Redis (optional)
  • Git

Installation

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:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=toko_emas
DB_USERNAME=root
DB_PASSWORD=

5. Setup Database

php artisan migrate
php artisan db:seed
php artisan storage:link

7. Jalankan Aplikasi

Development Mode

npm run dev

Production Mode

# Pastikan env production sudah tersedia
docker compose --env-file .env.production up -d --build

# Siapkan database
docker exec -it abbauf_kasir_app php artisan migrate --seed

# Atau import database secara manual
docker exec -i abbauf_kasir_db mysql -u kasir_user -pkasir_password kasir_db < ./toko_emas.sql

# Periksa database (opsional)
docker exec -it abbauf_kasir_db bash
mysql -u kasir_user -pkasir_password kasir_db

8. Print Label

  • Install driver, ada pada folder ./driver/NiimbotPrinterDriverInstall_3.0.0.5.exe 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

9. Print Nota

  • Pastikan printer terhubung dengan komputer via USB.
  • Nyalakan printer.
  • Install driver, ada pada folder ./driver/L120_x64_213UsHomeExportAsiaML.exe.
  • Lakukan transaksi penjualan pada aplikasi, atau pilih nota yang akan diprint di Laporan > Riwayat transaksi.
  • Klik tombol print pada halaman tersebut
    • Pilih ukuran kertas A4, margin Minimum, scale 95
    • Klik print

🌐 Akses Aplikasi

Setelah instalasi berhasil, akses aplikasi melalui:

👤 Default Login

Owner Account:

  • Username: admin
  • Password: 123123

Kasir Account:

  • Username: kasir
  • Password: 123123

📁 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