PLATFORM SEKOLAH PREMIUM — PHP NATIVE MULTI-TENANT
Paket implementasi awal terintegrasi (Fondasi + Administrasi Tenant)

KOMPONEN
- PHP Native 8.1+, PDO MySQL
- Multi-tenant berdasarkan hostname/domain dan school_id
- Domain/subdomain sekolah melalui tabel school_domains
- Paket Gratis/Berbayar dan masa aktif langganan (administrasi dasar)
- Login, role-based access dasar, audit log, CSRF, session hardening
- Dashboard platform dan dashboard sekolah
- Data sekolah, domain, paket, pengguna, tahun ajaran
- SQL schema lengkap untuk fondasi serta modul tahap berikutnya
- Tidak menyertakan config.php aktif dan tidak menjalankan migrasi otomatis tanpa tindakan admin

PERSYARATAN
- PHP 8.1 atau lebih baru
- MySQL 8 / MariaDB yang mendukung InnoDB dan utf8mb4
- Ekstensi PDO MySQL, mbstring (disarankan)
- HTTPS aktif
- cPanel dengan document root ke folder public/

INSTALASI AMAN
1. Ekstrak ZIP di komputer.
2. Unggah folder aplikasi ke hosting di luar public_html bila memungkinkan.
   Contoh: /home/USER/sekolah_app
3. Atur document root domain ke folder /home/USER/sekolah_app/public.
   Jika hosting tidak mendukung, tempatkan isi folder public ke public_html dan simpan app/
   serta config.php di luar public_html; sesuaikan path index.php.
4. Salin config.sample.php menjadi config.php di root aplikasi (bukan folder public).
5. Isi kredensial database dan APP_URL. Jangan unggah kredensial ke repositori publik.
6. Buat database dan user MySQL di cPanel, lalu berikan hak akses ke database.
7. Impor database/schema.sql melalui phpMyAdmin.
8. Buka /install.php satu kali untuk membuat akun Super Admin pertama.
9. Setelah berhasil, hapus public/install.php atau pindahkan ke luar webroot. Buat file
   storage/installed.lock sesuai instruksi yang tampil. Installer menolak berjalan bila lock ada.
10. Login di /login.php. Buat sekolah dan domain dari dashboard platform.
11. Untuk domain/subdomain tenant, arahkan DNS dan document root ke aplikasi yang sama.
    Domain harus didaftarkan lebih dahulu di menu domain sekolah. Wildcard DNS/SSL dikonfigurasi
    di cPanel/provider; aplikasi tidak membuat DNS atau sertifikat otomatis.

KEAMANAN / BATASAN PAKET
- Paket ini adalah fondasi operasional yang dapat diuji, bukan klaim bahwa semua modul akademik,
  BK/BP, pembayaran QRIS, PPDB, dan kantin telah selesai.
- Pembayaran sekolah pada paket ini belum terhubung ke payment gateway. QRIS statis dilakukan
  dengan bukti dan verifikasi manual pada paket modul keuangan berikutnya.
- Akun admin sekolah tidak otomatis bisa melihat data sekolah lain.
- Gunakan HTTPS, backup database sebelum perubahan, dan jangan menghapus storage/logs.
- Untuk produksi, hapus installer setelah akun awal dibuat dan ganti password awal.
- File config.php tidak disediakan agar kredensial tidak tertimpa. Gunakan config.sample.php.
