Tentang Proyek

IYiS (Ismuhu Yahya Islamic School) adalah aplikasi manajemen sekolah Islam berbasis mobile yang dikembangkan menggunakan Flutter. Aplikasi ini dirancang untuk mempermudah pengelolaan kegiatan akademik dan administrasi sekolah — mulai dari data siswa, jadwal pelajaran, absensi, hingga komunikasi dengan orang tua secara digital.

Dibangun dengan arsitektur Clean Architecture, sistem ini memisahkan logika bisnis dan data secara tegas sehingga mudah dikembangkan seiring bertambahnya kebutuhan sekolah.

Fitur Utama

Manajemen Multi-Unit

Kelola sekolah, pesantren, dan masjid dalam satu dashboard

Data SDM Terpusat

Pengelolaan guru, karyawan, dan santri dalam satu sistem

Keuangan Yayasan

Laporan pemasukan, pengeluaran, dan anggaran per unit

Absensi Digital

Rekap kehadiran guru dan karyawan seluruh unit secara real-time

Dashboard Eksekutif

Ringkasan data seluruh unit dalam grafik yang mudah dibaca

Akses Berbasis Role

Hak akses terpisah untuk ketua yayasan, kepala unit, dan staf

Tantangan & Solusi

Integrasi data lintas unit yang heterogen

Setiap unit (sekolah, pesantren, masjid) memiliki struktur data yang berbeda-beda, menyulitkan penyatuan dalam satu sistem yang konsisten.

Desain schema database yang fleksibel dengan pendekatan polymorphic relations, memungkinkan tiap unit memiliki atribut uniknya tanpa mengorbankan konsistensi data utama.

Performa dashboard dengan banyak data agregasi

Dashboard eksekutif perlu menampilkan ringkasan dari seluruh unit secara real-time, yang berpotensi memperlambat aplikasi jika tidak dioptimalkan.

Implementasi background data fetching dengan BLoC pattern dan caching lokal menggunakan Hive, sehingga dashboard tetap responsif meskipun data diambil dari banyak endpoint.

Manajemen hak akses yang kompleks

Ketua yayasan, kepala unit, dan staf memerlukan tampilan dan akses fitur yang berbeda — dengan lapisan pengecualian per departemen.

Role-based access control (RBAC) yang dikonfigurasi di server-side dan dicerminkan di UI Flutter, sehingga menu dan fitur hanya muncul sesuai hak akses pengguna yang sedang login.