Aplikasi Buku Tamu Front Office/PST dengan arsitektur CodeIgniter 3 + HMVC (Modular Extensions MX).
Dokumen ini merangkum struktur, modul, serta langkah instalasi & konfigurasi berdasarkan struktur proyek yang diberikan.
Fungsi utama aplikasi (berdasarkan modul & view yang tersedia):
- Selamat Datang: halaman depan, pemilihan status, cetak nomor antrian.
- Antrian: manajemen & pencetakan nomor antrian (kiosk).
- Layanan: form layanan/konsultasi untuk tamu/pengunjung.
- Admin: dashboard, login, daftar tamu/kunjungan, detail, tambah/edit data, antrian konsultasi.
- Recognize: halaman pengenalan (kamera/QR/face recognition).
- Evaluasi: form evaluasi layanan dan halaman tunggu/selesai.
- PHP: 7.4+ disarankan (kompatibel CI3), aktifkan ekstensi umum (mysqli, mbstring, intl, gd).
- Web Server: Apache/Nginx.
- Database: MySQL/MariaDB.
- Framework: CodeIgniter 3 + HMVC (Modular Extensions MX).
- Front-end: Bootstrap/jQuery (asumsi dari view).
- (Opsional) Kamera/JS untuk fitur recognize.
application/
├─ config/ # Config CI (base_url, autoload, database, routes, dll.)
├─ controllers/ # Controller global (Evaluasi.php) + index.html
├─ core/ # MY_Controller, MY_Loader, MY_Router (kustom HMVC)
├─ helpers/ # konsultasi_helper.php
├─ language/ # Stub bahasa
├─ libraries/ # Layout.php (wrapper layout/view)
├─ logs/ # Log CI
├─ models/ # (belum ada model global)
├─ modules/ # HMVC modules:
│ ├─ admin/
│ │ ├─ controllers/Admin.php
│ │ ├─ models/M_admin.php
│ │ └─ views/
│ │ ├─ dashboard.php, daftar_tamu.php, daftar_kunjungan.php
│ │ ├─ antrian_konsultasi.php, detail_kunjungan.php, detail_modal.php
│ │ ├─ tambah.php, edit.php, form_konsultasi.php, login.php
│ │ └─ layouts/admin_header.php, admin_footer.php
│ ├─ layanan/
│ │ ├─ controllers/Layanan.php
│ │ ├─ models/M_layanan.php
│ │ └─ views/form/layanan.php, layanan_detail.php
│ ├─ recognize/
│ │ ├─ controllers/Recognize.php
│ │ ├─ models/M_recognize.php
│ │ └─ views/view_recognize.php
│ └─ selamat_datang/
│ ├─ controllers/Antrian.php, Selamat_datang.php
│ ├─ models/M_selamat_datang.php, M_user.php
│ └─ views/view_selamat_datang.php, view_pilih_status.php, cetak_antrian.php
├─ third_party/MX/ # Modular Extensions MX
└─ views/ # views global (errors, evaluasi/*, layout-document-full.php)
Rute pasti ditentukan di application/config/routes.php. Contoh umum:
/→Selamat_datang/antrian→selamat_datang/Antrian/layanan→layanan/Layanan/admin/login→ halaman login admin/admin→ dashboard admin/admin/daftar_tamu,/admin/daftar_kunjungan/recognize→ halaman pengenalan/evaluasi→ halaman evaluasi layanan
-
Kloning & penempatan berkas
- Letakkan source CI di webroot/virtual host. Struktur saat ini:
/var/www/html/tamdes-web/.
- Letakkan source CI di webroot/virtual host. Struktur saat ini:
-
Konfigurasi dasar CI
application/config/config.phpbase_url,encryption_key,csrf_protection
application/config/database.php- Konfigurasi kredensial MySQL/MariaDB.
application/config/autoload.php- Autoload library/helper yang sering dipakai.
-
Modular Extensions MX
- Sudah ada di
third_party/MX. PastikanMY_Controller,MY_Loader, danMY_Routersesuai.
- Sudah ada di
-
Virtual Host / .htaccess
- Contoh
.htaccess:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /tamdes-web/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
- Contoh
-
Folder writable
- Pastikan
application/logs/,application/cache/, dan folder upload (jika ada) writable.
- Pastikan
-
Database
- Import skema DB (jika tersedia).
-
Login Admin
- Periksa logic di
Admin.phpdanM_admin.php.
- Periksa logic di
- Gunakan session & guard untuk halaman admin.
- Validasi form & sanitasi input.
- Aktifkan CSRF protection untuk form publik.
- Batasi tipe/ukuran upload file.
- Tambahkan kebijakan privasi & retensi data.
- 404 routing: cek
routes.php,base_url, RewriteBase.htaccess. - DB error: cek kredensial di
database.php. - Session: pastikan
encryption_keydiisi. - Permission: beri izin write pada folder
logs/,cache/,upload/.
- Export CSV/Excel daftar kunjungan.
- Integrasi nomor antrian ke layar publik + TTS/WA notif.
- API internal untuk integrasi kiosk/QR.
- Audit trail admin.
- Pagination & pencarian server-side.
- UI konsisten dengan layout admin.
Tambahkan file LICENSE (MIT/Apache-2.0) jika dipublikasikan.
- Fork repo ini.
- Buat branch fitur:
git checkout -b fitur/nama-fitur
- Commit perubahan:
git commit -m "feat: tambah X" - Push branch & buka Pull Request.