Version: 1.0 | Last Updated: October 6, 2025 | System: Espiritu Santo Travel Planner | Owner: Klaas Sybranda (gotosanto.com)
COMMENT

Table of Contents

1. System Overview

1.1 Purpose

The Travel Planner Enquiry System is intended to manages travel planning requests for Espiritu Santo, Vanuatu Tourism operators. It captures customer travel preferences, automatically notifies relevant vendors, and provides a centralized interface for tracking and managing booking enquiries. The system is a precursor requirement of Solomon Airlines for Tourism associated operator members to access group rates for direct bookings. This requirements specification has been produce by Klaas Sybranda who owns the URL gotosanto.com

1.2 Scope

The system encompasses:

1.3 Stakeholders


2. Functional Requirements

For detailed functional requirements including booking submission, vendor notifications, and administrative interface specifications, please refer to the full requirements document sections 2.1 through 2.3.

Key Functional Areas


3. Non-Functional Requirements

3.1 Performance

REQ-NF-001: The booking form submission SHALL complete within 3 seconds (excluding email delivery).

REQ-NF-002: The booking list view SHALL load within 2 seconds for up to 100 bookings.

REQ-NF-003: Email notifications SHALL be sent asynchronously without blocking the user experience.

3.4 Security

REQ-NF-009: All database operations SHALL be protected by Row Level Security (RLS) policies.

REQ-NF-010: Anonymous users SHALL be able to INSERT bookings but not SELECT, UPDATE, or DELETE.

REQ-NF-011: Authenticated users SHALL be able to view all booking enquiries and vendor notifications.

REQ-NF-013: Customer contact information SHALL be transmitted securely over HTTPS.

3.5 Usability

REQ-NF-014: The booking form SHALL be responsive and accessible on mobile devices, tablets, and desktop computers.

3.6 Maintainability

REQ-NF-018: Vendor information SHALL be managed via external configuration file to allow updates without code deployment.


5. User Roles and Permissions

5.1 Anonymous Users (Not Authenticated)

Capabilities:

Restrictions:

5.2 Authenticated Users

Capabilities:

5.3 Administrators

Capabilities:

Identification:


6. Business Rules

6.1 Booking Processing

BR-001: All bookings initially receive status "pending".

BR-002: A booking reference ID is automatically generated using UUID for unique identification.

BR-003: Guest bookings (submitted by unauthenticated users) have NULL user_id.

6.2 Vendor Notification

BR-006: Vendors are only notified for categories relevant to the booking requirements.

BR-007: A vendor appearing in multiple relevant categories receives only one notification.

BR-008: Vendor notifications are sent via EmailJS service.

6.3 Date Handling

BR-011: All bookings with preferred_date >= current date are considered "future bookings".

BR-014: Dates are stored in ISO 8601 format (YYYY-MM-DD).

6.4 Status Transitions

BR-015: Valid status values are: pending, confirmed, cancelled.

BR-016: Status transitions allowed:


7. Integration Requirements

7.1 EmailJS Integration

REQ-INT-001: The system SHALL integrate with EmailJS for email delivery.

REQ-INT-002: The following environment variables SHALL be configured:

7.2 Vendor Configuration

REQ-INT-004: Vendor data SHALL be retrieved from: http://gotosanto.com/vendors.json

7.3 Supabase Database

REQ-INT-007: The system SHALL use Supabase as the primary database.


8. User Interface Requirements

8.1 Booking Form

REQ-UI-001: The form SHALL be presented in a card-style layout with rounded corners and shadow.

REQ-UI-003: The form SHALL use a two-column grid on desktop, collapsing to single column on mobile.

8.2 Color Scheme

REQ-UI-015: Primary brand color SHALL be teal (#0D9488 and variants).

REQ-UI-017: Status indicators SHALL use semantic colors:

8.3 Responsive Design

REQ-UI-036: The system SHALL be fully responsive across device sizes:


9. Data Retention and Privacy

9.1 Data Storage

REQ-PR-001: Booking data SHALL be retained indefinitely for historical record-keeping.

REQ-PR-002: Customer contact information SHALL be stored securely in the database.

9.3 Compliance

REQ-PR-006: The system SHALL display appropriate privacy notices to users submitting bookings.

REQ-PR-007: Users SHALL be informed that their information will be shared with relevant vendors.


10. Error Handling

10.1 User-Facing Errors

REQ-ERR-001: Form validation errors SHALL be displayed inline near the relevant field.

REQ-ERR-002: Submission errors SHALL display an alert with actionable message.

10.2 System Errors

REQ-ERR-005: Email delivery failures SHALL be logged but not prevent booking creation.


11. Testing Requirements

11.1 Functional Testing

REQ-TEST-001: All form validation rules SHALL be tested with valid and invalid inputs.

REQ-TEST-002: Booking submission SHALL be tested with and without authentication.

11.2 Integration Testing

REQ-TEST-005: Email notification system SHALL be tested with EmailJS service.

REQ-TEST-006: Database operations SHALL be tested against Supabase.


12. Deployment Requirements

12.1 Environment Configuration

REQ-DEP-001: All environment variables SHALL be properly configured before deployment.

REQ-DEP-002: The vendors.json file SHALL be deployed to the production URL.

12.2 Monitoring

REQ-DEP-004: Email delivery success/failure rates SHALL be monitored.


13. Future Enhancements

Potential Future Features

The following features are identified for potential future implementation:

  1. Booking Modification: Allow customers to modify their booking enquiries after submission
  2. Vendor Portal: Dedicated interface for vendors to respond to bookings
  3. Booking History: Archive and search historical bookings
  4. Automated Reminders: Send follow-up reminders if bookings remain pending
  5. Payment Integration: Process payments for confirmed bookings
  6. Calendar Integration: Export booking dates to calendar applications
  7. Multi-language Support: Translate the interface for international users
  8. SMS Notifications: Send SMS confirmations in addition to email
  9. Real-time Status Updates: Notify customers when booking status changes
  10. Analytics Dashboard: Track booking trends, conversion rates, and vendor performance