Travenor – Travel Booking
Travernor is a full-featured travel booking platform built as a multi-module Android project. It consists of three modules: Common (shared design system), App (user-facing), and Owner (property management). Supabase powers authentication, real-time database, and cloud storage, enabling live booking updates between travelers and property owners.
Tech Stack
The Problem
Needed a scalable architecture that could support two distinct user types (travelers and property owners) without code duplication, while maintaining real-time data sync.
The Solution
Multi-module Gradle project where Common provides the design system and utilities, App handles traveler flows, and Owner handles property management. Supabase real-time subscriptions keep both apps in sync instantly.
Architecture
Multi-module Gradle project where Common provides the design system and utilities, App handles traveler flows (auth, browse, book), and Owner handles property management with FCM notifications via WorkManager.
Key Features
- ▸Multi-module architecture: Common, App (user), and Owner modules
- ▸Supabase integration for authentication, real-time database & cloud storage
- ▸OTP verification, onboarding flow, destination browsing & booking management
- ▸Owner dashboard with FCM push notifications for booking requests
- ▸Background WorkManager for reliable booking notification processing
Engineering Challenges
- ⚡Keeping two separate apps in sync via Supabase real-time subscriptions
- ⚡Designing a shared design system that works for both app identities
- ⚡Managing WorkManager lifecycle with Supabase auth state
Lessons Learned
- 💡Multi-module architecture pays off immediately in compile time and enforced boundaries
- 💡Supabase real-time is production-ready and significantly simpler than Firebase RTDB