E-Aspirasi Grisawangi

Dokumentasi Resmi v3.0

E-Aspirasi Grisawangi

Sistem Pusat Layanan Aspirasi Digital — SMK PGRI 1 Giri, Banyuwangi

e-aspirasigrisawangi.my.id Tersedia di Android Aman & Terenkripsi

5

Portal

16+

Menu Admin

4

Channel Notif

Gambaran Umum

E-Aspirasi Grisawangi adalah platform digital terpadu milik SMK PGRI 1 Giri yang dirancang untuk memfasilitasi komunikasi dua arah antara siswa, orang tua, dan pihak sekolah secara transparan, aman, dan terstruktur.

Tujuan Sistem

Menciptakan saluran komunikasi yang aman dan terdokumentasi antara siswa dan sekolah.

5 Pengguna

Siswa, Admin/Guru, Portal Guru, Orang Tua, Petugas El Point (OSIS).

Keamanan Berlapis

Supabase (PostgreSQL) + bcrypt + PIN siswa + pertanyaan keamanan + lock screen + timeout + gembok data.

Notif Multi-Channel

WhatsApp (Fonnte), Push (OneSignal), Telegram, In-App realtime.

🔗 Alamat & Akses Portal

Portal Siswa (Utama)e-aspirasigrisawangi.my.id
Portal Admin…/admin
Portal Guru…/portal-guru
Portal Orang Tua…/elakses
Portal El Point…/elpoint
Halaman Penilaian…/penilaian
Status Sistem…/status
Dokumentasi…/dokumentasi

Login Portal Siswa — PIN + Pertanyaan Keamanan

e-aspirasigrisawangi.my.id

Siswa
Tidak ada password. Login pakai identitas + PIN pribadi yang dibuat sendiri.

🆕 Login Pertama Kali (Aktivasi PIN)

  1. Buka e-aspirasigrisawangi.my.id.
  2. Isi Nama Lengkap — pilih dari saran autocomplete.
  3. Isi Kelas (format sama dengan sekolah: X RPL 1).
  4. Pilih Jenis Kelamin.
  5. Isi Tanggal Lahir (harus cocok persis).
  6. Klik "Masuk Aplikasi".
  7. Sistem minta kamu buat PIN 6 digit.
  8. Isi pertanyaan keamanan + jawaban (untuk recovery).
  9. Simpan → langsung masuk dashboard.
✅ Setelah PIN Aktif: Kamu tidak perlu isi tanggal lahir lagi di login berikutnya.

🔁 Login Berikutnya (Validasi PIN)

  1. Buka portal → isi Nama Lengkap + Kelas.
  2. Klik tombol "Validasi Sekarang".
  3. Masukkan PIN yang sudah kamu set.
  4. Klik Masuk → langsung ke dashboard.
🔑 Lupa PIN? Klik "Lupa PIN?" → jawab pertanyaan keamanan → atur PIN baru. Jika salah 3x, tunggu 5 menit.
Jika Login Gagal:
  • Periksa ejaan nama (harus persis buku induk)
  • Pastikan kelas & tgl lahir benar
  • Gunakan Kode Darurat jika masih gagal
  • Hubungi admin untuk verifikasi

Fitur Portal Siswa

Dashboard

Statistik laporan, banner pengumuman, mode gelap 🌙.

Lapor Aspirasi

Kategori + tgl + WA + detail + max 3 foto bukti.

Kotak Masukan

Saran/ide tanpa lampiran foto.

Jadwal Konseling

Pilih tujuan, tanggal, alasan.

Cek Status Tiket

Search + filter status + lihat balasan admin.

Point Pelanggaran

Total poin + sanksi + riwayat.

Profil & QR

Edit data + tampilkan QR absensi.

Beri Penilaian

1-5 bintang + komentar (…/penilaian).

Login Portal Admin

e-aspirasigrisawangi.my.id/admin

Guru / Staf
Akun dibuat Super Admin. Login pakai email + password (bcrypt). Hak akses sesuai jabatan.
  1. Buka …/admin.
  2. Isi Email terdaftar.
  3. Isi Password (ikon 👁️ untuk show/hide).
  4. Klik "Masuk Sistem".
  5. Sistem memuat role + akses fitur.
  6. Pilih Semester saat diminta (login pertama).
🔑 Ganti Password: Ikon gerigi (kanan atas) → Ubah Kata Sandi.
🎬 Mode Demo: Tombol "Lihat Demo Tampilan" untuk preview tanpa login.

Dashboard Admin

Ringkasan aktivitas sistem

📊 Stat Cards (4)

Total Laporan

+ sub "X menunggu"

Total Masukan

+ sub "X menunggu"

Konselor

+ sub "X menunggu"

Total Siswa

Siswa aktif

📅 Filter Periode

7 Hari · 1 Bulan · 1 Tahun · Semua

📈 4 Grafik Interaktif (Chart.js)

  • Tren Pengajuan per Hari — line chart, max 14 hari
  • Distribusi Tipe — donut (Laporan/Masukan/Konselor)
  • Status Penanganan — bar (Menunggu/Diproses/Selesai/Ditolak)
  • Kategori Laporan Terbanyak — bar horizontal top 6

🎯 Fitur Otomatis

  • Realtime Polling 30 detik — deteksi laporan baru → toast notif
  • Stat cards auto-update

Layanan Utama

Tiket Laporan

laporan
  • Filter: kelas · periode (7H/1B/1Y/Semua)
  • Search: pengirim · kategori · isi pesan
  • Detail → isi + lampiran + thread balasan
  • Balas → kirim WA + Push ke siswa
  • Ubah status: Menunggu/Diproses/Selesai/Ditolak (auto-notif)
  • Export Excel + PDF
  • Bulk: Proses · Selesai · Tolak · Hapus

Kotak Masukan

masukan

Sama seperti Tiket Laporan, tapi untuk masukan siswa.

Jadwal Konselor

konselor

Kelola permintaan konseling: konfirmasi · tolak · selesai · balas via WA.

Rekap Absensi

absensi

Kolom: Nama · Kelas · Total Hadir · Tepat Waktu · Terlambat · Sakit · Izin · Alpa · Aksi

Filter: Semester (★=aktif) · Kelas · Periode 1H/7H/1B/1S/ALL

  • 📷 Galeri Foto (selfie + surat, 300 terbaru)
  • Detail per siswa → riwayat harian + thumbnail
  • Lightbox foto full-screen
  • Bulk reset absensi massal
  • Export Excel kolom lengkap

Poin Pelanggaran

poin

Kolom: Nama · NISN · Kelas · Total Poin · Sanksi Terakhir

Aksi: Edit manual · Reset ke 0 · Bulk reset · Bulk set

Tabel Sanksi Otomatis:

Range PoinTindak LanjutKompensasi
≤ 10Tim ketertiban + wali kelasPeringatan lisan
≤ 20Tim ketertiban + wali kelasBersihkan lingkungan
≤ 30Panggil orang tua (SP1)Peringatan tertulis
≤ 50Panggil orang tua (SP2)Surat pernyataan
≤ 100Panggil ortu + skorsingSkorsing
> 100Konferensi kasusDrop out

Master Pelanggaran (Buku Saku)

buku_saku

Deskripsi · Kategori · Bobot Poin

  • Edit inline via modal popup
  • Bulk hapus massal
  • Import Excel + template

Data Siswa

Data Master Siswa

siswa

Kolom: Siswa (nama+NISN+WA) · Tgl Lahir · Kelas · Status · Aksi

Aksi per baris:

  • ✏️ Edit · 📱 Lihat QR · 🚫 Blokir/Aktifkan · 🗑️ Hapus
  • 📦 Unduh QR massal (ZIP semua siswa)

Modal Edit/Tambah:

  • Nama · NISN · NIK · Kelas (dropdown) · Tgl Lahir · WA · Status
  • 🔐 PIN & Keamanan: status PIN (✅/⚠️) · jawaban keamanan · tombol Reset PIN

Bulk Actions:

  • Naik Kelas — otomatis (X→XI→XII→Alumni) atau manual
  • Blokir / Buka Blokir
  • Unduh QR (pilihan/semua)
  • Hapus massal

Data Alumni

alumni

Kolom: Nama · NISN · Kelas Terakhir · Tgl Lulus · Aksi

Aksi: Kembalikan ke Siswa Aktif

Data Master Kelas

kelas

Tambah/Edit/Hapus · Bulk hapus · Import Excel

Anggota El Point

anggota_elpoint

Kolom: Nama · Username · Role (OSIS/Sekretaris) · Aksi

Akun untuk login portal El Point (scanner QR).

Guru & Akademik

Master Akun & Guru

guru
Login Portal Guru = NAMA + password.

Kolom: Nama (+chip mapel/kelas) · NIP/WA · Mapel · Kelas · Password (Terpasang/Belum) · Status

Form Guru:

  • Nama Lengkap — autocomplete dari Manajemen Nama Guru (yang sudah punya akun = disabled)
  • Nama Panggilan · NIP · No WA · Password (min 6)
  • Mapel (max 5 dari master) — chip picker
  • Kelas Diajarkan (max 15 dari master) — chip picker
  • Status: Aktif / Nonaktif / Diblokir

Bulk Actions:

Blokir · Buka Blokir · Nonaktifkan · Hapus Akun

Manajemen Nama Guru

guru_nama

Daftar master nama guru (tanpa harus punya akun). Nama di sini muncul sebagai saran autocomplete saat buat akun guru.

Kolom: Nama · NIP · WA · Status Akun (Sudah/Belum punya akun)

Laporan Guru

lapguru

Laporan yang dibuat guru dari Portal Guru (pelanggaran siswa).

Kolom: Guru · Siswa · Mapel · Tgl&Jam · Jenis · Poin · Keterangan · Status · Aksi

Aksi: Detail (modal) · Hapus

Master Mapel

mapel

Kolom: Nama · Kode · Maks Guru · Jumlah Guru Pengampu · Jadwal · Status

  • ⚠️ Warning jika guru pengampu > maks guru
  • Bulk aktif/nonaktif/hapus
  • Import Excel + template

Master Semester

semester

Kolom: Tahun Ajaran · Semester · Label (auto) · Periode · Status

  • Set Aktif — semua lain otomatis non-aktif + sync ke pengaturan
  • Label otomatis: {tahun_ajaran} {semester}
  • Import Excel + template

Manajemen Jam Mapel

jam_mapel

Kolom: Jam ke-N · Durasi (menit) · Contoh waktu (mulai 07:00)

  • Isi Otomatis — generate jam 1 s/d N durasi seragam
  • Bulk Samakan Durasi untuk semua terpilih
  • Import Excel + template

Manajemen Hari

hari

Kalender tanggal otomatis per bulan. Pilih bulan via dropdown.

Kolom:

Tanggal · Hari · Libur? · Keterangan · Jam Pelajaran · Sumber

Sumber:

  • AUTO — Sabtu/Minggu otomatis libur
  • MANUAL — diatur admin
  • CUTI BERSAMA / LIBUR NASIONAL — hasil sync

Fitur:

  • Sinkron Libur Nasional dari API kalender Indonesia
  • Auto-sync saat buka bulan baru
  • Modal edit per tanggal: Status · Keterangan · Jam mulai · Jumlah jam · Jam pulang · Istirahat (pause jam) · Agenda (geser jam) · Preview pembagian jam
  • Bulk: jadikan libur/masuk/atur jam/reset

Manajemen Jadwal

jadwal

Kolom: Hari · Jam · Kelas · Mapel · Guru · Drop Point

Filter: Hari · Kelas · Guru

Form: Hari · Kelas · Mapel · Guru (autocomplete) · Jam mulai/selesai · Drop Point

Deteksi Bentrok Otomatis: warning jika guru/kelas yang sama sudah punya jadwal di jam yang sama.

Admin & Hak Akses

Manajemen Admin

admin

Kolom: Nama (+WA) · Email · Jabatan · Aksi

  • Tambah admin (email + password min 8 char)
  • Edit nama/WA/jabatan/agama
  • 🔒 Gembok Super Admin — akun superadmin terkunci, klik gembok 3x + PIN 2410
  • Bulk blokir/buka/hapus

Jabatan & Rules

role

Kolom: Nama Jabatan · Akses (badge menu + tombol) · Aksi

Akses 2 Lapis:

  1. Akses Menu — halaman apa yang muncul di sidebar
  2. Akses Tombol (aksi_*) — tombol apa yang boleh diklik

Katalog Aksi:

GrupAksi
Dataaksi_tambah aksi_edit aksi_hapus aksi_impor aksi_ekspor
Layananaksi_balas aksi_blokir aksi_reset_pin aksi_reset_data aksi_naik_kelas aksi_qr aksi_foto
Sistemaksi_sistem

Preset:

  • Semua Menu · Semua Tombol · Hanya Lihat · Kosongkan
Penanda aksi_v2: Jabatan versi lama (tanpa penanda) tetap boleh semua tombol — tidak ada yang tiba-tiba terkunci.

Fitur Tambahan

Pengumuman

pengumuman

Form: Judul · Isi · Tipe (Info/Penting/Darurat) · Kirim WA (Tidak/Ya)

Tampil sebagai banner di beranda siswa. Riwayat 20 terbaru + hapus.

Statistik Penilaian

penilaian_admin

4 Stat Cards:

  • Rata-rata bintang (dari 5)
  • Total penilaian
  • Bintang 4-5 (positif)
  • Bintang 1-2 (negatif)

Grafik distribusi bintang + list komentar terbaru + tabel semua penilaian + Export Excel

Menu Siswa Tambahan

menu_siswa
  • Toggle Aktifkan grup "Menu Siswa" (ON/OFF tampil di sidebar siswa)
  • Tambah menu: Nama · Icon (📖/🎮/📅/🔗 Link gambar) · Link Tujuan (http/https)
  • Edit / hapus menu
  • Muncul sebagai grup di sidebar siswa

Pengaturan Tampilan Web

tampilan_web

3 Form (masing-masing disimpan sendiri):

  1. Nama Web — tampil di judul tab, halaman login siswa, popup welcome
  2. Logo — link direct gambar (.png/.jpg/.webp) + preview + auto update favicon + sidebar admin
  3. Intro Video — link direct video (.mp4) + preview player

Kosongkan untuk kembali ke default.

Sistem Admin

Log Sistem

history

Kolom: Waktu · Aktor · Role · Aksi · Detail

Filter periode (7H/1B/1Y/Semua) + filter role

Manajemen API Key

apikey

Kolom: Nama Aplikasi · API Key · Dibuat · Status · Aksi

  • Generate otomatis EA-KEY-XXXXXXXXXXXX
  • Status: Aktif / Dicabut (bisa toggle)
  • Bulk cabut/aktifkan/hapus
  • Tombol ? → Tutorial lengkap (contoh curl, Fetch, PHP, ENV, action list)

Pengaturan Web

settings
📱 Fitur UI Siswa

Kelas read-only · Tampilkan poin · Brosur aktif + link · Video intro · BGM audio · Popup komentar

👨‍🏫 Portal Guru

Batasi jadwal ON/OFF · Manual absen: aktifkan · wajib geofence · jam terlambat · poin terlambat · hari libur custom · lokasi sekolah (lat/lon/radius/maps key)

🔑 API Keys Eksternal

Fonnte #1 & #2 · OneSignal App ID + REST Key · VAPID Private + Public · Telegram Bot + Chat ID · FreeImage + imgbb · Google Sheets Key + Sheet ID (dengan parser + tutorial Apps Script)

📞 Kontak Bantuan

3 kontak dengan label kustom

⚡ Fitur Otomatis

Reminder pending · Laporan berkala · Backup data · Sync Google Sheets

📱 Template Pesan WA

Template utama (placeholder {nama} {tipe} {kategori} {status} {deskripsi}) + footer tanda tangan

Manajemen Database

db

Status Server:

Cek koneksi + env keys + bucket + jumlah tabel

Backup Sekarang:

  • Unduh Langsung (.sql) — file langsung terunduh
  • Simpan & Buat Link — simpan ke Supabase Storage, link 7 hari

Validasi Otomatis:

✓ Lolos pemeriksaan restore + ringkasan per tabel

Restore dari .sql:

  • Cek File (aman) — hanya periksa tanpa ubah
  • Restore dari File — replace semua data (konfirmasi klik + ketik "RESTORE")
  • Backup pengaman otomatis sebelum restore
  • Transactional: gagal di tengah → data lama utuh

Portal Guru

portal-guru.html

Guru

🔑 Login

  1. Buka portal-guru.html
  2. Ketik nama (min 2 huruf) → pilih dari dropdown
  3. Masukkan password
  4. Klik Masuk Portal Guru
  5. Pilih semester aktif

⚙️ Fitur

🏠 Dashboard

Kartu sambutan + jumlah kelas/mapel

👤 Edit Profil

Nama panggilan, NIP, WA, Mapel (5), Kelas (15) + Ubah Password

👥 Daftar Siswa

Filter semester+kelas+periode, detail absensi

📅 Absen Hari Ini

Single-day / range, lampiran foto

🚩 Laporkan Siswa

Multi siswa, jenis, poin otomatis

📋 Catatan Absen

Salinan pribadi, bisa edit/hapus

📜 Riwayat Laporan

+ tombol batalkan

📨 Kirim Masukan

Kategori + isi

📊 Rekap Semester

Per kelas / per orang

❓ Bantuan

Panduan singkat

Portal El Point

…/elpoint

OSIS

Untuk petugas OSIS & sekretaris kelas.

  • 🔍 Scanner QR Absensi — catat Hadir/Terlambat
  • ⚖️ Tambah Poin Pelanggaran — pilih jenis → poin ditambahkan
  • 📷 Akses kamera wajib diizinkan
Dapatkan QR siswa: Siswa: menu Profil → Tampilkan QR · Admin: Data Siswa → Unduh Semua QR (ZIP)

Portal Orang Tua

…/elakses

Orang Tua

Login

  1. Buka portal
  2. Masukkan Nama Lengkap + Tanggal Lahir anak
  3. Klik Lihat Data Anak

Fitur

  • 👁️ Pantau data anak (absensi + poin + sanksi)
  • 📊 Detail lengkap per siswa
  • 🔍 Pencarian + filter kelas

Sistem Notifikasi

💬

WhatsApp (Fonnte)

Perubahan status tiket → WA otomatis.

🔔

Push (OneSignal)

Ke HP siswa pengguna Android.

✈️

Telegram

Laporan baru → grup Telegram admin.

🔕

In-App

Lonceng header + badge + bunyi + toast admin polling.

Syarat WA aktif: Token Fonnte terisi + HP online + nomor siswa terisi.

Jadwal & Gating

Portal Guru hanya bisa lihat absensi saat sedang mengajar.

StatusBoleh?Pesan
mengajar✅Anda mengajar MAPEL di KELAS sampai jam X
istirahat✅Istirahat sampai X
agenda✅Ada agenda sampai X
libur✅Hari ini libur
tidak_mengajar❌Jadwal berikutnya: ...
belum_diatur❌Belum diatur admin
error❌Server error
Override: setGuruBatasiJadwal = false → guru bisa lihat semua kelas.

Poin & Predikat

Poin Pelanggaran

AksiPoin
Alfa Saat Mapel+10
Melanggar Peraturan+6
Makan di Kelas+6
Mengganggu Pembelajaran+6
Master Pelanggaransesuai DB
Terlambat Absen Manualsetting (default 6)

Predikat

≤ 10

Baik

11–30

Cukup

31–50

Perlu Perhatian

> 50

Bermasalah

Filter Tanggal & Periode

KodeLabelRentang
1H1 HariHari ini
7H7 Hari7 hari terakhir
1B1 Bulan30 hari
1S1 SemesterSemester aktif
TGLCustomSingle / Range
ALLSemuaTanpa batas

Semua filter memakai WIB (+07:00).

Status Sistem

Buka …/status — auto-refresh 60 detik.

LayananFungsi
Supabase DBPenyimpanan data utama
Netlify FunctionsBackend API
OneSignalPush notif
FonnteWA otomatis
WebKetersediaan halaman

Lock Screen

Kunci layar admin dengan PIN 4 digit.

Setup

  1. Klik ikon 🔒 di header → Atur PIN
  2. Masukkan PIN 4 digit (2x konfirmasi)
  3. PIN di-hash SHA-256 + email

Kunci Layar

  • Klik ikon 🔒 → layar terkunci
  • Masuk PIN 4 digit → unlock
  • Auto-show jika refresh halaman saat admin_locked=1

Timeout Sesi & Idle Logout

⏱️ Timeout Sesi

  • Per-email — diatur via Profil → Timeout Sesi
  • Range: 1–1440 menit (default 2 menit)
  • Disimpan di pengaturan (key: admin_timeout_<email>)

💤 Idle Auto-Logout

  • Warning chip 15 detik terakhir (bawah kiri, merah)
  • Auto-logout → redirect ke login
  • Reset idle oleh: mousemove, mousedown, keydown, click, scroll, touchstart, wheel

Gembok Data Super Admin

Mencegah admin menghapus/mengedit role atau akun superadmin secara tidak sengaja.

Cara Buka

  1. Klik ikon 🔒 di baris terkunci
  2. Klik 3x berturut-turut (max jeda 1,5 detik)
  3. Masukkan PIN: 2410
  4. Data siap diedit

Yang Terkunci

  • Akun hak_akses_admin dengan email mengandung superadmin
  • Role daftar_role dengan nama Super Admin
Bulk actions otomatis filter — data terkunci tidak akan ikut terpilih.

Mode Demo

Masuk via tombol "Lihat Demo Tampilan" di halaman login.

  • ✅ Bisa tambah/edit/hapus data (in-memory)
  • ❌ Tidak tersimpan ke DB
  • ❌ Data hilang saat reload
  • ❌ Lock screen & PIN tidak tersedia
  • ❌ Menu teknis (Manajemen Database, dll.) tidak tersedia
  • ✅ Banner kuning di atas: "MODE DEMO" + tombol keluar

RBAC / Guard Tombol

Sistem pembatasan tombol berdasarkan jabatan.

Cara Kerja

  • Wrap fungsi global — fungsi aksi dibungkus, cek izin sebelum jalankan
  • Hide tombol — tombol dengan onclick yang tidak diizinkan disembunyikan
  • MutationObserver — tombol yang dirender belakangan tetap discan
Super Admin selalu bisa — semua aksi diizinkan tanpa cek RBAC.
Penting: Ini pembatasan UI saja, bukan pengganti validasi server.

Integrasi Backend (/api/notify)

Helper Fungsi

async function callBackend(payload)       // POST lenient (error diabaikan)
async function callBackendStrict(payload) // POST ketat (throw jika error)
async function _ambilSemua(tableBase)     // Paginasi otomatis (1000 baris/request)

Action supabase_get

cariGuru, loginGuru, getAllKelas, cariSiswa, getAllSiswa,
getLaporanGuru, getAllAspirasi, getAllAdmins, getAllRoles,
getAllAbsensi, getAllApiKeys, getAllPelanggaran, getAllElpoint,
getLogHistory, getPengaturan, getPengaturanByKey, getData,
getCurrentAdmin, cariSiswaLapor

Action supabase_post

verifyGuruPassword, updateGuru, insertGuru, insertLaporanGuru,
batalLaporanGuru, insertLog, insertData, updateData, deleteData,
updateWhere, updatePengaturan, updateAspirasiStatus, insertBalasan,
salinCatatanAbsen, cekJadwalGuru, insertAdmin, setSemesterAktif,
kirimPengumumanWA, checkReminder, laporanBerkala, backupData,
syncGoogleSheets, syncLibur, backupDatabase, restoreDatabase,
daftarBackup, linkBackup, hapusBackup, statusServer

Struktur Data Supabase

TabelDeskripsi
guruMaster akun guru (nama, nip, no_wa, mapel, kelas_diajarkan, password_hash)
manajemen_nama_guruDaftar nama guru (link ke id_guru)
siswaData siswa (+login_pin, security_answer)
alumniArsip siswa lulus
absensiAbsensi (id_siswa, kelas, jenis, is_late, lampiran, semester)
laporan_guruLaporan pelanggaran dari Portal Guru
aspirasiLaporan/masukan/konselor siswa
balasan_laporanThread balasan admin per aspirasi
pengumumanPengumuman (judul, isi, tipe)
penilaianPenilaian siswa (bintang, komentar)
daftar_kelasMaster kelas
master_mapelMaster mapel (nama, kode, max_guru, aktif)
master_semesterMaster semester (label, aktif, urutan, tgl_mulai, tgl_akhir)
master_pelanggaranBuku saku pelanggaran (kelakuan, kategori, point)
manajemen_jam_mapelJam ke-N + durasi
manajemen_hariKalender (tanggal, status, jam_mulai, istirahat, agenda)
jadwal_mapelJadwal (hari, kelas, mapel, guru, jam_ke_mulai/selesai)
hak_akses_adminAkun admin (email, role_name, agama)
daftar_roleJabatan + akses_fitur (JSON)
anggota_elpointAkun OSIS/sekretaris
api_keysAPI Key eksternal
log_historyLog aktivitas user
pengaturanKey-value settings (label, WA token, template, dll.)
catatan_absen_guruCatatan absen pribadi guru
riwayat_kelas_siswaRiwayat pindah kelas

Fungsi Global

State Global

userData          // admin login
guruData          // guru login (Portal Guru)
isSuperAdminUnlocked // flag
globalDataStore   // cache data per view
currentFilteredData // hasil filter tabel
currentPage, rowsPerPage // paginasi
_selectedSet      // bulk selection
_cacheSemester, _cacheMapel, _cachePelanggaran // master cache
_jadwalNow        // status jadwal guru

Fungsi Kategori

Login & Sesi

checkLoginState, setupDashboard, handleLogout, masukDemoMode, keluarDemoMode

Navigasi

switchView, switchViewDemo, renderSidebarMenu, cariMenu, toggleSidebarMobile

Dashboard

refreshDashboardStats, setDashboardFilter, renderDashboardCharts

Tabel

loadDataTable, renderDataTableHeader, renderDataTableBody, filterTableLokal, changePage

Bulk

piliSemua, updateBulkBar, hideBulkBar, getCheckedIds, toggleCheckAll, bulkHapus, bulkBlokir, bulkNaikKelas

Form

bukaModalData, bukaModalRole, bukaModalKelas, bukaEditSiswa, bukaModalBalasan

Import/Export

prosesImportExcel, exportToExcel, exportToPDF, exportPenilaianExcel

QR

lihatQRSiswa, unduhQRSiswaCanvas, downloadSemuaQR, buatQRCard

Lock & Idle

kunciLayar, bukaKunci, aturPinKunci, mulaiIdleWatcher, logoutOtomatis

Gembok

klikGembok, mintaPinBuka, _adminTerkunci, _roleTerkunci

RBAC

bisaAksi, labelAkses, pindaiHakAksesTombol

Fitur Otomatis

jalankanReminder, jalankanLaporanBerkala, jalankanBackup, jalankanSyncSheets

DB

mjDb, dbCekStatus, dbBackup, dbDaftar, dbRestoreFile, dbRestoreStorage

Semester Admin

pilihSemesterAdmin, _rentangSemAdmin, _labelSemAdmin

FAQ

Lupa PIN siswa?

Klik "Lupa PIN?" → jawab pertanyaan keamanan → atur PIN baru. Admin juga bisa reset via Data Siswa → Edit → Reset PIN.

Tidak perlu isi tgl lahir lagi?

Benar. Setelah PIN di-set, login berikutnya cukup Nama + Kelas + PIN.

Login Portal Guru "Belum waktunya mata pelajaran"?

Portal Guru membatasi akses hanya saat mengajar. Cek banner jadwal. Admin bisa matikan pembatasan di Pengaturan Web → Portal Guru.

Bagaimana cara unduh QR massal?

Data Siswa → centang siswa (atau Pilih Semua) → Tindakan → Unduh QR. Bisa pilih siswa terpilih atau semua → hasil ZIP berisi PNG per siswa.

Gembok superadmin tidak bisa dibuka?

Klik ikon 🔒 3x berturut-turut (max jeda 1,5 detik antar klik) → masukkan PIN 2410.

Apa itu aksi_v2 di role?

Penanda jabatan sudah memakai pembatasan tombol. Jabatan lama (tanpa penanda) tetap boleh semua tombol — tidak ada yang tiba-tiba terkunci. Edit & simpan ulang untuk memakai pembatasan.

Mode Demo datanya hilang?

Benar. Mode demo menyimpan data di memori browser saja — hilang saat reload. Untuk data nyata, login dengan akun.

Restore database aman?

Ya. Sistem membuat backup pengaman otomatis sebelum restore, dan restore bersifat transactional (gagal di tengah = data lama utuh).

Notifikasi WA tidak masuk?

Cek: (1) Token Fonnte terisi, (2) HP Fonnte online, (3) Nomor siswa terisi.

Troubleshooting

MasalahSolusi
Login gagal "Password salah"Cek hash bcrypt / reset password via admin
"Server tidak mengembalikan jadwal"Deploy ulang notify.js terbaru
Tabel kosong / error schemaJalankan setup_database.sql terbaru di Supabase
Data absensi kosongFilter pakai id_siswa=in.(...) — sudah diatasi
Semester tidak sinkronLogout → login ulang, pilih semester
Poin tidak masuk setelah laporanCek status di laporan_guru (harus Selesai)
Push notif tidak masukInstall APK + izinkan notifikasi
Backup gagalCek SUPABASE_SERVICE_ROLE_KEY di Netlify env
Restore ditolakKetik persis RESTORE di konfirmasi
QR tidak generatePastikan NISN siswa terisi

Kontak Bantuan

E-Aspirasi Grisawangi v3.0 — Dokumentasi Resmi

SMK PGRI 1 Giri, Banyuwangi · e-aspirasigrisawangi.my.id