Skip to content

Struktur Proyek

Struktur Direktori

sutomo-school-management/
├── app/
│   ├── Filament/              # Resource panel Filament
│   │   ├── Clusters/          # Cluster panel (Recruitment, System, dll)
│   │   ├── Forms/             # Komponen form kustom
│   │   ├── Resources/         # Resource CRUD (per domain)
│   │   │   └── DomainName/
│   │   │       ├── EntityResource.php
│   │   │       ├── Schemas/   # Skema form + infolist
│   │   │       ├── Tables/    # Definisi tabel
│   │   │       └── Pages/     # List, Create, Edit, View
│   │   └── Schemas/           # Komponen skema bersama
│   ├── Models/                # Model Eloquent (per domain)
│   │   └── DomainName/
│   │       └── Entity/
│   │           ├── Entity.php
│   │           └── Concerns/
│   │               ├── HasRelations.php
│   │               ├── HasAttributes.php
│   │               └── HasScopes.php
│   ├── Services/              # Logika bisnis
│   └── Enums/                 # Enum PHP
├── database/
│   ├── factories/             # Factory model
│   ├── migrations/            # Migrasi (v1_0_0, v1_1_0, dll)
│   └── seeders/               # Seeder database
├── docs/                      # Artikel Knowledge Base
├── handbooks/                 # Dokumentasi teknis Vitepress
├── routes/                    # Definisi route
└── tests/                     # Test PHP (Pest)

Cara Buat Domain Baru

  1. Buat model di app/Models/NewDomain/Entity/Entity.php
  2. Buat Concerns/HasRelations.php untuk relasi
  3. Buat migration di database/migrations/v1_4_0/
  4. Buat Filament resource di app/Filament/Resources/NewDomain/
  5. Daftarkan route di resource getPages()
  6. Buat factory di database/factories/

Referensi Belajar

TopikLink
Dokumentasi Laravelhttps://laravel.com/docs/13.x
Dokumentasi Filamenthttps://filamentphp.com/docs/5.x/panels
Pest Testinghttps://pestphp.com/docs
FrankenPHP / Octanehttps://frankenphp.dev