Travel Platform API.
Full backend for Vacaba.id, a Bali-based travel platform connecting tourists with destinations, activities, vehicle rentals, airport transfers, and transportation tickets. Five booking verticals are served from a single consistent REST API contract, with each vertical modelled as its own bounded context within a shared platform.
Clean Architecture with Domain-Driven Design keeps all business logic — pricing rules, availability constraints, booking state machines — fully decoupled from the framework and database layers. Aggregates and value objects model the booking domain explicitly, making the domain independently testable without spinning up HTTP servers or databases.
Clean Architecture: domain → use-case → interface → infrastructure, with strict inward-only dependency direction
DDD aggregates and value objects model booking state machines explicitly in the domain layer
5+ booking verticals (destinations, activities, rentals, transfers, tickets) behind a consistent REST contract
Repository pattern isolates PostgreSQL from domain logic — infrastructure can be replaced without touching use cases