Sistem Management Masjid
Deskripsi
Sistem manajemen masjid modern yang mencakup seluruh kebutuhan operasional pengurus: administrasi, keuangan (pemasukan/pengeluaran/transparansi publik), pengumuman, agenda kegiatan, jadwal shalat & imam/khatib, data jamaah, inventaris, donasi, program sosial, hingga Digital Signage otomatis untuk TV/monitor masjid. Dibangun sepenuhnya di atas Google Apps Script + Google Spreadsheet sebagai database tanpa server, tanpa biaya hosting, tanpa PHP/MySQL sehingga bisa langsung dijalankan pengurus masjid mana pun cukup dengan akun Google. Sistem menerapkan role-based access control (Super Admin, Admin, Bendahara, Operator) yang divalidasi penuh di sisi server, audit log untuk setiap perubahan data penting, serta engine tampilan TV yang otomatis berpindah mode sesuai kondisi waktu shalat tanpa campur tangan manual.
Sistem
Admin mengatur profil masjid, lokasi, dan provider jadwal shalat lewat Setup Wizard, lalu membuat akun untuk bendahara dan operator sesuai perannya masing-masing. Bendahara mencatat pemasukan (kotak amal, infak, donasi, dll) dan pengeluaran harian yang masing-masing mendapat nomor transaksi otomatis dan tertaut ke sumber dana serta kategori yang dapat dikustomisasi; saldo kas selalu dihitung langsung dari akumulasi transaksi (bukan angka statis), dan transaksi yang ditandai publik otomatis tampil di halaman Transparansi tanpa login. Operator dan admin mengelola pengumuman (dengan status draft/published, prioritas, dan opsi pin) serta agenda kegiatan, sementara jadwal shalat diambil otomatis dari API eksternal (equran.id atau Aladhan, dapat ditukar tanpa mengubah kode) dan disimpan sebagai cache harian agar TV tidak bergantung koneksi realtime. Halaman Display yang dibuka di TV/monitor masjid menjalankan sebuah state engine dengan prioritas tetap Darurat > Waktu Shalat > Jumat > Event Berlangsung > Pengumuman Penting > Countdown Menuju Shalat > Mode Normal (slideshow jam, jadwal, pengumuman, agenda, donasi) yang berpindah otomatis berdasarkan waktu berjalan, lengkap dengan ticker berjalan, tema yang dapat diganti, dan status online/offline yang dipantau dari panel admin lewat heartbeat berkala. Jamaah dapat mengakses website publik untuk melihat jadwal shalat, pengumuman, agenda, transparansi keuangan, dan program donasi yang sedang berjalan tanpa perlu login sama sekali.
Fitur
- Login berbasis token dengan password ter-hash (SHA-256 + salt), validasi role penuh di server
- Role-based access control 4 peran: Super Admin, Admin, Bendahara, Operator
- Dashboard ringkasan: saldo kas, pemasukan/pengeluaran, pengumuman aktif, agenda mendatang
- Modul Keuangan: pemasukan & pengeluaran dengan nomor transaksi otomatis dan validasi nominal
- Kategori keuangan & Sumber Dana dinamis (tidak hardcode), dapat dikelola admin
- Halaman Transaksi gabungan dengan filter, pencarian, sorting, pagination, dan export CSV
- Laporan Keuangan per periode (hari/minggu/bulan/tahun/custom) dengan grafik kategori & arus kas
- Halaman Transparansi Keuangan publik (tanpa login), hanya menampilkan transaksi yang ditandai publik
- Pengumuman dengan kategori, prioritas, status draft/published, dan opsi pin
- Agenda kegiatan dengan tampilan daftar dan agenda mendatang
- Jadwal Shalat otomatis dari API eksternal (equran.id / Aladhan, provider dapat ditukar), dengan koreksi manual
- Perhitungan tanggal Hijriah lokal tanpa API eksternal
- Jadwal Imam, Khatib, dan Muadzin per tanggal dan jenis shalat
- Manajemen Inventaris masjid dengan kondisi barang dan statistik
- Data Jamaah dengan statistik jumlah, jenis kelamin, dan status
- Donasi berbasis campaign dengan progress bar otomatis dari akumulasi donasi terverifikasi
- Program Sosial (santunan, sembako, beasiswa, dll) dengan pencatatan penerima dan sumber dana
- Upload dokumen ke Google Drive dengan metadata tersimpan di database
- Digital Signage TV dengan 7 mode otomatis (Darurat, Waktu Shalat, Jumat, Event, Pengumuman, Countdown, Normal)
- Playlist slide TV yang dapat diatur urutan, durasi, dan aktif/nonaktifnya
- Monitoring status TV (online/offline) dan mode aktif dari panel admin
- Mode offline TV dengan cache lokal, tetap tampil saat koneksi terputus sementara
- Website publik lengkap: Beranda, Jadwal Shalat, Pengumuman, Agenda, Transparansi, Donasi, Tentang, Kontak
- Manajemen User & Role dari panel admin
- Audit Log seluruh aktivitas: login, create, update, delete, publish, ganti setting
- Setup Wizard untuk konfigurasi awal masjid, lokasi, dan display
- Cetak bukti transaksi otomatis dan siap diunduh sebagai PDF dari browser
- Seluruh mutasi data divalidasi ulang di backend, tidak pernah mempercayai input dari frontend
Panduan Instalasi
- Buat Google Spreadsheet baru sebagai database (beri nama bebas, misal "Masjid Management System - Database")
- Buka editor Apps Script yang terhubung ke spreadsheet tadi
- Salin seluruh source code ke project Apps Script Buat file .gs dan .html sesuai daftar file di folder gas-app/, copy-paste isinya persis (nama file harus sama persis, tanpa mengetik ekstensi saat membuat file baru).
- Jalankan setup database (membuat 20 sheet + data referensi awal + akun admin default) Pilih fungsi setupDatabase di dropdown toolbar > klik Run(izinkan akses Google saat diminta / Authorize)
- Isi data contoh agar dashboard tidak kosong (opsional tapi disarankan) Pilih fungsi seedDemoData di dropdown toolbar > klik Run
- Deploy sebagai Web App Deploy > New deployment > pilih tipe "Web app" Execute as: Me Who has access: Anyone
- Akses aplikasi di browser Buka Web App URL yang diberikan setelah Deploy Tambahkan ?page=login di akhir URL untuk masuk sebagai admin
Login menggunakan akun default Username : admin Password : admin123
Catatan: aplikasi ini memakai Google Spreadsheet sebagai database (bukan MySQL), sehingga tidak perlu instalasi server/database terpisah — cukup akun Google. Kredensial login default hanya untuk keperluan awal instalasi; segera ganti password admin dan buat akun bendahara/operator sesuai kebutuhan sebelum digunakan di lingkungan produksi. Setiap kali kode diubah, deployment perlu di-update lewat Deploy > Manage deployments > Edit > New version agar perubahan berlaku di Web App URL yang sama.
