# πŸ’Ž 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 ### Opsi 1: Docker (Recommended) 🐳 - **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 ```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: ```env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=toko_emas DB_USERNAME=root DB_PASSWORD= ``` ### 5. Setup Database ```bash php artisan migrate ``` ```bash php artisan db:seed ``` ### 6. Storage Link ```bash php artisan storage:link ``` ### 7. Jalankan Aplikasi #### Development Mode ```bash npm run dev ``` #### Production Mode ```bash # 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 < ./storage/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: - **URL**: http://localhost:8000 ### πŸ‘€ 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 ```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_