Sedia Arcive - Digital Archive Management System
Detail Proyek
Sedia Archive — Secure File Management & Governance Platform
Platform arsip file berbasis web yang dirancang untuk penyimpanan, pengelolaan, dan kolaborasi berkas secara aman bagi individu maupun tim. Menggabungkan antarmuka interaktif berbasis Astro SSR + React Islands dengan sistem tata kelola enterprise: kontrol kuota storage, batas ukuran unggahan, izin berbasis peran (RBAC), tautan publik terproteksi, hingga audit trail aktivitas pengguna. Dibangun mandiri secara end-to-end.
Stack: Astro · React · Tailwind CSS · Better Auth · Drizzle ORM · PostgreSQL · Cloudflare R2
Ringkasan Proyek
- Kategori: Personal Project
- Peran: Full-Stack Engineer
- Tech Stack: Astro, React, Tailwind CSS, Better Auth, Drizzle ORM, Neon PostgreSQL, Cloudflare R2, Vercel Adapter
Masalah yang Dihadapi
Sebelum Sedia Archive dibangun, pengelolaan arsip digital bagi tim maupun individu kerap mengalami beberapa kendala operasional:
- Penyimpanan Terfragmentasi: Berkas disimpan di berbagai platform terpisah tanpa struktur direktori dan metadata yang terstandar.
- Berbagi File Tanpa Kontrol Akses: Kurangnya transparansi terkait batasan hak akses (view/edit/download) pada tautan yang dibagikan.
- Ketiadaan Pembatasan Sumber Daya: Tidak adanya mekanisme pembatasan kuota storage dan batas maksimum ukuran berkas per pengguna.
- Tidak Ada Jejak Audit (Audit Trail): Perubahan, penghapusan, atau pembagian berkas tidak terekam dalam log aktivitas yang memadai.
- Tata Kelola Admin yang Kaku: Administrator kesulitan mengontrol alur permintaan izin unggah (upload access request) dari pengguna.
Solusi & Fitur Utama
-
Manajemen File & Structural Folder
Pengunggahan berkas yang dilengkapi validasi kuota storage dan batas ukuran berkas secara otomatis, struktur nested folder bertingkat, opsi starred/unstarred, serta pratinjau (preview) berkas via signed URL aman. -
Dua Tingkat Siklus Hapus (Trash Lifecycle & Soft Delete)
Mekanisme soft delete untuk memindahkan berkas ke folder sampah (Trash) dengan opsi pemulihan (restore) atau penghapusan permanen (hard delete) yang otomatis memperbarui penggunaan storage. -
Multi-Level File Sharing & Collaboration
- Tautan Publik: Tautan berbagi dengan token acak, proteksi kata sandi, batas masa berlaku (expiry: 1 jam hingga 30 hari), dan penguncian tombol download.
- Internal Sharing: Pembagian berkas/folder antar-pengguna terdaftar dengan kontrol hak akses granular (
viewatauedit).
-
Pencarian Terstruktur & Filtering Dynamic
Pencarian berbasis nama berkas/folder dipadukan dengan filter tipe dokumen, rentang tanggal, dan status penandaan (starred). -
Admin Governance & Access Control
Pengaturan hak akses berbasis peran (admin,user), penyesuaian kuotastorageLimitdanmaxFileSizeper individu, serta alur pengajuan izin unggah (request upload access) yang terintegrasi dengan notifikasi. -
Monitoring, Insight & Activity Audit Logs
Dashboard statistik penggunaan storage dan rekaman activity log terpusat untuk setiap tindakan kritis (upload, move, delete, restore, share, empty trash).
Tech Stack & Arsitektur
Sedia Archive dibangun dengan pemisahan tegas antara metadata transaksi (PostgreSQL) dan berkas biner (object storage Cloudflare R2).
- Frontend Architecture: Menggunakan Astro untuk penanganan routing cepat dan Server-Side Rendering (SSR), dipadukan dengan React (Client Islands) untuk modul antarmuka yang membutuhkan interaktivitas tinggi.
- Backend & Data Layer: Memanfaatkan Astro API Routes sebagai backend layer, Better Auth untuk autentikasi (Email/Password & Google OAuth), Drizzle ORM untuk kueri terstruktur, dan Neon PostgreSQL sebagai basis data relasional.
- Binary Object Storage: Menggunakan Cloudflare R2 (S3-compatible) dengan Signed URL untuk menjaga agar akses berkas privat tidak terekspos secara publik.
- Pola Arsitektur: Struktur modular berbasis domain (
files,folders,share,trash,admin,notifications,activity) dengan pemeriksaan izin akses di tingkat API (API-level permission check).
Tantangan Teknis & Solusi
-
Pemeriksaan Hak Akses Multi-Tingkat (Complex Access Control):
Tantangan: Pengguna dapat berstatus sebagai pemilik berkas, penerima sharing, atau administrator, di mana tiap peran membutuhkan batasan aksi yang berbeda.
Solusi: Pengecekan izin diimplementasikan langsung pada middleware dan endpoint API (memvalidasi ownership + shared permission + system role), bukan sekadar menyembunyikan elemen di antarmuka (UI). -
Konsistensi Metadata DB vs Binary Storage R2:
Tantangan: Mencegah terjadinya orphaned files di R2 saat berkas dihapus atau dipulihkan dari database.
Solusi: Penerapan pola soft delete di database. Proses penghapusan fisik di Cloudflare R2 dan kalkulasi ulang storage usage hanya dieksekusi saat proses permanent delete atau empty trash. -
Validasi Kuota Unggahan Per Pengguna:
Tantangan: Mencegah pengguna melebihi kuota penyimpanan secara akurat tanpa membebani performa server.
Solusi: Menjalankan fungsi validasi terpusat sebelum unggahan diproses (memeriksauploadEnabled,maxFileSize,storageLimit, danstorageUsed), lalu memperbarui status penggunaan storage secara atomik setelah berkas berhasil disimpan. -
Proteksi Tautan Berbagi Publik:
Tantangan: Tautan berkas publik rawan diakses secara tidak sah jika tidak memiliki mekanisme proteksi yang ketat.
Solusi: Mengimplementasikan URL berbasis token yang divalidasi dengan pengecekan masa berlaku (expiry date), verifikasi hash kata sandi, dan variabel penguncian download.
Pembelajaran & Catatan Teknis
- Merancang arsitektur web modern menggunakan pola Astro SSR + React Client Islands untuk mengoptimalkan performa pemuatan halaman.
- Mengelola arsitektur object storage (Cloudflare R2) terintegrasi dengan basis data PostgreSQL via Drizzle ORM.
- Menerapkan sistem tata kelola berkas berstandar enterprise, mencakup validasi kuota, signed URL, dan audit trail log.
Spesifikasi Proyek
Ingin Proyek Serupa?
Tim ahli kami siap membantu Anda merealisasikan inovasi sistem software terbaik.
Project Showcase
7 Tangkapan Layar





Proyek Lainnya
Jelajahi karya rekayasa perangkat lunak lainnya.

Koperasi Sedia
Cooperative core banking platform: automated savings, flat & annuity loans, daily cash register, proportional dividend allocation, and print-ready legal loan agreements.

SupportSense AI
Autonomous enterprise AI customer support engine fusing Hybrid RAG + KAG (PostgreSQL & ChromaDB) for zero-hallucination order tracking and cost-efficient sub-second routing.

Bizinsight AI
BizInsight AI adalah sistem Multi-Agent yang mengubah pertanyaan bisnis sehari-hari menjadi query database, grafik interaktif, dan wawasan bisnis otomatis tanpa perlu paham SQL.