diff --git a/README.md b/README.md new file mode 100644 index 0000000..91773b4 --- /dev/null +++ b/README.md @@ -0,0 +1,289 @@ +# DST Collection - Built-in One + +Aplikasi manajemen toko dan konveksi untuk DST Collection. Mengelola proses produksi garmen (cutting, jahit, finishing), penjualan di toko, stok bahan baku, pesanan pelanggan, dan laporan keuangan. + +## Tech Stack + +### Backend +- **PHP** 8.3+ +- **Laravel** 13 +- **MySQL** 8.0+ (database) +- **Redis** (cache, queue, session) +- **Inertia.js** v3 (server-side rendering) + +### Frontend +- **Vue.js** 3.5 +- **TypeScript** 5.2 +- **Tailwind CSS** 4.1 +- **Vite** 7.3 (build tool) +- **Inertia.js** v3 (client-side) + +### Packages Utama +- **Spatie** - Permission, Media Library, Activity Log, Settings, Sluggable +- **FullCalendar** - Kalender & penjadwalan +- **TanStack Table** - Tabel data +- **Reka UI** - Komponen UI +- **Lucide** - Ikon +- **Vue Sonner** - Notifikasi toast +- **PWA** - Progressive Web App support + +### Development & Testing +- **Pest** v4 (testing) +- **Laravel Pint** (code style) +- **ESLint** (linting) +- **Prettier** (formatting) +- **Vue TSC** (type checking) + +## Persyaratan Sistem + +| Komponen | Versi Minimum | +|----------|---------------| +| PHP | 8.3 | +| Composer | 2.x | +| Node.js | 18.x | +| NPM | 9.x | +| MySQL | 8.0+ | +| Redis | 6.0+ | + +### Ekstensi PHP yang Dibutuhkan +- openssl, pdo, mbstring, tokenizer, xml, ctype, json, bcmath, curl, fileinfo, gd, zip, redis + +## Instalasi + +### 1. Clone Repository + +```bash +git clone +cd built-in-one +``` + +### 2. Install Dependencies + +```bash +composer install +npm install +``` + +### 3. Setup Environment + +```bash +cp .env.example .env +php artisan key:generate +``` + +### 4. Konfigurasi Database + +Edit file `.env`: + +**MySQL:** +```env +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=dst_collection +DB_USERNAME=root +DB_PASSWORD= +``` + +### 5. Konfigurasi Redis + +Tambahkan di `.env`: + +```env +REDIS_CLIENT=predis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +CACHE_STORE=redis +QUEUE_CONNECTION=redis +SESSION_DRIVER=redis +``` + +### 6. Migrate Database + +```bash +php artisan migrate +``` + +### 7. Seed Database (opsional) + +```bash +php artisan db:seed +``` + +### 8. Build Frontend + +```bash +npm run build +``` + +### 9. Storage Link + +```bash +php artisan storage:link +``` + +## Instalasi Satu Perintah + +```bash +composer setup +``` + +Perintah ini akan menjalankan semua langkah instalasi secara otomatis. + +## Konfigurasi Tambahan + +### Redis + +Sistem menggunakan Redis untuk cache, queue, dan session. Pastikan Redis server sudah berjalan: + +```bash +redis-cli ping # Harus merespons PONG +``` + +### Queue Worker + +Sistem menggunakan queue untuk beberapa proses. Jalankan queue worker: + +```bash +php artisan queue:listen --tries=1 --timeout=0 +``` + +### Push Notification (Web Push) + +Untuk mengaktifkan push notification, tambahkan di `.env`: + +```env +VAPID_PUBLIC_KEY= +VAPID_PRIVATE_KEY= +``` + +Generate VAPID keys: + +```bash +php artisan web-push:vapid +``` + +### Mail Configuration + +```env +MAIL_MAILER=smtp +MAIL_HOST=smtp.mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=tls +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" +``` + +## Perintah yang Tersedia + +### Development + +```bash +composer dev +``` + +Menjalankan server, queue worker, log viewer, dan Vite secara bersamaan. + +### Build + +```bash +npm run build # Production build +npm run dev # Development server (Vite) +npm run build:ssr # Build dengan SSR +``` + +### Code Quality + +```bash +composer lint # Auto-fix code style (Pint) +composer lint:check # Check code style +npm run lint # Auto-fix ESLint +npm run lint:check # Check ESLint +npm run format # Format dengan Prettier +npm run format:check # Check formatting +npm run types:check # Type checking (Vue TSC) +``` + +### Testing + +```bash +composer test # Run semua test +php artisan test # Run test langsung +``` + +### Lainnya + +```bash +php artisan migrate # Jalankan migration +php artisan migrate:fresh # Reset dan jalankan ulang migration +php artisan db:seed # Seed database +php artisan storage:link # Buat symlink storage +php artisan config:clear # Clear config cache +php artisan cache:clear # Clear cache +php artisan view:clear # Clear compiled views +``` + +## Struktur Project + +``` +built-in-one/ +├── app/ +│ ├── Http/ +│ │ ├── Controllers/ # Controller HTTP +│ │ ├── Middleware/ # Middleware +│ │ └── Requests/ # Form Request validation +│ ├── Models/ # Eloquent Models +│ ├── Services/ # Business Logic +│ └── ... +├── database/ +│ ├── factories/ # Model Factories +│ ├── migrations/ # Database Migrations +│ └── seeders/ # Database Seeders +├── resources/ +│ ├── js/ +│ │ ├── components/ # Vue Components +│ │ ├── pages/ # Inertia Pages +│ │ ├── composables/ # Vue Composables +│ │ ├── types/ # TypeScript Types +│ │ └── constants/ # Constants & Config +│ └── css/ # Stylesheets +├── routes/ +│ ├── web.php # Web Routes +│ └── ... +├── tests/ +│ ├── Feature/ # Feature Tests +│ └── Unit/ # Unit Tests +├── public/ # Public Assets +├── storage/ # Storage & Logs +├── .env.example # Environment Example +├── composer.json # PHP Dependencies +├── package.json # Node Dependencies +└── vite.config.ts # Vite Configuration +``` + +## Fitur Utama + +### Konveksi +- **Manajemen Cutting** - Kelola proses cutting bahan baku +- **Manajemen Produksi** - Monitoring proses jahit dan finishing +- **Manajemen Stok Bahan Baku** - Monitoring stok kain dan bahan + +### Toko +- **Point of Sale (POS)** - Kasir dan penjualan di toko +- **Manajemen Produk** - Kelola katalog produk dan varian +- **Manajemen Pesanan** - Kelola pesanan pelanggan + +### Umum +- **Laporan Keuangan** - Laporan pendapatan dan pengeluaran +- **Manajemen Pengguna** - Role dan permission management +- **Activity Log** - Log aktivitas sistem +- **Push Notification** - Notifikasi real-time +- **PWA** - Install sebagai aplikasi mobile + +## License + +Proprietary - DST Collection