Rumio.id: Property Marketing & Exploration Platform
System Architecture
1. Presentation Layer (Frontend)
- Framework & Rendering: Utilizes Next.js Server Components and Client Components to minimize client-side JavaScript overhead. Static pages are automatically cached at the edge, while dynamic dashboards and forms utilize server-side rendering (SSR).
- Styling Engine: Uses Tailwind CSS v4 to generate responsive, utility-based, and highly optimized CSS.
- Interactive Media: WebGL context is leveraged via Three.js and Photo Sphere Viewer to deliver interactive 360-degree panoramas at 60fps, optimized for both desktop and mobile (single-finger swipe controls).
- Smooth User Experience (UX): Lenis provides a seamless scrolling experience, while Lucide React ensures consistent and elegant iconography.
2. Application Logic & API Layer (Backend)
- Next.js API Routes & Server Actions: The platform extensively uses Next.js Server Actions for secure form-based data mutations (e.g., Scout Registration, Package Ordering). API Route Handlers manage dynamic data fetching and integrations like OpenGraph metadata extraction.
- Authentication Security System: Secured via NextAuth.js, which reliably manages sessions, secure credential verification using Bcrypt.js, and Role-Based Access Control (RBAC) to ensure only authorized administrators can access the CMS and Dashboard.
- Content Management (CMS): An integrated rich-text blogging system powered by Tiptap (headless editor) and MDX processing, allowing administrators to compose visually rich and semantically valid web content.
3. Data Storage Layer (Database)
- ORM: Prisma (v6) acts as a strictly-typed bridge between the application logic and the database.
- Query Optimization: Implements advanced query deduplication and selective field fetching to prevent N+1 query issues and minimize server RAM usage.
- Relational Data Structure: The database includes structured schemas for Properties, Scouts, Packages, Orders, Blog Posts, and a complex geospatial/location directory (Province, City, District) for precise property searches.
4. Security & Performance Architecture
- XSS Mitigation: All user inputs and CMS content are strictly sanitized using Sanitize-html before being rendered.
- Rate Limiting: Public forms and API endpoints are equipped with robust rate-limiting mechanisms to prevent bot abuse and resource exhaustion from DDOS-style attacks.
- Dynamic SEO: Automatically generates dynamic OpenGraph images and metadata for properties and blogs, enhancing the quality of link previews on social media and visibility on search engines.
Technology Stack Details
- Core Framework: Next.js 16.2.9 (App Router) — Full-stack orchestration, routing, SSR/SSG, and Server Actions.
- UI Library: React 19 — Component lifecycle and DOM management.
- Styling: Tailwind CSS v4 — Rapid UI development with automatic unused code purging.
- Database ORM: Prisma v6 — Type-safe database access, schema migrations, and query generation.
- Authentication: NextAuth.js — Secure session management and credential hashing.
- Virtual Tour Engine: Photo Sphere Viewer — Core library for rendering interactive 360° property tours.
- 3D Rendering: Three.js — WebGL graphics engine powering the virtual tours.
- Rich Text Editor: Tiptap & Extensions — Headless WYSIWYG editor for writing blog content and property descriptions.
- Data Visualization: Recharts — React components for dynamically rendering analytic charts on the dashboard.
- Security: DOMPurify / Sanitize-html — Stripping malicious scripts from user inputs before processing.
- Server Deployment: Node.js (Custom Server) — Custom server.js architecture to seamlessly support Next.js on traditional VPS environments like Hostinger.
Directory Structure (Folder Structure)
Text
