PT POS INDONESIA
Room Management System
Meeting room booking for PT Pos Indonesia staff, built during my internship as a Laravel web app and a Flutter mobile app that share one Supabase backend.
- Laravel
- Flutter
- Supabase
- PostgreSQL
- Tailwind
- Firebase

OVERVIEW
Staff check room availability by time slot and submit a booking with date, time, purpose and headcount. An admin approves or rejects it with a reason, the user checks in with a photo on the day, and every booking feeds a usage dashboard by period and division. The web and mobile apps talk to the same Supabase database directly, and Deno edge functions send check-in reminders, clean up photos and trigger push notifications.
WHAT I DID
- One schema, two front-ends: Laravel 12 with Blade and Tailwind, Flutter across Android, iOS and desktop, both talking to Supabase directly rather than through an API layer.
- Booking lifecycle end to end: availability per time slot, approval or rejection with a reason, cancellation, and a photo check-in on the day of use.
- Deno Edge Functions for the work that cannot live in a client: check-in reminders, storage cleanup, and notification triggers into Firebase Cloud Messaging and OneSignal.
- Usage analytics for admins — room occupancy by period and by division, drawn from the same booking records.