# Website "Sistem Manajemen Pesantren Tunanetra Sam'an" — Static + Portal Mode Siap di-host di **GitHub Pages**. Fitur utama: - **Tema Gelap/Terang** (persisten) - **Mode Kontras Tinggi** (aksesibilitas) - **Kontrol ukuran huruf** (A-, A, A+) - **Portal Mode (client-side gating)**: Admin menekan **Masuk Portal**, memasukkan **kata sandi**, lalu area portal & admin muncul - **Admin Page** untuk menandai data sebagai **Publik** atau **Portal**, kemudian **unduh JSON** hasilnya - Tombol formulir **Microsoft Forms** untuk **Absensi**, **Buku Tamu**, **Izin Penelitian**, dan **Input Data** > ⚠️ **Catatan keamanan:** GitHub Pages adalah hosting statis. "Portal" di sini **bukan** autentikasi aman. Konten tetap dapat diakses oleh orang yang paham teknis. Untuk data sensitif, gunakan backend/auth sesungguhnya (mis. Cloudflare Workers/Netlify Functions + OAuth). ## Struktur Folder ``` . ├── index.html ├── visi-misi.html ├── sejarah.html ├── struktur.html ├── jadwal.html ├── karyawan.html ├── santri.html ├── donasi.html ├── buku-tamu.html ├── penelitian.html ├── portal.html ← Dasbor portal (hanya muncul saat portal aktif) ├── admin.html ← Panel admin untuk set visibilitas dan unduh JSON ├── assets │ ├── css/styles.css │ ├── js/config.js ← ganti tautan Forms & hash kata sandi portal │ ├── js/main.js │ ├── data/*.json ← data yang ditampilkan │ └── img/logo.svg └── .nojekyll ``` ## Konfigurasi Buka `assets/js/config.js`: - Ganti semua URL **Microsoft Forms** sesuai form Anda. - Ganti `admin.passhash` dengan **SHA-256** dari kata sandi portal Anda. Contoh (di konsol browser): ```js crypto.subtle.digest('SHA-256', new TextEncoder().encode('RahasiaSaya!')).then(b=>Array.from(new Uint8Array(b)).map(x=>x.toString(16).padStart(2,'0')).join('')) ``` ## Menandai Data Publik vs Portal - Buka **Admin** (muncul setelah aktifkan portal) → ubah `Visibilitas` per baris → **Unduh JSON** → replace ke `assets/data/*.json` di repo → commit. - Di halaman publik, hanya entri dengan `visibility !== "portal"` yang tampil. ## Deploy ke GitHub Pages 1. Buat repo baru, upload semua file. 2. Settings → Pages → Deploy from a branch → `main` → folder root `/`. 3. Selesai.