{
  "format": "dataset-manifest/1",
  "slug": "wanderlust-insights",
  "version": 1,
  "seed": "wanderlust-insights:1",
  "spec": {
    "format": "dataset/1",
    "slug": "wanderlust-insights",
    "name": "Wanderlust Insights",
    "tagline": "Traveler profiles, destinations, activities, bookings, journals, and photos capturing diverse travel experiences.",
    "description": "Wanderlust Insights is a synthetic dataset designed for travel enthusiasts and developers who want to explore the intricacies of travel planning. The dataset captures various aspects of travel, including travelers' profiles, destinations, activities, bookings, journals, and photos. Each table in the dataset connects to provide a comprehensive view of the travel experience, allowing users to analyze trends, preferences, and booking behaviors. With this data, users can practice SQL queries to uncover insights about popular destinations, seasonal travel patterns, and the impact of personalized itineraries on travelers' experiences. The dataset is structured to facilitate ORM seeding and SQL practice, making it a valuable resource for developers and analysts alike.",
    "domain": "travel",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "travel",
      "itinerary",
      "bookings",
      "destinations",
      "journals",
      "activities",
      "travelers"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "travelers": {
        "description": "This table contains information about travelers, including their unique profiles and preferences. Each traveler can have multiple itineraries.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each traveler."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the traveler."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The traveler's email address."
          },
          "country": {
            "kind": "country",
            "description": "Country of residence for the traveler."
          },
          "preferences": {
            "kind": "words",
            "max": 50,
            "description": "Travel preferences such as adventure, relaxation, culture, etc.",
            "nullable": true
          }
        }
      },
      "destinations": {
        "description": "This table lists various travel destinations, both popular and hidden gems. Each destination may have multiple activities associated with it.",
        "rows": 120,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each destination."
          },
          "name": {
            "kind": "words",
            "max": 30,
            "description": "The name of the destination."
          },
          "country": {
            "kind": "country",
            "description": "The country where the destination is located."
          },
          "popularity": {
            "kind": "int",
            "min": 1,
            "max": 100,
            "description": "Popularity rating of the destination on a scale from 1 to 100.",
            "nullable": true
          }
        }
      },
      "activities": {
        "description": "This table catalogs various activities available at different destinations. Each activity can be booked by travelers.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each activity."
          },
          "destination_id": {
            "kind": "fk",
            "ref": "destinations.id",
            "description": "Link to the destination where the activity is available."
          },
          "name": {
            "kind": "words",
            "max": 50,
            "description": "The name of the activity."
          },
          "price": {
            "kind": "decimal",
            "min": 10,
            "max": 500,
            "scale": 2,
            "description": "Price of the activity in the local currency.",
            "nullable": true
          }
        }
      },
      "bookings": {
        "description": "This table captures booking details made by travelers for activities at various destinations.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each booking."
          },
          "traveler_id": {
            "kind": "fk",
            "ref": "travelers.id",
            "description": "Link to the traveler who made the booking."
          },
          "activity_id": {
            "kind": "fk",
            "ref": "activities.id",
            "description": "Link to the booked activity."
          },
          "booking_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "Date when the booking was made.",
            "nullable": true,
            "when": {
              "column": "status",
              "in": [
                "cancelled"
              ]
            },
            "trend": "growing"
          },
          "status": {
            "kind": "enum",
            "values": [
              "confirmed",
              "cancelled",
              "pending"
            ],
            "description": "Current status of the booking."
          }
        }
      },
      "journals": {
        "description": "This table includes personal travel journals written by travelers, detailing their experiences and adventures.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each journal entry."
          },
          "traveler_id": {
            "kind": "fk",
            "ref": "travelers.id",
            "description": "Link to the traveler who authored the journal."
          },
          "entry_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "Date of the journal entry.",
            "trend": "seasonal"
          },
          "content": {
            "kind": "paragraph",
            "max": 500,
            "description": "Text of the journal entry.",
            "nullable": true
          }
        }
      },
      "photos": {
        "description": "This table holds photos uploaded by travelers to document their trips, associated with journal entries.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each photo."
          },
          "journal_id": {
            "kind": "fk",
            "ref": "journals.id",
            "description": "Link to the journal entry related to the photo."
          },
          "url": {
            "kind": "url",
            "description": "URL of the uploaded photo."
          },
          "caption": {
            "kind": "sentence",
            "max": 100,
            "description": "Caption for the photo.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "high-cardinality",
      "self-referencing",
      "categorical"
    ],
    "analysisQuestions": [
      "What are the most popular destinations among travelers?",
      "How does booking activity change during holiday seasons?",
      "What activities are most frequently booked by travelers?",
      "Which travelers document their journeys through journals most actively?",
      "What trends can we observe in traveler preferences over time?"
    ],
    "suggestedQueries": [
      {
        "title": "List all travelers with their country of residence.",
        "sql": "SELECT * FROM travelers;",
        "dialect": "postgres"
      },
      {
        "title": "Find all activities available in a specific destination.",
        "sql": "SELECT * FROM activities WHERE destination_id = $1;",
        "dialect": "postgres"
      },
      {
        "title": "Count bookings grouped by status.",
        "sql": "SELECT status, COUNT(*) FROM bookings GROUP BY status;",
        "dialect": "postgres"
      },
      {
        "title": "Get the average price of activities by destination.",
        "sql": "SELECT d.name, AVG(a.price) FROM destinations d JOIN activities a ON d.id = a.destination_id GROUP BY d.name;",
        "dialect": "postgres"
      },
      {
        "title": "List travelers and their latest journal entry dates.",
        "sql": "SELECT t.full_name, MAX(j.entry_date) FROM travelers t LEFT JOIN journals j ON t.id = j.traveler_id GROUP BY t.full_name;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Travel Agency Analytics",
        "body": "A travel agency can utilize this dataset to analyze booking patterns and preferences among travelers. By examining the data, they can identify which destinations are trending and tailor their marketing strategies accordingly. This will help them optimize their offerings and cater to the needs of their clients."
      },
      {
        "title": "Personalized Travel Recommendations",
        "body": "Developers can leverage this dataset to create applications that provide personalized travel recommendations to users based on their preferences. By analyzing traveler profiles and booking history, the application can suggest activities and destinations that align with individual interests, enhancing the travel experience."
      },
      {
        "title": "Travel Journal Applications",
        "body": "Entrepreneurs can use this dataset to build platforms for travelers to document their journeys. By allowing users to create journals and upload photos, they can foster a community of travel enthusiasts who share their experiences. This can result in valuable insights into traveler behavior and preferences."
      }
    ]
  },
  "counts": {
    "destinations": 120,
    "activities": 300,
    "travelers": 200,
    "bookings": 400,
    "journals": 250,
    "photos": 300
  },
  "stats": {
    "travelers": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 197,
          "min": "Alice Clark",
          "max": "Zoe Sousa"
        },
        "email": {
          "nulls": 0,
          "distinct": 198
        },
        "country": {
          "nulls": 0,
          "distinct": 41,
          "min": "Argentina",
          "max": "United States"
        },
        "preferences": {
          "nulls": 16,
          "distinct": 184
        }
      }
    },
    "destinations": {
      "rows": 120,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 120,
          "min": 1,
          "max": 120
        },
        "name": {
          "nulls": 0,
          "distinct": 120
        },
        "country": {
          "nulls": 0,
          "distinct": 37,
          "min": "Argentina",
          "max": "United States"
        },
        "popularity": {
          "nulls": 16,
          "distinct": 65,
          "min": 3,
          "max": 100
        }
      }
    },
    "activities": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "destination_id": {
          "nulls": 0,
          "distinct": 111,
          "min": 1,
          "max": 120
        },
        "name": {
          "nulls": 0,
          "distinct": 300
        },
        "price": {
          "nulls": 23,
          "distinct": 275,
          "min": 15.49,
          "max": 492.23
        }
      }
    },
    "bookings": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "traveler_id": {
          "nulls": 0,
          "distinct": 171,
          "min": 1,
          "max": 200
        },
        "activity_id": {
          "nulls": 0,
          "distinct": 227,
          "min": 1,
          "max": 300
        },
        "booking_date": {
          "nulls": 258,
          "distinct": 115,
          "min": "2023-01-08",
          "max": "2023-12-30"
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "cancelled",
          "max": "pending"
        }
      }
    },
    "journals": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "traveler_id": {
          "nulls": 0,
          "distinct": 144,
          "min": 1,
          "max": 200
        },
        "entry_date": {
          "nulls": 0,
          "distinct": 172,
          "min": "2023-01-01",
          "max": "2023-12-29"
        },
        "content": {
          "nulls": 19,
          "distinct": 231
        }
      }
    },
    "photos": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "journal_id": {
          "nulls": 0,
          "distinct": 173,
          "min": 2,
          "max": 250
        },
        "url": {
          "nulls": 0,
          "distinct": 296
        },
        "caption": {
          "nulls": 28,
          "distinct": 271
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/destinations.csv",
      "format": "csv",
      "table": "destinations",
      "key": "datasets/wanderlust-insights/v1/csv/destinations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/csv/destinations.csv",
      "bytes": 14271,
      "sha256": "5f6ffc3407e9bc2112ce9c3815f994889222ee687f161fa0052c83799ce1789f",
      "rows": 120,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/activities.csv",
      "format": "csv",
      "table": "activities",
      "key": "datasets/wanderlust-insights/v1/csv/activities.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/csv/activities.csv",
      "bytes": 54510,
      "sha256": "07d664234342a751d91695061bf19c4d4fd3f6554f8ff9b4229b5b5f205faf1c",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/travelers.csv",
      "format": "csv",
      "table": "travelers",
      "key": "datasets/wanderlust-insights/v1/csv/travelers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/csv/travelers.csv",
      "bytes": 43021,
      "sha256": "8e772140a23766a6e46815bdfe3f7426283bb342c4e851a2cc6d9ecdd2eaa021",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/bookings.csv",
      "format": "csv",
      "table": "bookings",
      "key": "datasets/wanderlust-insights/v1/csv/bookings.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/csv/bookings.csv",
      "bytes": 10364,
      "sha256": "96d0a8e9d683bbcc2e58e64644dea73d4e2326c01832d0c5359e064b10766f36",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/journals.csv",
      "format": "csv",
      "table": "journals",
      "key": "datasets/wanderlust-insights/v1/csv/journals.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/csv/journals.csv",
      "bytes": 44170,
      "sha256": "a91443b0d0ef8d1cbada52e6ae0ad608a13e4b8e63a2d4f06934833702ff8bbe",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/photos.csv",
      "format": "csv",
      "table": "photos",
      "key": "datasets/wanderlust-insights/v1/csv/photos.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/csv/photos.csv",
      "bytes": 27864,
      "sha256": "aeba512c6e42e57b83b975cb8effc5cda1303c68da7c587a5dc4f2bc1b1cbb7c",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "wanderlust-insights.json",
      "format": "json",
      "table": null,
      "key": "datasets/wanderlust-insights/v1/wanderlust-insights.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/wanderlust-insights.json",
      "bytes": 341957,
      "sha256": "a3070c1e65c3431b6b8f070cb625613719e02c83da0a2a814afcb9bc4b90ce03",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/wanderlust-insights/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/sql/postgres.sql",
      "bytes": 219159,
      "sha256": "6fd1716b7f81cb9b54f3c856b5b579966d52a900e86c408b8a4b3dfe6ff901c7",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/wanderlust-insights/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/sql/mysql.sql",
      "bytes": 218486,
      "sha256": "ed2c281a9b2a717f83e86f38c9e249b8c5db625388c84fc56b0f6d5dbfab4253",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/wanderlust-insights/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/sql/mssql.sql",
      "bytes": 221808,
      "sha256": "a759b9a7770c39e2fde78c7f71917f20cfe44a8218bc5951feb23902b7d481d1",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/wanderlust-insights/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/sql/sqlite.sql",
      "bytes": 218242,
      "sha256": "5d99bdf889c5fb59e5d51bb68e337424e7ce94090703923810ded6efa5036dd4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/wanderlust-insights/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/prisma/seed.ts",
      "bytes": 294769,
      "sha256": "098128bac8afcfcc42674d151eaf4c5ba1df4b99c2e6a68d17cb8e9300d95fb4",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/wanderlust-insights/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-insights/v1/django/fixtures.json",
      "bytes": 406933,
      "sha256": "9de9604ca1da49f048c305b9820688bf64068b9795d8564805f8050ce756e393",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767971735,
  "updatedAt": 1788767971735
}
