{
  "format": "dataset-manifest/1",
  "slug": "adventure-trip-planning-app",
  "version": 1,
  "seed": "adventure-trip-planning-app:1",
  "spec": {
    "format": "dataset/1",
    "slug": "adventure-trip-planning-app",
    "name": "Adventure Trip Insights",
    "tagline": "Trips, accommodations, transport options, reviews, and packing lists for adventure travel planning.",
    "description": "Adventure travel planning connects thrill-seekers with unique destinations and experienced guides. This dataset models user interactions where travelers can explore various trips, share their experiences through reviews, and create personalized packing lists. The tables represent trips, accommodations, transportation options, reviews, and packing lists, allowing for insightful analysis of traveler preferences and behaviors. Users can investigate common trends in trip bookings, the popularity of destinations, and the impact of traveler reviews on future bookings. This synthetic dataset is perfect for practicing SQL queries and ORM seeding in applications focused on travel and adventure planning.",
    "domain": "travel",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "travel",
      "adventure",
      "destinations",
      "trips",
      "accommodations",
      "transportation",
      "reviews",
      "packing lists"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "trips": {
        "description": "Each row in this table represents a unique adventure trip, detailing its destination, price range, and trip type. It links to accommodations and transportation options that can be booked for the trip.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each trip."
          },
          "destination": {
            "kind": "words",
            "min": 3,
            "max": 15,
            "description": "Name of the trip destination.",
            "nullable": true
          },
          "price_range": {
            "kind": "enum",
            "values": [
              "budget",
              "mid-range",
              "luxury"
            ],
            "description": "Category of the trip based on pricing."
          },
          "trip_type": {
            "kind": "enum",
            "values": [
              "hiking",
              "water sports",
              "safari",
              "cultural"
            ],
            "description": "Type of adventure offered in the trip."
          }
        }
      },
      "accommodations": {
        "description": "This table includes various accommodation options linked to trips, outlining the type of accommodation, cost, and its rating. It connects to trips through a foreign key, representing available lodging for each journey.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each accommodation."
          },
          "trip_id": {
            "kind": "fk",
            "ref": "trips.id",
            "description": "ID of the trip this accommodation is associated with."
          },
          "accommodation_type": {
            "kind": "enum",
            "values": [
              "hotel",
              "hostel",
              "cabin",
              "campground"
            ],
            "description": "Type of accommodation available."
          },
          "cost_per_night": {
            "kind": "decimal",
            "min": 50,
            "max": 500,
            "scale": 2,
            "description": "Cost per night for the accommodation.",
            "nullable": true
          },
          "rating": {
            "kind": "decimal",
            "min": 1,
            "max": 5,
            "scale": 1,
            "description": "Average rating of the accommodation.",
            "nullable": true,
            "when": {
              "column": "accommodation_type",
              "in": [
                "hotel",
                "hostel",
                "cabin",
                "campground"
              ]
            }
          }
        }
      },
      "transport_options": {
        "description": "This table catalogs transportation options associated with trips, linking to trips through a foreign key. It includes details about the type of transport and its cost.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each transport option."
          },
          "trip_id": {
            "kind": "fk",
            "ref": "trips.id",
            "description": "ID of the trip this transport option is for."
          },
          "transport_type": {
            "kind": "enum",
            "values": [
              "bus",
              "train",
              "car rental",
              "flight"
            ],
            "description": "Type of transport available for the trip."
          },
          "cost": {
            "kind": "decimal",
            "min": 20,
            "max": 1500,
            "scale": 2,
            "description": "Cost associated with the transportation option.",
            "nullable": true,
            "when": {
              "column": "transport_type",
              "in": [
                "bus",
                "train",
                "car rental",
                "flight"
              ]
            }
          }
        }
      },
      "reviews": {
        "description": "Each row represents a review left by a traveler for a specific trip, providing insights into their experiences. It connects to trips through a foreign key, allowing for analysis of traveler sentiment.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each review."
          },
          "trip_id": {
            "kind": "fk",
            "ref": "trips.id",
            "description": "ID of the trip for which the review was written."
          },
          "review_text": {
            "kind": "paragraph",
            "min": 50,
            "max": 500,
            "description": "Text of the review provided by the traveler.",
            "nullable": true
          },
          "rating": {
            "kind": "decimal",
            "min": 1,
            "max": 5,
            "scale": 1,
            "description": "Traveler's rating of the trip.",
            "nullable": true
          },
          "created_at": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date and time the review was created.",
            "dayProfile": "waking"
          }
        }
      },
      "packing_lists": {
        "description": "This table contains packing lists created by travelers for specific trips, detailing items they consider necessary. It links to trips through a foreign key, helping to determine common packing needs for various adventures.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each packing list."
          },
          "trip_id": {
            "kind": "fk",
            "ref": "trips.id",
            "description": "ID of the trip for which the packing list is created."
          },
          "items": {
            "kind": "json",
            "template": {
              "item": {
                "kind": "words",
                "min": 1,
                "max": 30,
                "description": "Item to pack for the trip."
              }
            },
            "description": "List of items to pack for the adventure.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "free-text",
      "nullable",
      "timestamped"
    ],
    "analysisQuestions": [
      "What are the most popular adventure trip types among travelers?",
      "How do accommodation ratings impact trip bookings?",
      "What items are most frequently included in packing lists for different trip types?",
      "How do traveler reviews affect the overall rating of a trip?",
      "What trends can be identified in transportation costs across various trips?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Trips with Accommodations",
        "sql": "SELECT trips.destination, accommodations.accommodation_type FROM trips JOIN accommodations ON trips.id = accommodations.trip_id;",
        "dialect": "postgres"
      },
      {
        "title": "Average Cost of Accommodations by Trip Type",
        "sql": "SELECT trips.trip_type, AVG(accommodations.cost_per_night) AS average_cost FROM trips JOIN accommodations ON trips.id = accommodations.trip_id GROUP BY trips.trip_type;",
        "dialect": "postgres"
      },
      {
        "title": "Top Rated Trips by Average Review",
        "sql": "SELECT trips.destination, AVG(reviews.rating) AS average_rating FROM trips JOIN reviews ON trips.id = reviews.trip_id GROUP BY trips.destination ORDER BY average_rating DESC;",
        "dialect": "postgres"
      },
      {
        "title": "Packing Items for Luxury Trips",
        "sql": "SELECT packing_lists.items FROM packing_lists JOIN trips ON packing_lists.trip_id = trips.id WHERE trips.price_range = 'luxury';",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Travel Agency Analysis",
        "body": "Travel agencies can use this dataset to analyze trends in adventure trips, helping them tailor packages that meet the preferences of thrill-seeking travelers. By examining popular destinations and trip types, they can optimize their offerings and improve customer satisfaction."
      },
      {
        "title": "User Experience Research",
        "body": "UX researchers can leverage the reviews and packing lists to understand traveler pain points and preferences. Analyzing feedback can inform the design of a travel planning app that enhances user engagement and satisfaction."
      },
      {
        "title": "Market Trends Evaluation",
        "body": "Marketing teams can analyze the dataset to identify market trends in adventure travel. Insights from the data can guide targeted marketing campaigns aimed at attracting specific traveler demographics based on trip types and reviews."
      }
    ]
  },
  "counts": {
    "trips": 200,
    "accommodations": 150,
    "packing_lists": 200,
    "reviews": 250,
    "transport_options": 100
  },
  "stats": {
    "trips": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "destination": {
          "nulls": 24,
          "distinct": 176
        },
        "price_range": {
          "nulls": 0,
          "distinct": 3,
          "min": "budget",
          "max": "mid-range"
        },
        "trip_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "cultural",
          "max": "water sports"
        }
      }
    },
    "accommodations": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "trip_id": {
          "nulls": 0,
          "distinct": 101,
          "min": 2,
          "max": 200
        },
        "accommodation_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "cabin",
          "max": "hotel"
        },
        "cost_per_night": {
          "nulls": 15,
          "distinct": 135,
          "min": 51.83,
          "max": 499.81
        },
        "rating": {
          "nulls": 0,
          "distinct": 37,
          "min": 1,
          "max": 4.9
        }
      }
    },
    "transport_options": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "trip_id": {
          "nulls": 0,
          "distinct": 77,
          "min": 1,
          "max": 199
        },
        "transport_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "bus",
          "max": "train"
        },
        "cost": {
          "nulls": 0,
          "distinct": 100,
          "min": 76.85,
          "max": 1491.32
        }
      }
    },
    "reviews": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "trip_id": {
          "nulls": 0,
          "distinct": 143,
          "min": 1,
          "max": 200
        },
        "review_text": {
          "nulls": 37,
          "distinct": 213
        },
        "rating": {
          "nulls": 27,
          "distinct": 41,
          "min": 1,
          "max": 5
        },
        "created_at": {
          "nulls": 0,
          "distinct": 250,
          "min": "2022-01-01 14:49:24",
          "max": "2023-12-31 01:45:59"
        }
      }
    },
    "packing_lists": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "trip_id": {
          "nulls": 0,
          "distinct": 132,
          "min": 2,
          "max": 199
        },
        "items": {
          "nulls": 20,
          "distinct": 180
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/trips.csv",
      "format": "csv",
      "table": "trips",
      "key": "datasets/adventure-trip-planning-app/v1/csv/trips.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/csv/trips.csv",
      "bytes": 14610,
      "sha256": "0568f4eeaa23a09d01acafc31a5bfe7d6b9f8960b47c4f5ab6fe6d48b6ba9120",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/accommodations.csv",
      "format": "csv",
      "table": "accommodations",
      "key": "datasets/adventure-trip-planning-app/v1/csv/accommodations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/csv/accommodations.csv",
      "bytes": 3918,
      "sha256": "609f7d8c0d652e60a51356b76a98c478b59e1a01eb3acb641e2ec422acdbed5e",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/packing_lists.csv",
      "format": "csv",
      "table": "packing_lists",
      "key": "datasets/adventure-trip-planning-app/v1/csv/packing_lists.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/csv/packing_lists.csv",
      "bytes": 23767,
      "sha256": "8cf43c5f189d07adc78567b9df6798706af663ff8d1f786f9676ebd15562590b",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reviews.csv",
      "format": "csv",
      "table": "reviews",
      "key": "datasets/adventure-trip-planning-app/v1/csv/reviews.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/csv/reviews.csv",
      "bytes": 43923,
      "sha256": "8ccb76e24b49e8439e6f1d5afc79603de0d7768f42fe0c00bd99cf9cc70baef3",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transport_options.csv",
      "format": "csv",
      "table": "transport_options",
      "key": "datasets/adventure-trip-planning-app/v1/csv/transport_options.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/csv/transport_options.csv",
      "bytes": 2176,
      "sha256": "4b1ed1926f8e6e760b26812d9e67ec5e297d63ec446a144e5649a7c8508617bb",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "adventure-trip-planning-app.json",
      "format": "json",
      "table": null,
      "key": "datasets/adventure-trip-planning-app/v1/adventure-trip-planning-app.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/adventure-trip-planning-app.json",
      "bytes": 172934,
      "sha256": "c9434f1aaab61be54068542db854dcb9f2437fd3e77643cc48176064f1cc7038",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/adventure-trip-planning-app/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/sql/postgres.sql",
      "bytes": 101451,
      "sha256": "a551da490344c171e254f8df44a62841079cc863877334976b03c35fec98d32c",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/adventure-trip-planning-app/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/sql/mysql.sql",
      "bytes": 100870,
      "sha256": "dad45eb79ea6d331436a977bacfe68574ec64bef66e7756d325c0cebc4ca04db",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/adventure-trip-planning-app/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/sql/mssql.sql",
      "bytes": 102700,
      "sha256": "c04632465b26c61190b25fc4c86b2e49157f96aa8e22c9a4929b206af96e7f49",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/adventure-trip-planning-app/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/sql/sqlite.sql",
      "bytes": 100663,
      "sha256": "495152e5886270772e4b2e5794116bb29fb401fc8d6eb12ff143f5bd10ec40fa",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/adventure-trip-planning-app/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/prisma/seed.ts",
      "bytes": 148064,
      "sha256": "704239b149e55a1be249e6f0232b94e4035c812aabcbe66e110a612edc7977bd",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/adventure-trip-planning-app/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/adventure-trip-planning-app/v1/django/fixtures.json",
      "bytes": 213526,
      "sha256": "8bb00b697c8314189b6895e83a227c5bbddd4951b72ddbc4a92d1b18aa287da1",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768074089,
  "updatedAt": 1788768074089
}
