# 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`.
