Cruise Search & Filtering

CruiseAppy implements a robust, extensible cruise search and filtering system designed for scalability and integration with third-party data providers. The system leverages asynchronous API calls and supports complex query parameters to deliver precise, real-time results.

Search Architecture

  • Keyword Search: Full-text search across cruise names, ships, and itineraries using indexed fields for performance.
  • Real-Time Data Integration: Utilizes RESTful APIs (e.g., TravelTek) with caching strategies to ensure up-to-date availability and pricing while minimizing latency.

Filtering Capabilities

The filtering engine supports multi-criteria queries with the following parameters:

  • Destination: Filter by region, country, or specific port codes.
  • Departure Date: Supports exact dates, ranges, and relative date queries (e.g., "next 30 days").
  • Duration: Query by minimum/maximum nights or predefined ranges.
  • Price Range: Numeric filtering with currency normalization.
  • Cruise Line/Ship: Filter by operator ID or ship code.
  • Cabin Type: Filter by standardized cabin category codes (e.g., BAL, STE).
  • Special Offers: Boolean flag for promotional fares or discounts.

All filters are combinable and support AND/OR logic for advanced queries.

Results Rendering

  • Results are rendered in a responsive grid or list, using server-side pagination and lazy loading for performance.
  • Each result includes: cruise name, ship, itinerary summary, duration, lowest available price, and cabin availability.
  • Sorting options: price (asc/desc), duration, departure date.
  • Each result links to a detailed cruise page with full itinerary breakdown, cabin inventory, and booking endpoints.

Extensibility & Analytics

  • Search and filtering logic is modular, supporting plugin hooks and custom field extensions.
  • All search/filter actions are logged with user/session metadata for analytics, monitoring, and optimization.
  • Role-based access: agents and admins can access advanced search parameters and management endpoints.