Aplikasi berbasis Laravel 12 untuk memonitor dan mengevaluasi kelayakan sanitasi Tempat Pengelolaan Pangan (TPP) di Kota Depok. Sistem ini secara otomatis mengintegrasikan hasil Inspeksi Kesehatan Lingkungan (IKL) dari Dsimfoniku dan menghasilkan status kelayakan Sertifikat Laik Higiene Sanitasi (SLHS) berbasis aturan (rule-based).
- Manajemen Unit Usaha TPP: Dikelola per kecamatan dengan pembagian akses spesifik per jenis usaha (SPPG, TPP, DAM, Kantin).
- Sinkronisasi Otomatis IKL: Menarik data hasil IKL dari API eksternal Dsimfoniku (termasuk name matching).
- Evaluasi Kelayakan Otomatis: Skor IKL ≥ 80 = "Memenuhi Syarat" (otomatis real-time).
- Dashboard Komprehensif: Tersedia untuk ringkasan Dinkes (makro), Kecamatan (mikro), dan Publik (tanpa login).
- Peringatan Dini SLHS: Notifikasi untuk sertifikat yang hampir/telah kedaluwarsa.
- Rekap & Ekspor: Pelaporan ekspor data ke Excel.
- Resiliensi API: Penanganan galat otomatis (retry/503/timeout) jika API Dsimfoniku sedang down.
- Isolasi Data Otomatis: Filter middleware berbasis wilayah kerja dan kewenangan admin.
- Admin Dinkes: Akses lintas kecamatan, monitoring makro, kelola operator/admin kecamatan, rekap pelaporan pimpinan, dan pantau log sinkronisasi API.
- Admin Kecamatan: Mengelola data unit usaha di wilayah kerjanya. Catatan Akses: Hak akses admin kecamatan dipecah dan diisolasi spesifik SPPG untuk masing-masing kecamatan.
- Publik / Guest: Akses pantau data kelayakan TPP tanpa autentikasi (Read-only).
Sistem ini dikembangkan dan dioptimalkan untuk lingkungan berikut:
- PHP 8.3.x
- Laravel 12.x
- Composer 2.x
- Node.js & npm
- Database: MySQL / MariaDB
- Local Development: Direkomendasikan menggunakan Laragon
- Production Environment: Disiapkan untuk deployment pada cPanel
app/
├── Exports/
│ └── KelayakanExport.php
├── Http/
│ ├── Controllers/
│ │ ├── GuestController.php
│ │ ├── LoginController.php
│ │ ├── Dinkes/
│ │ │ ├── DashboardController.php
│ │ │ ├── EvaluationController.php
│ │ │ ├── ManageOperatorsController.php
│ │ │ ├── ReportsController.php
│ │ │ └── ReportingController.php
│ │ └── Kecamatan/
│ │ ├── DashboardController.php
│ │ ├── LaporanUnitController.php
│ │ ├── LaporanSasaranController.php
│ │ └── SlhsController.php
│ └── Middleware/
│ ├── AdminDinkesMiddleware.php
│ └── AdminKecamatanMiddleware.php
├── Models/
│ ├── FotoUnit.php
│ ├── Kecamatan.php
│ ├── Kelurahan.php
│ ├── LaporanPenerima.php
│ ├── LaporanSlhs.php
│ ├── MenuSppg.php
│ ├── Puskesmas.php
│ ├── SasaranManfaat.php
│ ├── Sppg.php
│ ├── UnitUsaha.php
│ └── User.php
└── Providers/
└── AppServiceProvider.php
bootstrap/
├── app.php
└── providers.php
config/
├── app.php
├── auth.php
├── cache.php
├── database.php
├── filesystems.php
├── logging.php
├── mail.php
├── queue.php
├── services.php
└── session.php
database/
├── factories/
│ └── UserFactory.php
├── migrations/
│ ├── 0001_01_01_000000_create_users_table.php
│ ├── 0001_01_01_000001_create_cache_table.php
│ ├── 0001_01_01_000002_create_jobs_table.php
│ ├── 0001_01_01_000003_create_table_kecamatan.php
│ ├── 2024_04_05_create_sessions_table.php
│ ├── 2026_04_13_062658_create_table_puskesmas.php
│ ├── 2026_04_13_062930_create_table_kelurahan.php
│ ├── 2026_04_30_172219_unit_usahas.php
│ ├── 2026_04_30_172727_sasaran_manfaat.php
│ ├── 2026_04_30_173835_laporan_slhs.php
│ ├── 2026_05_01_170908_add_idkecamatan_to_users.php
│ ├── 2026_05_06_125017_add_jumlah_penjamah_terlatih_to_unit_usahas_table.php
│ └── 2026_05_11_101251_create_foto_usaha_table.php
└── seeders/
public/
├── css/
├── images/
├── js/
├── storage/
├── index.php
└── robots.txt
resources/
├── css/
├── js/
└── views/
├── layout/
├── dinkes/
├── kecamatan/
├── rekapdaerah.blade.php
└── homepage.blade.php
routes/
├── web.php
└── console.php
storage/
├── app/
├── framework/
└── logs/
tests/
├── Feature/
│ ├── Dinkes/
│ ├── Kecamatan/
│ ├── GuestControllerTest.php
│ └── LoginControllerTest.php
└── Unit/
└── ExampleTest.php
-
Clone repositori
git clone <repository-url> cd monev-tpp-slhs
-
Install dependency PHP & Node
composer install npm install
-
Konfigurasi Environment Salin file konfigurasi:
cp .env.example .env
Sesuaikan koneksi database di
.env. Tambahkan kredensial API integrasi:DSIMFONIKU_BASE_URL="https://api.domain.com"
-
Generate Key & Migrasi Database
php artisan key:generate php artisan migrate --seed
-
Jalankan Aplikasi Jika tidak mengakses langsung melalui virtual host (misal
.testdi Laragon), jalankan internal server:php artisan serve npm run dev
Untuk menjaga kerapian riwayat repositori, gunakan format commit message yang ringkas dan spesifik pada scope perubahan. Contoh:
feat(api): integrasi endpoint Dsimfonikufix(role): pemisahan akses DAM dan Kantin per kecamatanrefactor(db): rombak struktur tabel dashboard SLHS