6.5 KiB
💎 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. #Install Laravel Sanctum
BELUM DIGUNAKAN
# Publish konfigurasi Sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
6. Setup Database
# Jalankan migrasi
php artisan migrate
# Jalankan seeder (data dummy)
php artisan db:seed
7. Storage Link
# Buat symbolic link untuk storage
php artisan storage:link
8. 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
🌐 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
Oke, jadi penjelasan “📊 Fitur Database” yang kamu tulis nggak sepenuhnya sesuai sama struktur tabel yang udah kamu definisikan di awal. Ada tabel yang salah nama, ada juga relasi yang kebalik. Gue rapihin biar konsisten dengan skema yang udah kamu kasih:
📊 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
🛠️ Development
Menjalankan Tests
# PHP Unit Tests
php artisan test
# atau dengan coverage
php artisan test --coverage
Code Quality
# PHP CS Fixer
vendor/bin/php-cs-fixer fix
# Laravel Pint
vendor/bin/pint
Database Management
# Reset database dan re-seed
php artisan migrate:fresh --seed
# Backup database
php artisan backup:run
# Generate model dengan migration
php artisan make:model ProductCategory -m
📄 License
Lisensi dan kepemilikan atascource code adalah milik PT Teknologi Mulia Sejahtera Cemerlang.
Tim Internship TMSC 2025