Arsitektur Sistem
Arsitektur Backend
Struktur dan konvensi teknis backend Laravel 13 API
Backend SI Rekrutmen BKI SKARIGA dibangun di atas Laravel 13 dan PHP 8.3+ dengan runtime berkinerja tinggi Laravel Octane (RoadRunner).
Teknologi Utama
- Framework: Laravel 13
- Runtime: RoadRunner & Laravel Octane
- Database: PostgreSQL (
si_rekrutmen_bki_skariga_db) - Autentikasi: Laravel Sanctum (Stateful / Bearer Token)
- Real-Time: Laravel Reverb (
^1.0) untuk event broadcasting - Testing: Pest PHP (
tests/Feature/&tests/Unit/)
Struktur Direktori Backend
backend/app/
├── Events/ # Event real-time (NotificationSent)
├── Helpers/ # Helper enkripsi AES-256-CBC
├── Http/
│ ├── Controllers/ # Thin controllers (Api/ & Auth/)
│ ├── Middleware/ # RBAC, DecryptRequest
│ ├── Requests/ # FormRequest validasi terpisah
│ └── Resources/ # API JsonResource formatters
├── Mail/ # Mailable templates (ResetPasswordMail, JobVacancyNotificationMail)
├── Models/ # Eloquent models dengan attribute #[Fillable]
└── Services/ # Business rules & database transactionsAturan Arsitektur Wajib
- Service Pattern: Dilarang meletakkan query database atau logika bisnis di dalam Controller. Semua diarahkan ke
app/Services/. - Form Request Validation: Dilarang melakukan inline validation (
$request->validate()) di Controller. Selalu buat kelas FormRequest turunan diapp/Http/Requests/. - API Resources: Dilarang mengembalikan model Eloquent langsung ke client. Gunakan JsonResource di
app/Http/Resources/dan bungkus denganResponseService. - Mass Assignment: Model menggunakan attribute Laravel 13
#[Fillable([...])]. - Database Migration: Dilarang mengedit migrasi lama yang sudah berjalan. Buat file migrasi baru untuk modifikasi skema.