# Setup Fitur Survey Publik

## Fitur yang Telah Dibuat

1. **Halaman Publik Survey** - Halaman utama untuk memilih survey tanpa login
2. **Form Pengisian Survey** - Halaman untuk mengisi survey
3. **Kontrol Status Survey** - Admin dapat mengatur survey aktif/nonaktif
4. **Validasi Survey Aktif** - Hanya survey aktif yang bisa diisi

## File yang Telah Dibuat/Dimodifikasi

### Controller Baru
- `app/Http/Controllers/PublicController.php` - Controller untuk halaman publik

### View Baru
- `resources/views/public/index.blade.php` - Halaman utama pemilihan survey
- `resources/views/public/fill-survey.blade.php` - Form pengisian survey

### Model yang Dimodifikasi
- `app/Models/Survey.php` - Menambahkan `is_active` ke fillable

### Controller yang Dimodifikasi
- `app/Http/Controllers/SurveyController.php` - Menangani field `is_active`

### View yang Dimodifikasi
- `resources/views/surveys/create.blade.php` - Menambahkan checkbox is_active
- `resources/views/surveys/edit.blade.php` - Menambahkan checkbox is_active
- `resources/views/surveys/index.blade.php` - Menampilkan status aktif/nonaktif

### Routes yang Dimodifikasi
- `routes/web.php` - Menambahkan route publik

### Migration
- `database/migrations/2025_06_24_040000_add_is_active_to_surveys_table.php` - Migration untuk kolom is_active

## Langkah Setup

### 1. Jalankan Migration
```bash
php artisan migrate
```

Atau jika menggunakan Laragon, jalankan SQL manual:
```sql
-- Menambahkan kolom is_active ke tabel surveys
ALTER TABLE surveys ADD COLUMN is_active BOOLEAN DEFAULT TRUE AFTER description;

-- Update semua survey yang ada menjadi aktif
UPDATE surveys SET is_active = TRUE WHERE is_active IS NULL;
```

### 2. Test Fitur

1. **Halaman Publik**: Buka `http://localhost/surveyapp` - akan menampilkan daftar survey aktif
2. **Login Admin**: Buka `http://localhost/surveyapp/login` - untuk mengelola survey
3. **Buat Survey**: Buat survey baru dengan status aktif
4. **Test Pengisian**: Coba isi survey dari halaman publik

## Fitur yang Tersedia

### Untuk Publik (Tanpa Login)
- Melihat daftar survey yang aktif
- Mengisi survey yang dipilih
- Validasi pertanyaan wajib
- Pesan sukses setelah mengisi

### Untuk Admin (Dengan Login)
- Mengelola survey (CRUD)
- Mengatur status aktif/nonaktif survey
- Melihat responses dari survey
- Export data responses

## Struktur URL

- **Halaman Utama**: `/` - Daftar survey publik
- **Isi Survey**: `/surveys/{id}/fill` - Form pengisian survey
- **Login Admin**: `/login` - Halaman login admin
- **Dashboard Admin**: `/dashboard` - Dashboard admin (setelah login)

## Catatan

- Survey yang tidak aktif tidak akan muncul di halaman publik
- Semua survey yang sudah ada akan otomatis menjadi aktif
- Admin dapat mengatur status survey dari form create/edit
- Halaman publik menggunakan layout guest (tanpa navigation admin) 