{
  "format": "dataset-manifest/1",
  "slug": "wanderlust-chronicles",
  "version": 1,
  "seed": "wanderlust-chronicles:1",
  "spec": {
    "format": "dataset/1",
    "slug": "wanderlust-chronicles",
    "name": "Wanderlust Chronicles",
    "tagline": "A platform for sharing travel experiences, insights, and reviews.",
    "description": "Wanderlust Chronicles is a synthetic dataset designed to simulate a vibrant platform where travel enthusiasts share their adventures and insights from around the globe. This dataset captures user-generated content, including travel reviews, multimedia posts, and interactive guides that enrich the travel planning experience. The tables in this dataset model the interactions among users, destinations, reviews, media, and badges, providing a comprehensive view of how users engage with various travel points of interest. Each table serves a specific purpose: users create reviews, upload media, and earn badges for their participation, while destinations receive feedback from the community. With this dataset, users can explore analytics around popular tourist spots and uncover unique experiences that may not be widely known. It is a great resource for SQL practice and teaching, allowing users to work with graph-edges that illustrate the relationships between users, their travels, and the content they generate. This dataset is synthetic, ensuring that it provides a safe and practical environment for exploration and learning.",
    "domain": "travel",
    "shape": "graph-edges",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "travel",
      "reviews",
      "user-generated content",
      "destinations",
      "media",
      "badges",
      "travel experiences"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table stores information about users of the platform. Each user can create reviews, upload media, and earn badges.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "A unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the user."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The email address of the user."
          },
          "join_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date the user joined the platform.",
            "trend": "growing"
          },
          "badges_earned": {
            "kind": "int",
            "min": 0,
            "max": 50,
            "description": "The number of badges earned by the user.",
            "nullable": true
          }
        }
      },
      "destinations": {
        "description": "This table contains details about various travel destinations users can explore and review.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "A unique identifier for each destination."
          },
          "name": {
            "kind": "words",
            "description": "The name of the destination."
          },
          "country": {
            "kind": "country",
            "description": "The country where the destination is located."
          },
          "popularity_score": {
            "kind": "int",
            "min": 1,
            "max": 100,
            "description": "A score indicating the popularity of the destination.",
            "nullable": true,
            "when": {
              "column": "type",
              "in": [
                "urban",
                "natural",
                "cultural"
              ]
            }
          },
          "type": {
            "kind": "enum",
            "values": [
              "urban",
              "natural",
              "cultural"
            ],
            "description": "The type of the destination."
          }
        }
      },
      "reviews": {
        "description": "This table captures the reviews written by users for various destinations, linking users and destinations together.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "A unique identifier for each review."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user who wrote the review."
          },
          "destination_id": {
            "kind": "fk",
            "ref": "destinations.id",
            "description": "The ID of the destination being reviewed."
          },
          "rating": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "description": "The rating given by the user, from 1 to 5."
          },
          "content": {
            "kind": "sentence",
            "description": "The text content of the review.",
            "nullable": true
          },
          "review_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date the review was submitted.",
            "trend": "seasonal"
          }
        }
      },
      "media": {
        "description": "This table holds media uploads associated with reviews, such as photos and videos shared by users.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "A unique identifier for each media entry."
          },
          "review_id": {
            "kind": "fk",
            "ref": "reviews.id",
            "description": "The ID of the review associated with this media."
          },
          "media_type": {
            "kind": "enum",
            "values": [
              "photo",
              "video"
            ],
            "description": "The type of media uploaded."
          },
          "url": {
            "kind": "url",
            "description": "The URL where the media can be accessed.",
            "nullable": true,
            "when": {
              "column": "media_type",
              "in": [
                "photo",
                "video"
              ]
            }
          },
          "upload_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date the media was uploaded.",
            "trend": "growing"
          }
        }
      },
      "badges": {
        "description": "This table lists the badges that users can earn through their participation in the platform.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "A unique identifier for each badge."
          },
          "name": {
            "kind": "words",
            "description": "The name of the badge."
          },
          "criteria": {
            "kind": "sentence",
            "description": "The criteria that must be met to earn this badge."
          },
          "issued_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date the badge was issued.",
            "trend": "growing"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable"
    ],
    "analysisQuestions": [
      "What are the most popular travel destinations among users?",
      "How do user ratings vary across different types of destinations?",
      "What types of media do users share the most with their reviews?",
      "How does the number of badges earned correlate with user engagement?",
      "Which destinations have the highest average rating based on user reviews?"
    ],
    "suggestedQueries": [
      {
        "title": "Get all reviews for a specific destination",
        "sql": "SELECT * FROM reviews WHERE destination_id = $1;",
        "dialect": "postgres"
      },
      {
        "title": "Count the number of reviews per user",
        "sql": "SELECT user_id, COUNT(*) AS review_count FROM reviews GROUP BY user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Find average rating for each destination",
        "sql": "SELECT destination_id, AVG(rating) AS average_rating FROM reviews GROUP BY destination_id;",
        "dialect": "postgres"
      },
      {
        "title": "List users with the most badges",
        "sql": "SELECT user_id, COUNT(*) AS badges_count FROM badges GROUP BY user_id ORDER BY badges_count DESC;",
        "dialect": "postgres"
      },
      {
        "title": "Retrieve media associated with the top-rated reviews",
        "sql": "SELECT media.* FROM media JOIN reviews ON media.review_id = reviews.id WHERE reviews.rating = 5;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "SQL Training for Data Analysts",
        "body": "Data analysts can use the Wanderlust Chronicles dataset to practice SQL queries for data retrieval and analysis. By exploring relationships between users, reviews, and destinations, they can gain insights into user behavior and popular travel trends."
      },
      {
        "title": "Teaching Database Management",
        "body": "Educators can employ this dataset in their database management courses to teach students about relational databases. The multi-table structure allows students to learn about foreign keys, joins, and data normalization through hands-on exercises."
      },
      {
        "title": "Travel Insights for Marketers",
        "body": "Marketing professionals can analyze the dataset to understand user engagement and preferences in travel. By examining reviews and media shared, they can tailor marketing campaigns that resonate with travel enthusiasts and highlight trending destinations."
      },
      {
        "title": "User Engagement Analysis",
        "body": "Product managers can utilize this dataset to evaluate user engagement on the platform. By analyzing the number of reviews and badges earned, they can identify active users and devise strategies to incentivize participation and enhance user experience."
      }
    ]
  },
  "counts": {
    "badges": 50,
    "destinations": 150,
    "users": 100,
    "reviews": 300,
    "media": 200
  },
  "stats": {
    "users": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "full_name": {
          "nulls": 0,
          "distinct": 100,
          "min": "Alice Flores",
          "max": "Zoe Shah"
        },
        "email": {
          "nulls": 0,
          "distinct": 100
        },
        "join_date": {
          "nulls": 0,
          "distinct": 97,
          "min": "2020-01-16",
          "max": "2022-12-31"
        },
        "badges_earned": {
          "nulls": 11,
          "distinct": 42,
          "min": 0,
          "max": 49
        }
      }
    },
    "destinations": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "name": {
          "nulls": 0,
          "distinct": 150
        },
        "country": {
          "nulls": 0,
          "distinct": 40,
          "min": "Argentina",
          "max": "United States"
        },
        "popularity_score": {
          "nulls": 0,
          "distinct": 72,
          "min": 1,
          "max": 100
        },
        "type": {
          "nulls": 0,
          "distinct": 3,
          "min": "cultural",
          "max": "urban"
        }
      }
    },
    "reviews": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "user_id": {
          "nulls": 0,
          "distinct": 92,
          "min": 1,
          "max": 100
        },
        "destination_id": {
          "nulls": 0,
          "distinct": 127,
          "min": 2,
          "max": 150
        },
        "rating": {
          "nulls": 0,
          "distinct": 5,
          "min": 1,
          "max": 5
        },
        "content": {
          "nulls": 29,
          "distinct": 269
        },
        "review_date": {
          "nulls": 0,
          "distinct": 259,
          "min": "2020-01-05",
          "max": "2023-01-01"
        }
      }
    },
    "media": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "review_id": {
          "nulls": 0,
          "distinct": 148,
          "min": 1,
          "max": 300
        },
        "media_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "photo",
          "max": "video"
        },
        "url": {
          "nulls": 0,
          "distinct": 198
        },
        "upload_date": {
          "nulls": 0,
          "distinct": 179,
          "min": "2020-01-05",
          "max": "2022-12-27"
        }
      }
    },
    "badges": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "name": {
          "nulls": 0,
          "distinct": 50
        },
        "criteria": {
          "nulls": 0,
          "distinct": 50
        },
        "issued_date": {
          "nulls": 0,
          "distinct": 49,
          "min": "2020-02-18",
          "max": "2022-12-02"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/badges.csv",
      "format": "csv",
      "table": "badges",
      "key": "datasets/wanderlust-chronicles/v1/csv/badges.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/csv/badges.csv",
      "bytes": 4981,
      "sha256": "13b75d110fb86e892d925cd5ce80c9a495294454a4033526cc8cf5c9ada36983",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/destinations.csv",
      "format": "csv",
      "table": "destinations",
      "key": "datasets/wanderlust-chronicles/v1/csv/destinations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/csv/destinations.csv",
      "bytes": 7814,
      "sha256": "3e94b015fa04057557cd598d659a978137e84aa720770f17549458519664ce2a",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/wanderlust-chronicles/v1/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/csv/users.csv",
      "bytes": 5427,
      "sha256": "e4c90232c785e4191975fce0f650b5fe9c5a899067ce76e967f3d70490eec847",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reviews.csv",
      "format": "csv",
      "table": "reviews",
      "key": "datasets/wanderlust-chronicles/v1/csv/reviews.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/csv/reviews.csv",
      "bytes": 22522,
      "sha256": "079687a19da8db31a51cbdaca3222cfb5545495d0b0dd3a7de5cbe3c873b6b08",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/media.csv",
      "format": "csv",
      "table": "media",
      "key": "datasets/wanderlust-chronicles/v1/csv/media.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/csv/media.csv",
      "bytes": 11734,
      "sha256": "39816249df749ab284136bd664c2be1ccf4c510744645c6f4864df70ca8ed834",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "wanderlust-chronicles.json",
      "format": "json",
      "table": null,
      "key": "datasets/wanderlust-chronicles/v1/wanderlust-chronicles.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/wanderlust-chronicles.json",
      "bytes": 143170,
      "sha256": "96c938f1765f18a8284ffcc7fb60c9beb5ca648170bf2aeab77de40dbec77808",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/wanderlust-chronicles/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/sql/postgres.sql",
      "bytes": 67410,
      "sha256": "b06cf0e6acdfc905fef0b7687720d6fc625811743a46946f24f737d44afeb8e6",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/wanderlust-chronicles/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/sql/mysql.sql",
      "bytes": 66865,
      "sha256": "9dc13cb71b6a50719078adeb45178aa24f67c8ada3b455a38101940c8ee1cf44",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/wanderlust-chronicles/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/sql/mssql.sql",
      "bytes": 69257,
      "sha256": "4e3feb5a372088997ec0e8fd214b11232eea46ca41cd7829da7f7d85a3d76194",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/wanderlust-chronicles/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/sql/sqlite.sql",
      "bytes": 66713,
      "sha256": "9d6e5255813da75f3fd78b15f58f3df88f6fc3114c7074065ca09f2ea56dbb79",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/wanderlust-chronicles/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/prisma/seed.ts",
      "bytes": 113295,
      "sha256": "0a224c9e6f98eda3d21ee55ed5890a876dd8ea15cf9ad116f4f91104c4be856d",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/wanderlust-chronicles/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-chronicles/v1/django/fixtures.json",
      "bytes": 175375,
      "sha256": "39ca051846a510ab6ba24257c6f4189a56bd531284f51b4519365e45d6cc0fa2",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788734430127,
  "updatedAt": 1788734430127
}
