Latar Belakang & Masalah Teknis
Bahan ibadah mingguan tersebar di berbagai tempat dan sulit dicari. ARK mengumpulkannya dalam satu arsip yang bisa dicari menurut kategori, periode pelayanan, dan tanggal ibadah.
Solusi & Arsitektur
- Model data. Dokumen punya kategori, periode pelayanan, tanggal ibadah, dan pengisi. Statusnya draft atau published, dan hanya dokumen published yang tampil di arsip publik.
- Penyimpanan file. File disimpan di Cloudflare R2 lewat lapisan
StorageService, sehingga penyedia penyimpanan bisa diganti tanpa mengubah logika aplikasi. - Autentikasi. Login dengan bcrypt dan sesi JWT (
jose) di cookiehttpOnly,sameSite=lax, dansecuredi produksi. Middleware memverifikasi token di setiap permintaan admin. - Peran. Tiga peran bertingkat: admin, pengurus, dan jemaat.
- Berbagi. Tiap arsip bisa dibagikan lewat QR code.
Teknologi & Alasannya
- Prisma + PostgreSQL. Skema bertipe dan relasi yang jelas antara dokumen, kategori, dan periode.
- Cloudflare R2. Penyimpanan file yang kompatibel dengan S3, dipakai lewat AWS SDK.
Hasil & Key Takeaways
Situs sudah live di ark.pmkitera.web.id. Kode sumbernya berada di repositori privat organisasi, jadi studi kasus ini hanya menjelaskan arsitektur.
- Lapisan abstraksi untuk penyimpanan murah dibuat sejak awal dan mengurangi ketergantungan pada satu penyedia.