Perpustakaan 56 hub sekolah
Aksara
Sistem perpustakaan yang melayani 56 hub sekolah dalam satu aplikasi, masing-masing dengan data dan aturannya sendiri.
Masalahnya
Lima puluh enam hub sekolah mencatat koleksi perpustakaan dengan cara masing-masing — sebagian besar spreadsheet, sebagian catatan kertas. Tidak ada yang bisa menjawab pertanyaan sederhana seperti “berapa total eksemplar yang kita punya” tanpa mengumpulkan file dari 56 orang lebih dulu. Setiap hub juga tidak boleh melihat data hub lain.
Alur penggunanya
- Petugas hub masuk dan hanya melihat koleksi hub-nya sendiri — pemisahan datanya di level aplikasi, bukan sekadar saringan tampilan.
- Ia mencari judul, dan kalau belum ada, menambahkannya sekali sebagai data bibliografi; tiap salinan fisik dicatat sebagai eksemplar terpisah dengan nomor sendiri.
- Anggota didaftarkan dengan nomor yang dibuat otomatis mengikuti kode organisasi dan tahun ajaran, jadi tidak ada lagi penomoran manual yang bentrok.
- Pengurus pusat membuka dashboard distribusi dan melihat sebaran koleksi seluruh hub dalam satu layar.
Yang dibangun
Aplikasi Laravel multi-tenant di atas PostgreSQL, berjalan dalam Docker di server yang saya kelola. Pemisahan tenant ditegakkan di lapisan data, bukan di tampilan, supaya satu hub tidak mungkin membaca data hub lain bahkan lewat URL langsung.
Arsitektur
Bagian yang sulit
Bagian tersulit bukan aplikasinya, melainkan memindahkan data lama. Sumbernya berantakan dan tidak konsisten antar hub, dan sekali data masuk salah, memperbaikinya di production jauh lebih mahal daripada memperlambat migrasinya.
Hasilnya
- 11.212 data bibliografi dan 44.909 eksemplar berhasil dimigrasikan ke struktur baru.
- 5.593 anggota diimpor untuk satu organisasi, dengan penomoran otomatis menggantikan penomoran manual.
- 56 hub berjalan di satu aplikasi, satu database, satu proses deploy.
Catatan commit
| commit | 364 |
|---|---|
| hari kerja aktif | 31 |
| sejak | 2026-06-01 |
Yang belum selesai
Integrasi ke spreadsheet tim masih tertunda menunggu kesiapan data di sisi mereka. Ini saya catat sebagai belum selesai, bukan sebagai fitur yang sudah ada.
Peran saya
Product, arsitektur, seluruh implementasi, migrasi data, dan operasional server.
- Dicatat oleh
- Ihsan Nugraha
- Diperiksa
- 6 Agu 2026, 17.17 WIB
- Cara verifikasi
- Klik URL mana pun di halaman ini
- Dicatat oleh