# Website Dinamis Dash Digital Indonesia

## ✅ Fitur yang Telah Diimplementasikan

Website Dash Digital Indonesia sekarang **100% DINAMIS** dan dapat dikelola dari backend admin!

### 🎯 Konten yang Dapat Diatur dari Admin

1. **Services (Layanan)**
   - Judul layanan
   - Deskripsi layanan
   - Icon (Bootstrap Icons)
   - Urutan tampilan
   - Status aktif/nonaktif

2. **Portfolio (Portofolio)**
   - Judul project
   - Kategori
   - Deskripsi
   - Gambar thumbnail & fullsize
   - Urutan tampilan
   - Status aktif/nonaktif

3. **Settings (Pengaturan Website)**
   - Hero Title
   - Hero Subtitle
   - About Title
   - About Description
   - Contact Phone
   - Contact Email
   - Contact Address
   - Company Name

## 🗄️ Struktur Database

### Tabel `services`
```sql
- id
- title (varchar)
- description (text)
- icon (varchar) - Bootstrap icon class
- order (integer) - urutan tampil
- is_active (boolean)
- created_at, updated_at
```

### Tabel `portfolios`
```sql
- id
- title (varchar)
- category (varchar)
- description (text)
- image_thumbnail (varchar)
- image_fullsize (varchar)
- order (integer)
- is_active (boolean)
- created_at, updated_at
```

### Tabel `settings`
```sql
- id
- key (varchar, unique)
- value (text)
- type (varchar) - text, textarea, image
- group (varchar) - general, hero, about, contact
- created_at, updated_at
```

## 🚀 Cara Menggunakan

### 1. Akses Website
```
http://127.0.0.1:8000/
```
Website akan menampilkan data dari database secara dinamis.

### 2. Login ke Admin
```
http://127.0.0.1:8000/admin/login
```
**Kredensial:**
- Email: admin@dashdigital.co.id
- Password: admin123

### 3. Manage Services
```
http://127.0.0.1:8000/admin/services
```
**Fitur:**
- ✅ Lihat semua services
- ✅ Tambah service baru
- ✅ Edit service
- ✅ Hapus service
- ✅ Atur urutan tampilan
- ✅ Aktifkan/nonaktifkan service

**Cara Menambah Service Baru:**
1. Klik tombol "Tambah Service"
2. Isi form:
   - Title: Nama layanan (contoh: "Web Development")
   - Description: Deskripsi lengkap layanan
   - Icon: Kode Bootstrap icon (contoh: "bi-laptop", "bi-phone")
   - Order: Urutan tampil (0, 1, 2, dst)
   - Active: Centang jika ingin langsung tampil
3. Klik "Simpan"
4. Service otomatis muncul di homepage!

**Icon yang Tersedia:**
- `bi-laptop` - Laptop/Computer
- `bi-phone` - Smartphone
- `bi-gear` - Pengaturan/Settings
- `bi-graph-up` - Chart/Analytics
- `bi-code-slash` - Coding
- `bi-palette` - Design
- `bi-cloud` - Cloud Computing
- Lihat lengkap di: https://icons.getbootstrap.com/

### 4. Manage Portfolio
```
http://127.0.0.1:8000/admin/portfolios
```
Portfolio saat ini sudah dinamis dan menampilkan data dari database. Fitur CRUD lengkap bisa ditambahkan nanti.

### 5. Dashboard
```
http://127.0.0.1:8000/admin/dashboard
```
Dashboard menampilkan statistik dan ringkasan data.

## 📝 Contoh Penggunaan

### Menambah Service "UI/UX Design"

1. Login ke admin
2. Klik menu "Services"
3. Klik "Tambah Service"
4. Isi:
   ```
   Title: UI/UX Design
   Description: Membuat design interface yang menarik dan user experience yang optimal untuk aplikasi dan website Anda.
   Icon: bi-palette
   Order: 5
   Active: ✓ (checked)
   ```
5. Klik "Simpan"
6. Buka homepage → Service baru langsung muncul!

### Mengedit Service

1. Di halaman Services, klik tombol Edit (ikon pensil)
2. Ubah data yang ingin diubah
3. Klik "Update"
4. Perubahan langsung terlihat di homepage!

### Menonaktifkan Service

1. Edit service yang ingin dinonaktifkan
2. Hilangkan centang pada "Active"
3. Klik "Update"
4. Service tidak akan muncul di homepage (tapi masih ada di database)

## 🔧 File yang Penting

### Controllers
```
app/Http/Controllers/
├── HomeController.php              (Homepage dengan data dinamis)
└── Admin/
    ├── AdminAuthController.php     (Login/Logout admin)
    ├── DashboardController.php     (Dashboard admin)
    ├── ServiceController.php       (CRUD Services)
    └── PortfolioController.php     (CRUD Portfolio)
```

### Models
```
app/Models/
├── Service.php      (Model untuk services)
├── Portfolio.php    (Model untuk portfolios)
└── Setting.php      (Model untuk settings)
```

### Views
```
resources/views/
├── dashdigital.blade.php          (Homepage - Dinamis!)
└── admin/
    ├── login.blade.php            (Login page)
    ├── dashboard.blade.php        (Dashboard)
    ├── services/
    │   ├── index.blade.php        (List services)
    │   ├── create.blade.php       (Tambah service)
    │   └── edit.blade.php         (Edit service)
    └── portfolios/
        └── index.blade.php        (List portfolio)
```

### Routes
```php
// Homepage (dinamis)
Route::get('/', [HomeController::class, 'index'])->name('home');

// Admin routes
Route::prefix('admin')->middleware('auth')->group(function () {
    Route::get('/dashboard', [DashboardController::class, 'index']);
    Route::resource('services', ServiceController::class);
    Route::resource('portfolios', PortfolioController::class);
});
```

## 💡 Tips & Tricks

### 1. Mengubah Urutan Service
Edit service dan ubah nilai "Order". Semakin kecil angka, semakin depan posisinya.
- Order 0 → Paling depan
- Order 1 → Kedua
- Order 2 → Ketiga
- dst...

### 2. Menampilkan/Menyembunyikan Konten
Gunakan checkbox "Active":
- ✓ Checked → Tampil di website
- ✗ Unchecked → Tidak tampil (tersimpan di database)

### 3. Mengubah Konten Hero Section
Edit di database tabel `settings`:
- `hero_title` → Judul utama
- `hero_subtitle` → Subtitle/deskripsi

Atau buat halaman settings di admin (bisa dikembangkan).

## 🎨 Customisasi

### Menambah Field Baru pada Service

1. **Buat migration:**
   ```bash
   php artisan make:migration add_price_to_services_table
   ```

2. **Edit migration:**
   ```php
   $table->decimal('price', 10, 2)->nullable();
   ```

3. **Run migration:**
   ```bash
   php artisan migrate
   ```

4. **Update Model Service:**
   ```php
   protected $fillable = [..., 'price'];
   ```

5. **Update form create/edit**

6. **Update view homepage**

## 🔒 Keamanan

- ✅ Password ter-hash dengan bcrypt
- ✅ CSRF Protection aktif
- ✅ Middleware auth untuk protect admin routes
- ✅ Session-based authentication
- ✅ Validasi input form

## 📊 Data Awal

Data sudah di-seed otomatis:
- **4 Services** (Web Dev, Mobile Dev, Digital Marketing, IT Consultation)
- **6 Portfolios** (E-commerce, Mobile Banking, Corporate Website, dll)
- **8 Settings** (Hero, About, Contact info)
- **1 Admin User** (admin@dashdigital.co.id)

## 🚀 Development Selanjutnya

Fitur yang bisa ditambahkan:
1. ✅ CRUD Portfolio lengkap dengan upload gambar
2. ✅ Settings page untuk edit konten website
3. ✅ Blog/News section
4. ✅ Contact form yang save ke database
5. ✅ File manager untuk upload gambar
6. ✅ Multi-user dengan role management
7. ✅ Activity logs
8. ✅ Email notifications
9. ✅ SEO settings per halaman
10. ✅ Analytics dashboard

## 🐛 Troubleshooting

**Website tidak menampilkan data:**
- Pastikan server berjalan: `php artisan serve`
- Cek database: `php artisan migrate`
- Cek data: `php artisan db:seed --class=ContentSeeder`

**Error 404 di route admin:**
- Clear cache: `php artisan route:clear`
- Check route: `php artisan route:list`

**Tidak bisa login:**
- Pastikan user ada di database
- Reset password: jalankan seeder lagi

---

**Dibuat:** November 5, 2025  
**Website:** http://127.0.0.1:8000  
**Admin:** http://127.0.0.1:8000/admin/login
