Rumio.id: Platform Pemasaran & Eksplorasi Properti
Arsitektur Sistem
1. Lapisan Presentasi (Frontend)
- Framework & Rendering: Menggunakan Next.js Server Components dan Client Components untuk meminimalkan beban JavaScript di sisi klien. Halaman statis di-cache secara otomatis pada edge, sedangkan dasbor dinamis dan formulir memanfaatkan server-side rendering (SSR).
- Mesin Styling: Menggunakan Tailwind CSS v4 untuk menghasilkan CSS yang responsif, berbasis utilitas, dan sangat optimal.
- Media Interaktif: Konteks WebGL dimanfaatkan melalui Three.js dan Photo Sphere Viewer untuk menghadirkan panorama 360 derajat interaktif pada 60fps yang dioptimalkan baik untuk desktop maupun seluler (kontrol geser satu jari).
- Pengalaman Pengguna (UX) yang Halus: Lenis memberikan pengalaman menggulir (scrolling) yang mulus, sementara Lucide React memastikan ikonografi yang konsisten dan elegan.
2. Logika Aplikasi & Lapisan API (Backend)
- Next.js API Routes & Server Actions: Platform ini secara ekstensif menggunakan Next.js Server Actions untuk mutasi data berbasis formulir yang aman (misalnya: Registrasi Scout, Pemesanan Paket). API Route Handlers mengelola pengambilan data dinamis dan integrasi seperti ekstraksi metadata OpenGraph.
- Sistem Keamanan Autentikasi: Dilindungi melalui NextAuth.js, yang mengelola sesi dengan andal, verifikasi kredensial yang aman menggunakan Bcrypt.js, dan kontrol akses berbasis peran (RBAC) untuk memastikan hanya administrator berwenang yang dapat mengakses CMS dan Dasbor.
- Manajemen Konten (CMS): Sistem blogging berbasis rich-text terintegrasi yang didukung oleh Tiptap (editor headless) dan pemrosesan MDX, memungkinkan administrator menyusun konten web yang kaya visual dan valid secara semantik.
3. Lapisan Penyimpanan Data (Database)
- ORM: Prisma (v6) bertindak sebagai jembatan tipe-aman (strictly-typed) antara logika aplikasi dan database.
- Optimasi Kueri: Menerapkan deduplikasi kueri tingkat lanjut dan pengambilan field secara selektif untuk mencegah masalah kueri N+1 serta meminimalkan penggunaan RAM pada server.
- Struktur Data Relasional: Database mencakup skema terstruktur untuk Properti, Scouts, Paket, Pesanan, Postingan Blog, dan direktori geospasial/lokasi yang kompleks (Provinsi, Kota, Kecamatan) untuk pencarian properti yang akurat.
4. Arsitektur Keamanan & Performa
- Mitigasi XSS: Seluruh masukan pengguna dan CMS disanitasi secara ketat menggunakan Sanitize-html sebelum di-render.
- Pembatasan Laju (Rate Limiting): Formulir publik dan endpoint API dilengkapi mekanisme pembatasan laju yang tangguh untuk mencegah penyalahgunaan bot dan kelelahan sumber daya akibat serangan bergaya DDOS.
- SEO Dinamis: Menghasilkan gambar OpenGraph dan metadata dinamis untuk properti dan blog secara otomatis, meningkatkan kualitas pratinjau tautan di media sosial dan visibilitas pada mesin pencari.
Rincian Tumpukan Teknologi (Tech Stack)
- Framework Utama: Next.js 16.2.9 (App Router) — Orkestrasi full-stack, perutean, SSR/SSG, dan Server Actions.
- Library UI: React 19 — Manajemen siklus hidup komponen dan DOM.
- Styling: Tailwind CSS v4 — Pengembangan UI yang cepat dengan pembersihan kode tak terpakai secara otomatis.
- Database ORM: Prisma v6 — Akses database yang aman (type-safe), migrasi skema, dan pembuatan kueri.
- Autentikasi: NextAuth.js — Manajemen sesi yang aman dan hashing kredensial.
- Mesin Virtual Tour: Photo Sphere Viewer — Library inti untuk merender tur properti 360° yang interaktif.
- Rendering 3D: Three.js — Mesin grafis WebGL yang menggerakkan tur virtual.
- Editor Rich Text: Tiptap & Ekstensi — Editor WYSIWYG headless untuk penulisan konten blog dan deskripsi properti.
- Visualisasi Data: Recharts — Komponen React untuk merender grafik analitik pada dasbor secara dinamis.
- Keamanan: DOMPurify / Sanitize-html — Menghapus skrip berbahaya dari masukan pengguna sebelum diolah.
- Server Deployment: Node.js (Custom Server) — Arsitektur server.js kustom untuk mendukung Next.js secara mulus pada lingkungan VPS tradisional seperti Hostinger.
Struktur Direktori (Folder Structure)
Text
