50 lines
1.3 KiB
Markdown
50 lines
1.3 KiB
Markdown
# Modular Monolith Structure
|
|
|
|
Struktur modular monolith untuk SMAN1 Face Attendance System.
|
|
|
|
## Struktur Modul
|
|
|
|
Setiap modul mengikuti clean architecture pattern dengan pemisahan layer:
|
|
|
|
```
|
|
app/Modules/
|
|
├── Auth/
|
|
│ ├── Controllers/ # HTTP request handlers
|
|
│ ├── Models/ # Data access layer
|
|
│ ├── Services/ # Business logic layer
|
|
│ └── Entities/ # Domain entities
|
|
├── Students/
|
|
│ ├── Controllers/
|
|
│ ├── Models/
|
|
│ ├── Services/
|
|
│ └── Entities/
|
|
├── Attendance/
|
|
│ ├── Controllers/
|
|
│ ├── Models/
|
|
│ ├── Services/
|
|
│ └── Entities/
|
|
├── Devices/
|
|
│ ├── Controllers/
|
|
│ ├── Models/
|
|
│ ├── Services/
|
|
│ └── Entities/
|
|
└── Dashboard/
|
|
├── Controllers/
|
|
├── Models/
|
|
├── Services/
|
|
└── Entities/
|
|
```
|
|
|
|
## Namespace Convention
|
|
|
|
Semua modul menggunakan namespace `App\Modules\{ModuleName}\{Layer}`
|
|
|
|
Contoh:
|
|
- `App\Modules\Auth\Controllers\AuthController`
|
|
- `App\Modules\Students\Services\StudentService`
|
|
- `App\Modules\Attendance\Models\AttendanceModel`
|
|
|
|
## Autoloading
|
|
|
|
Modul-modul otomatis ter-autoload melalui Composer PSR-4 autoloading yang sudah dikonfigurasi di `composer.json`.
|