E-Aspirasi Grisawangi
Sistem Pusat Layanan Aspirasi Digital — SMK PGRI 1 Giri, Banyuwangi
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
e-aspirasigrisawangi.my.id…/admin…/portal-guru…/elakses…/elpoint…/penilaian…/status…/dokumentasiLogin Portal Siswa — PIN + Pertanyaan Keamanan
e-aspirasigrisawangi.my.id
🆕 Login Pertama Kali (Aktivasi PIN)
- Buka
e-aspirasigrisawangi.my.id. - Isi Nama Lengkap — pilih dari saran autocomplete.
- Isi Kelas (format sama dengan sekolah:
X RPL 1). - Pilih Jenis Kelamin.
- Isi Tanggal Lahir (harus cocok persis).
- Klik "Masuk Aplikasi".
- Sistem minta kamu buat PIN 6 digit.
- Isi pertanyaan keamanan + jawaban (untuk recovery).
- Simpan → langsung masuk dashboard.
🔁 Login Berikutnya (Validasi PIN)
- Buka portal → isi Nama Lengkap + Kelas.
- Klik tombol "Validasi Sekarang".
- Masukkan PIN yang sudah kamu set.
- Klik Masuk → langsung ke dashboard.
- 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
Statistik laporan, banner pengumuman, mode gelap 🌙.
Kategori + tgl + WA + detail + max 3 foto bukti.
Saran/ide tanpa lampiran foto.
Pilih tujuan, tanggal, alasan.
Search + filter status + lihat balasan admin.
Total poin + sanksi + riwayat.
Edit data + tampilkan QR absensi.
1-5 bintang + komentar (…/penilaian).
Login Portal Admin
e-aspirasigrisawangi.my.id/admin
- Buka
…/admin. - Isi Email terdaftar.
- Isi Password (ikon 👁️ untuk show/hide).
- Klik "Masuk Sistem".
- Sistem memuat role + akses fitur.
- Pilih Semester saat diminta (login pertama).
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 Poin | Tindak Lanjut | Kompensasi |
|---|---|---|
| ≤ 10 | Tim ketertiban + wali kelas | Peringatan lisan |
| ≤ 20 | Tim ketertiban + wali kelas | Bersihkan lingkungan |
| ≤ 30 | Panggil orang tua (SP1) | Peringatan tertulis |
| ≤ 50 | Panggil orang tua (SP2) | Surat pernyataan |
| ≤ 100 | Panggil ortu + skorsing | Skorsing |
| > 100 | Konferensi kasus | Drop 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
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 liburMANUAL— diatur adminCUTI 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
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:
- Akses Menu — halaman apa yang muncul di sidebar
- Akses Tombol (aksi_*) — tombol apa yang boleh diklik
Katalog Aksi:
| Grup | Aksi |
|---|---|
| Data | aksi_tambah aksi_edit aksi_hapus aksi_impor aksi_ekspor |
| Layanan | aksi_balas aksi_blokir aksi_reset_pin aksi_reset_data aksi_naik_kelas aksi_qr aksi_foto |
| Sistem | aksi_sistem |
Preset:
- Semua Menu · Semua Tombol · Hanya Lihat · Kosongkan
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):
- Nama Web — tampil di judul tab, halaman login siswa, popup welcome
- Logo — link direct gambar (.png/.jpg/.webp) + preview + auto update favicon + sidebar admin
- 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
Kelas read-only · Tampilkan poin · Brosur aktif + link · Video intro · BGM audio · Popup komentar
Batasi jadwal ON/OFF · Manual absen: aktifkan · wajib geofence · jam terlambat · poin terlambat · hari libur custom · lokasi sekolah (lat/lon/radius/maps key)
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)
3 kontak dengan label kustom
Reminder pending · Laporan berkala · Backup data · Sync Google Sheets
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
🔑 Login
- Buka
portal-guru.html - Ketik nama (min 2 huruf) → pilih dari dropdown
- Masukkan password
- Klik Masuk Portal Guru
- Pilih semester aktif
⚙️ Fitur
Kartu sambutan + jumlah kelas/mapel
Nama panggilan, NIP, WA, Mapel (5), Kelas (15) + Ubah Password
Filter semester+kelas+periode, detail absensi
Single-day / range, lampiran foto
Multi siswa, jenis, poin otomatis
Salinan pribadi, bisa edit/hapus
+ tombol batalkan
Kategori + isi
Per kelas / per orang
Panduan singkat
Portal El Point
…/elpoint
Untuk petugas OSIS & sekretaris kelas.
- 🔍 Scanner QR Absensi — catat Hadir/Terlambat
- ⚖️ Tambah Poin Pelanggaran — pilih jenis → poin ditambahkan
- 📷 Akses kamera wajib diizinkan
Portal Orang Tua
…/elakses
Login
- Buka portal
- Masukkan Nama Lengkap + Tanggal Lahir anak
- 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.
Jadwal & Gating
Portal Guru hanya bisa lihat absensi saat sedang mengajar.
| Status | Boleh? | 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 |
setGuruBatasiJadwal = false → guru bisa lihat semua kelas.Poin & Predikat
Poin Pelanggaran
| Aksi | Poin |
|---|---|
| Alfa Saat Mapel | +10 |
| Melanggar Peraturan | +6 |
| Makan di Kelas | +6 |
| Mengganggu Pembelajaran | +6 |
| Master Pelanggaran | sesuai DB |
| Terlambat Absen Manual | setting (default 6) |
Predikat
≤ 10
Baik
11–30
Cukup
31–50
Perlu Perhatian
> 50
Bermasalah
Filter Tanggal & Periode
| Kode | Label | Rentang |
|---|---|---|
| 1H | 1 Hari | Hari ini |
| 7H | 7 Hari | 7 hari terakhir |
| 1B | 1 Bulan | 30 hari |
| 1S | 1 Semester | Semester aktif |
| TGL | Custom | Single / Range |
| ALL | Semua | Tanpa batas |
Semua filter memakai WIB (+07:00).
Status Sistem
Buka …/status — auto-refresh 60 detik.
| Layanan | Fungsi |
|---|---|
| Supabase DB | Penyimpanan data utama |
| Netlify Functions | Backend API |
| OneSignal | Push notif |
| Fonnte | WA otomatis |
| Web | Ketersediaan halaman |
Lock Screen
Kunci layar admin dengan PIN 4 digit.
Setup
- Klik ikon 🔒 di header → Atur PIN
- Masukkan PIN 4 digit (2x konfirmasi)
- 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
- Klik ikon 🔒 di baris terkunci
- Klik 3x berturut-turut (max jeda 1,5 detik)
- Masukkan PIN:
2410 - Data siap diedit
Yang Terkunci
- Akun
hak_akses_admindengan email mengandungsuperadmin - Role
daftar_roledengan namaSuper Admin
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
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
| Tabel | Deskripsi |
|---|---|
| guru | Master akun guru (nama, nip, no_wa, mapel, kelas_diajarkan, password_hash) |
| manajemen_nama_guru | Daftar nama guru (link ke id_guru) |
| siswa | Data siswa (+login_pin, security_answer) |
| alumni | Arsip siswa lulus |
| absensi | Absensi (id_siswa, kelas, jenis, is_late, lampiran, semester) |
| laporan_guru | Laporan pelanggaran dari Portal Guru |
| aspirasi | Laporan/masukan/konselor siswa |
| balasan_laporan | Thread balasan admin per aspirasi |
| pengumuman | Pengumuman (judul, isi, tipe) |
| penilaian | Penilaian siswa (bintang, komentar) |
| daftar_kelas | Master kelas |
| master_mapel | Master mapel (nama, kode, max_guru, aktif) |
| master_semester | Master semester (label, aktif, urutan, tgl_mulai, tgl_akhir) |
| master_pelanggaran | Buku saku pelanggaran (kelakuan, kategori, point) |
| manajemen_jam_mapel | Jam ke-N + durasi |
| manajemen_hari | Kalender (tanggal, status, jam_mulai, istirahat, agenda) |
| jadwal_mapel | Jadwal (hari, kelas, mapel, guru, jam_ke_mulai/selesai) |
| hak_akses_admin | Akun admin (email, role_name, agama) |
| daftar_role | Jabatan + akses_fitur (JSON) |
| anggota_elpoint | Akun OSIS/sekretaris |
| api_keys | API Key eksternal |
| log_history | Log aktivitas user |
| pengaturan | Key-value settings (label, WA token, template, dll.) |
| catatan_absen_guru | Catatan absen pribadi guru |
| riwayat_kelas_siswa | Riwayat 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
| Masalah | Solusi |
|---|---|
| Login gagal "Password salah" | Cek hash bcrypt / reset password via admin |
| "Server tidak mengembalikan jadwal" | Deploy ulang notify.js terbaru |
| Tabel kosong / error schema | Jalankan setup_database.sql terbaru di Supabase |
| Data absensi kosong | Filter pakai id_siswa=in.(...) — sudah diatasi |
| Semester tidak sinkron | Logout → login ulang, pilih semester |
| Poin tidak masuk setelah laporan | Cek status di laporan_guru (harus Selesai) |
| Push notif tidak masuk | Install APK + izinkan notifikasi |
| Backup gagal | Cek SUPABASE_SERVICE_ROLE_KEY di Netlify env |
| Restore ditolak | Ketik persis RESTORE di konfirmasi |
| QR tidak generate | Pastikan NISN siswa terisi |
Kontak Bantuan
E-Aspirasi Grisawangi v3.0 — Dokumentasi Resmi
SMK PGRI 1 Giri, Banyuwangi · e-aspirasigrisawangi.my.id