Arsitektur IMSMART
Gambaran besar
Section titled “Gambaran besar”Setiap aplikasi IMSMART adalah aplikasi PHP yang halamannya dibuat di server. Saat pengguna membuka halaman, server menjalankan kode PHP, membaca database, menyusun HTML, lalu mengirim hasilnya ke browser.
sequenceDiagram
actor U as Pengguna
participant B as Browser
participant S as Apache + PHP (cPanel)
participant DB as MySQL
U->>B: buka halaman tahfidz/login
B->>S: permintaan halaman
S->>S: cek sesi login
S->>DB: baca atau tulis data
DB-->>S: hasil
S->>S: susun HTML
S-->>B: halaman jadi (HTML)
B-->>U: tampil di layar
Satu aplikasi = satu folder
Section titled “Satu aplikasi = satu folder”Aplikasi tidak saling memanggil. Tiap folder berisi file halaman sendiri, konfigurasi database sendiri, dan
folder uploads untuk berkas. Karena itu aplikasi mudah dipindahkan atau dipasang ulang.
sd/ imismarttahfidz_sd/ login.php halaman login dashboard.php halaman utama santri.php kelola santri nilai_input.php input nilai koneksi.php sambungan ke database tahfidz.sql struktur databaseDua pola kode
Section titled “Dua pola kode”| Pola | Dipakai di | Ciri |
|---|---|---|
| PHP native | Hampir semua aplikasi | Satu file = satu halaman; logika dan tampilan ada dalam file yang sama |
| CodeIgniter 3 (MVC) | Raport (SD, MSW, PGTK) | Dipisah menjadi Controller, Model, View; alamat halaman diatur router |
Alur login
Section titled “Alur login”flowchart TD
A["Pengguna isi username dan password"] --> B["Server mencari pengguna di tabel users"]
B --> C{"Cocok?"}
C -- "tidak" --> A
C -- "ya" --> D["Server menyimpan identitas dan peran di sesi"]
D --> E["Halaman berikutnya memeriksa sesi"]
E --> F{"Sudah login<br/>dan peran diizinkan?"}
F -- "belum login" --> A
F -- "peran tidak boleh" --> G["Ditolak"]
F -- "ya" --> H["Halaman tampil"]
H --> I["Logout menghapus sesi"]
Database
Section titled “Database”Memakai MySQL / MariaDB. Setiap aplikasi memiliki database sendiri (misalnya tahfidz, absensiv4,
e-raport, pembayaran), sehingga data antar aplikasi terpisah.
Pengelompokan unit
Section titled “Pengelompokan unit”Aplikasi yang sama dipasang untuk beberapa unit:
apps/ sd/ 7 aplikasi pgtk/ 8 aplikasi msw/ 7 aplikasi yayasan/ 10 aplikasiSetiap unit memiliki salinan aplikasi dan databasenya sendiri.
Integrasi luar
Section titled “Integrasi luar”- WhatsApp (SIDOBE): dipakai Absensi dan SPP untuk mengirim pesan.
- Excel: impor dan ekspor data memakai pustaka PHPExcel.
- Kamera / QR: halaman pindai di Absensi memakai kamera browser.
Cara penerapan
Section titled “Cara penerapan”Berkas aplikasi diunggah ke hosting cPanel, database diimpor dari file .sql, lalu alamat tiap aplikasi dibuka
langsung di browser.