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.