Ruang Kantor: Sistem Reservasi Ruang & Fasilitas
Ruang Kantor is a modern full-stack web application designed to eliminate meeting room booking conflicts in corporate offices. Built as a unified monolith using Nuxt 4, Vue 3, Nuxt UI 4, and Nitro engine with PostgreSQL 17, it provides real-time room availability across daily, weekly, and mobile agenda views with strict transactional conflict prevention.

Project Overview
Streamlines workplace scheduling by offering employees an intuitive room catalog with capacity and amenity filters (Video Conference, Projectors, Audio). Employees submit booking requests with instant collision checks, while office administrators manage facility approvals, maintenance blackouts, and room maintenance logs.
The Problem
Office scheduling disputes caused by concurrent booking approvals, clunky calendar interfaces lacking time zone alignment, and inability to take rooms offline for maintenance.
The Solution
Implemented server-side overlap detection within atomic PostgreSQL transactions, half-open interval validation (enabling consecutive bookings without false alarms), maintenance blackout blocks, and Argon2id session authentication.
System Architecture
Full-stack Nuxt 4 monolith powered by Vue 3 and Nuxt UI 4, with Nitro/H3 server endpoints connecting via Prisma ORM 6 to PostgreSQL 17. Form schemas and query parameters are strictly validated using Zod.
Key Technical Challenges
Preventing race condition double-bookings when multiple employees or administrators submit overlapping reservation approvals at the exact same millisecond.
Lessons Learned
Executing conflict validation queries directly inside transactional database locks guarantees scheduling integrity without false collisions on adjacent time slots.