c01d95a61bc920193b97cb980a3b756b8ae1dbd4
CKB - Bengkel Management System
Sistem manajemen bengkel yang dibangun dengan Laravel 8 dan menggunakan JavaScript inline untuk performa optimal.
🚀 Overview
Aplikasi ini menggunakan pendekatan JavaScript inline untuk menghindari kebutuhan build process di production server. Semua vendor assets sudah disalin ke folder public dan siap untuk deployment.
📦 Prerequisites
- PHP 8.1+
- Composer
- MySQL/MariaDB
- Redis (optional)
- Docker (optional)
🛠️ Installation
Local Development
-
Clone repository
git clone <repository-url> cd ckb -
Install PHP dependencies
composer install -
Copy environment file
cp .env.example .env php artisan key:generate -
Configure database
# Edit .env file with your database credentials php artisan migrate php artisan db:seed -
Start development server
php artisan serve
Docker Development
# Build development image
docker build -f Dockerfile.dev -t ckb-dev .
# Run container
docker run -p 8080:80 ckb-dev
Docker Production
# Build production image
docker build -f Dockerfile -t ckb-prod .
# Run container
docker run -p 8080:80 ckb-prod
🐳 Docker Optimization
⚡ Optimizations Made
-
Removed Node.js Dependencies
- ❌
nodejsdannpmtidak lagi diinstall di container - ✅ Mengurangi ukuran image sekitar 200-300MB
- ✅ Build time lebih cepat
- ❌
-
No JavaScript Compilation
- ❌ Tidak ada
npm installataunpm run production - ✅ Vendor assets sudah ada di
public/js/vendor/danpublic/css/vendor/ - ✅ Library diakses langsung dari file yang sudah di-minify
- ❌ Tidak ada
-
Optimized .dockerignore
- ❌ Exclude
node_modules/,package.json,webpack.mix.js - ✅ Keep vendor assets di
public/folder - ✅ Mengurangi build context size
- ❌ Exclude
-
Better Layer Caching
- ✅ Copy
composer.jsonterlebih dahulu - ✅ Install PHP dependencies sebelum copy source code
- ✅ Cache layer untuk composer dependencies
- ✅ Copy
📊 Performance Improvements
| Metric | Before | After | Improvement |
|---|---|---|---|
| Image Size | ~800MB | ~500MB | -37.5% |
| Build Time | ~5-8 min | ~2-3 min | -60% |
| Dependencies | Node.js + PHP | PHP only | -50% |
📁 Project Structure
ckb/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ └── Requests/
│ ├── Models/
│ └── Services/
├── resources/
│ ├── views/
│ │ ├── layouts/
│ │ │ ├── frontapp.blade.php
│ │ │ └── backapp.blade.php
│ │ └── transaction/
│ └── sass/
├── public/
│ ├── js/
│ │ ├── vendor/
│ │ │ ├── jquery.dataTables.min.js
│ │ │ ├── dataTables.bootstrap4.min.js
│ │ │ ├── sweetalert2.min.js
│ │ │ ├── chart.umd.js
│ │ │ └── ...
│ │ └── bootstrap-datepicker.min.js
│ └── css/
│ ├── vendor/
│ │ ├── dataTables.bootstrap4.min.css
│ │ ├── sweetalert2.min.css
│ │ └── ...
│ └── bootstrap-datepicker.min.css
└── docker/
├── Dockerfile
├── Dockerfile.dev
└── nginx.conf
🎯 Key Features
Frontend (Mobile App)
- Camera Integration - Foto precheck dan postcheck dengan kontrol penuh
- File Upload - Support hingga 20MB
- Responsive Design - Optimized untuk mobile devices
- Real-time Updates - WebSocket integration
Backend (Admin Panel)
- Transaction Management - Manajemen transaksi bengkel
- KPI Tracking - Sistem KPI dengan perhitungan otomatis
- DataTables - Tabel data dengan fitur advanced
- Chart.js - Visualisasi data dan laporan
- SweetAlert2 - Notifikasi yang user-friendly
Warehouse Management
- Stock Audit - Audit stok dengan filter advanced
- Mutations - Mutasi antar dealer
- Opnames - Penghitungan stok
- Product Management - Manajemen produk dan kategori
🔧 Technology Stack
Backend
- Laravel 8 - PHP Framework
- MySQL/MariaDB - Database
- Redis - Cache & Session
- PHP 8.1 - Runtime
Frontend
- Bootstrap 4 - CSS Framework
- jQuery - JavaScript Library
- DataTables - Table Enhancement
- Chart.js - Chart Library
- SweetAlert2 - Alert Library
- Bootstrap Datepicker - Date Picker
DevOps
- Docker - Containerization
- Nginx - Web Server
- Supervisor - Process Management
🚨 Important Notes
- Vendor assets sudah ada di folder
public/dan akan di-push ke git - Tidak perlu npm install di production server
- Semua JavaScript sudah inline di Blade templates
- CSS masih perlu dikompilasi jika ada perubahan di
resources/sass/
🔧 Troubleshooting
Docker Build Issues
# Gunakan Docker BuildKit untuk build lebih cepat
export DOCKER_BUILDKIT=1
docker build -f Dockerfile -t ckb-prod .
Vendor Assets Missing
Pastikan folder public/js/vendor/ dan public/css/vendor/ sudah ada dan berisi file-file yang diperlukan.
Database Issues
# Clear cache
php artisan cache:clear
php artisan config:clear
# Recreate database
php artisan migrate:fresh --seed
📝 License
This project is licensed under the MIT License.
🤝 Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Description
Languages
JavaScript
59.1%
CSS
37.6%
PHP
1.6%
Blade
1.1%
CoffeeScript
0.4%
Other
0.2%