{
  "format": "dataset-manifest/1",
  "slug": "wanderlust-snaps-network",
  "version": 3,
  "seed": "wanderlust-snaps-network:1",
  "engine": 1,
  "engineVersion": "1.0.0",
  "spec": {
    "format": "dataset/1",
    "slug": "wanderlust-snaps-network",
    "name": "Wanderlust Snaps Network",
    "tagline": "A vibrant community for travel photography enthusiasts to share and explore.",
    "description": "Travel enthusiasts share their photography experiences, connecting through a platform designed for exploration and inspiration. Users upload their stunning travel photos, each tagged with relevant keywords that highlight their adventures. These tags help others discover new locations and themes, from serene beaches to bustling cityscapes. While the majority of users contribute a modest collection of images, a select group offers an extensive portfolio, showcasing thousands of captivating photographs that foster engagement around popular destinations and trending contests.\n\nThe tables in this dataset establish a network of interactions among users. Each 'users' entry represents an individual traveler who may follow other users or enter contests. The 'photos' table contains individual images uploaded by users, with each photo linked to specific tags in the 'photo_tags' table that categorize the content. The 'follows' table tracks which users are following others, creating a community dynamic where inspiration flows freely. Lastly, the 'contests' table outlines various competitions that users can enter, where they submit their best work to compete for recognition and prizes.\n\nBy analyzing this dataset, developers can explore questions such as how user interactions drive engagement, what types of photos attract the most attention, and how tagging influences discoverability. Practicing with this data allows for insights into community-building and the dynamics of social interactions in a travel photography context. It should be noted that all data within this dataset is synthetic, ensuring a safe environment for practice and exploration.",
    "domain": "travel",
    "shape": "graph-edges",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "travel",
      "photography",
      "community",
      "tags",
      "user interactions",
      "contests",
      "follows"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table represents the users of the platform, each contributing their unique travel photography. Each user has a unique identifier.",
        "rows": 200,
        "columns": {
          "user_id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the user.",
            "nullable": true
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The email address of the user.",
            "nullable": true
          },
          "join_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date when the user joined the platform.",
            "nullable": true,
            "trend": "growing"
          }
        }
      },
      "photos": {
        "description": "This table contains the photos shared by users, each linked to the user who uploaded it.",
        "rows": 500,
        "columns": {
          "photo_id": {
            "kind": "pk",
            "description": "Unique identifier for each photo."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.user_id",
            "description": "Identifier linking to the user who uploaded the photo."
          },
          "upload_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the photo was uploaded.",
            "dayProfile": "waking"
          },
          "description": {
            "kind": "sentence",
            "min": 10,
            "max": 200,
            "description": "A brief description of the photo.",
            "nullable": true
          },
          "likes_count": {
            "kind": "int",
            "min": 0,
            "max": 10000,
            "distribution": "normal",
            "description": "Number of likes the photo received."
          },
          "views_count": {
            "kind": "int",
            "min": 0,
            "max": 100000,
            "distribution": "normal",
            "description": "Number of times the photo was viewed."
          }
        }
      },
      "photo_tags": {
        "description": "This table categorizes photos with various tags to describe their themes and locations.",
        "rows": 1000,
        "columns": {
          "tag_id": {
            "kind": "pk",
            "description": "Unique identifier for each tag."
          },
          "photo_id": {
            "kind": "fk",
            "ref": "photos.photo_id",
            "description": "Identifier linking to the photo associated with the tag."
          },
          "tag": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The tag describing the photo's theme or location.",
            "pool": [
              "sunset",
              "beach",
              "mountain",
              "adventure",
              "exploration",
              "landscape",
              "cityscape",
              "wildlife",
              "culture",
              "travel",
              "nature",
              "vacation",
              "journey",
              "scenery",
              "hiking",
              "photography",
              "ocean",
              "forest",
              "desert",
              "river",
              "roadtrip",
              "camping",
              "historic",
              "architecture",
              "tropical",
              "snow",
              "urban",
              "island",
              "retreat",
              "expedition",
              "safari",
              "resort",
              "backpacking",
              "cruise",
              "wander",
              "local",
              "hidden",
              "tour",
              "experience",
              "destination",
              "view",
              "sightseeing",
              "landmark",
              "adrenaline",
              "serenity",
              "tranquility",
              "explore",
              "offbeat",
              "remote",
              "paradise",
              "journeys",
              "discover",
              "escape"
            ]
          },
          "popularity_score": {
            "kind": "decimal",
            "min": 0,
            "max": 100,
            "scale": 2,
            "distribution": "normal",
            "description": "Score indicating the popularity of the tag."
          },
          "tag_category": {
            "kind": "enum",
            "values": [
              "landscape",
              "portrait",
              "wildlife",
              "cityscape",
              "abstract"
            ],
            "weights": [
              40,
              20,
              20,
              15,
              5
            ],
            "description": "The category of the tag describing the photo's theme."
          },
          "usage_count": {
            "kind": "int",
            "min": 1,
            "max": 500,
            "distribution": "normal",
            "description": "The number of times this tag has been used across all photos."
          }
        }
      },
      "follows": {
        "description": "This table captures the relationships between users, indicating who follows whom.",
        "rows": 400,
        "columns": {
          "follow_id": {
            "kind": "pk",
            "description": "Unique identifier for each follow relationship."
          },
          "follower_id": {
            "kind": "fk",
            "ref": "users.user_id",
            "description": "Identifier for the user who follows another user."
          },
          "followed_id": {
            "kind": "fk",
            "ref": "users.user_id",
            "description": "Identifier for the user being followed."
          },
          "follow_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date when the follow relationship was established."
          },
          "is_active": {
            "kind": "bool",
            "trueRate": 0.8,
            "description": "Indicates if the follow relationship is currently active."
          },
          "follow_type": {
            "kind": "enum",
            "values": [
              "mutual",
              "unidirectional"
            ],
            "description": "Type of follow relationship."
          }
        }
      },
      "contests": {
        "description": "This table outlines various photography contests available for users to participate in.",
        "rows": 50,
        "columns": {
          "contest_id": {
            "kind": "pk",
            "description": "Unique identifier for each contest."
          },
          "title": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The title of the contest.",
            "nullable": true,
            "pool": [
              "photography",
              "adventure",
              "exploration",
              "nature",
              "landscape",
              "travel",
              "journey",
              "wildlife",
              "culture",
              "sunset",
              "urban",
              "island",
              "retreat",
              "expedition",
              "safari",
              "backpacking",
              "cruise"
            ]
          },
          "start_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The start date of the contest.",
            "nullable": true,
            "trend": "seasonal"
          },
          "end_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The end date of the contest.",
            "nullable": true,
            "trend": "seasonal"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "How many users participate in contests, and what are the most popular contests?",
      "What tags are most commonly used in photos shared by users?",
      "How does user engagement vary based on the number of follows?",
      "What is the average number of photos uploaded per user?",
      "Which users are the most influential based on their follow relationships?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Users and Photos",
        "sql": "SELECT u.full_name, p.description FROM users u JOIN photos p ON u.user_id = p.user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Photos by User",
        "sql": "SELECT user_id, COUNT(photo_id) AS photo_count FROM photos GROUP BY user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Find Most Popular Tags",
        "sql": "SELECT tag, COUNT(*) AS tag_count FROM photo_tags GROUP BY tag ORDER BY tag_count DESC LIMIT 10;",
        "dialect": "postgres"
      },
      {
        "title": "Contests Participation",
        "sql": "SELECT c.title, COUNT(p.photo_id) AS entries FROM contests c LEFT JOIN photos p ON c.contest_id = p.photo_id GROUP BY c.title;",
        "dialect": "postgres"
      },
      {
        "title": "Follows Network",
        "sql": "SELECT f.follower_id, COUNT(f.followed_id) AS follows_count FROM follows f GROUP BY f.follower_id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "SQL Practice for Developers",
        "body": "Developers can use this dataset to practice SQL queries and explore relationships between users, photos, and contests. By manipulating the data, they can sharpen their skills in joining tables, aggregating data, and analyzing user engagement."
      },
      {
        "title": "Teaching Data Structures",
        "body": "Educators can leverage this dataset to teach concepts around graph structures and relationships. The interconnected nature of the tables allows for hands-on examples that illustrate how data can be organized and queried effectively."
      },
      {
        "title": "Data Analysis for Travel Insights",
        "body": "Travel analysts can utilize this dataset to understand user behavior and preferences in travel photography. Analyzing the data can provide insights into trending destinations and popular photography themes, which can inform marketing strategies."
      }
    ]
  },
  "counts": {
    "contests": 50,
    "users": 200,
    "follows": 400,
    "photos": 500,
    "photo_tags": 1000
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "user_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 25,
          "distinct": 172,
          "min": "Amir Andersen",
          "max": "Zoe Miller"
        },
        "email": {
          "nulls": 44,
          "distinct": 156
        },
        "join_date": {
          "nulls": 22,
          "distinct": 162,
          "min": "2020-01-16",
          "max": "2023-12-24"
        }
      }
    },
    "photos": {
      "rows": 500,
      "columns": {
        "photo_id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "user_id": {
          "nulls": 0,
          "distinct": 190,
          "min": 1,
          "max": 200
        },
        "upload_date": {
          "nulls": 0,
          "distinct": 500,
          "min": "2020-01-03 15:23:28",
          "max": "2023-12-29 12:07:03"
        },
        "description": {
          "nulls": 45,
          "distinct": 445
        },
        "likes_count": {
          "nulls": 0,
          "distinct": 482,
          "min": 1397,
          "max": 9630
        },
        "views_count": {
          "nulls": 0,
          "distinct": 499,
          "min": 7750,
          "max": 91010
        }
      }
    },
    "photo_tags": {
      "rows": 1000,
      "columns": {
        "tag_id": {
          "nulls": 0,
          "distinct": 1000,
          "min": 1,
          "max": 1000
        },
        "photo_id": {
          "nulls": 0,
          "distinct": 422,
          "min": 1,
          "max": 500
        },
        "tag": {
          "nulls": 0,
          "distinct": 700
        },
        "popularity_score": {
          "nulls": 0,
          "distinct": 910,
          "min": 9.12,
          "max": 91.39
        },
        "tag_category": {
          "nulls": 0,
          "distinct": 5,
          "min": "abstract",
          "max": "wildlife"
        },
        "usage_count": {
          "nulls": 0,
          "distinct": 297,
          "min": 43,
          "max": 460
        }
      }
    },
    "follows": {
      "rows": 400,
      "columns": {
        "follow_id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "follower_id": {
          "nulls": 0,
          "distinct": 174,
          "min": 1,
          "max": 200
        },
        "followed_id": {
          "nulls": 0,
          "distinct": 168,
          "min": 1,
          "max": 198
        },
        "follow_date": {
          "nulls": 0,
          "distinct": 355,
          "min": "2020-01-06",
          "max": "2023-12-31"
        },
        "is_active": {
          "nulls": 0,
          "distinct": 2,
          "min": "false",
          "max": "true"
        },
        "follow_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "mutual",
          "max": "unidirectional"
        }
      }
    },
    "contests": {
      "rows": 50,
      "columns": {
        "contest_id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "title": {
          "nulls": 4,
          "distinct": 38
        },
        "start_date": {
          "nulls": 5,
          "distinct": 44,
          "min": "2020-03-10",
          "max": "2023-12-29"
        },
        "end_date": {
          "nulls": 11,
          "distinct": 39,
          "min": "2020-01-04",
          "max": "2023-11-27"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/contests.csv",
      "format": "csv",
      "table": "contests",
      "key": "datasets/wanderlust-snaps-network/v3/csv/contests.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/csv/contests.csv",
      "bytes": 1894,
      "sha256": "7ba9f21a0e821d6277a0f82ec04f9ca35c83abc360fb2376eb10aa69709a2233",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/wanderlust-snaps-network/v3/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/csv/users.csv",
      "bytes": 8904,
      "sha256": "7f447c7844167eff3cb58bb2d47bf0bdfaa3a5676877b9454be8d81c9d45aa54",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/follows.csv",
      "format": "csv",
      "table": "follows",
      "key": "datasets/wanderlust-snaps-network/v3/csv/follows.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/csv/follows.csv",
      "bytes": 15561,
      "sha256": "5bbbeb9490d8b1418e6f47f87711c1ba76e7bce7b10c1b42bcffd9e6b3e5bfdb",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/photos.csv",
      "format": "csv",
      "table": "photos",
      "key": "datasets/wanderlust-snaps-network/v3/csv/photos.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/csv/photos.csv",
      "bytes": 48488,
      "sha256": "170230705b723b227a003612d39cfe63c6b64c6eb975bdfdb7436a4bf9af14f8",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/photo_tags.csv",
      "format": "csv",
      "table": "photo_tags",
      "key": "datasets/wanderlust-snaps-network/v3/csv/photo_tags.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/csv/photo_tags.csv",
      "bytes": 44996,
      "sha256": "cf1baf7edc6318aeaa8359e5ef11cd89d2c8e84efa65809b2786e965c6b295cc",
      "rows": 1000,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "wanderlust-snaps-network.json",
      "format": "json",
      "table": null,
      "key": "datasets/wanderlust-snaps-network/v3/wanderlust-snaps-network.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/wanderlust-snaps-network.json",
      "bytes": 406646,
      "sha256": "5e63d6d6d90e3dc1de269e59f795cec55e92c80b19c50f5c808f2ad3874d6a7d",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/wanderlust-snaps-network/v3/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/sql/postgres.sql",
      "bytes": 155567,
      "sha256": "3b2be9054977bba9a5d72d19f00c143c798d63d59538b371e2f23ecb4b460b79",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/wanderlust-snaps-network/v3/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/sql/mysql.sql",
      "bytes": 153689,
      "sha256": "93ab624b6fbc98e6b39afb1454697c0ac8001d58d2842a3933e14ee5d00d021b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/wanderlust-snaps-network/v3/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/sql/mssql.sql",
      "bytes": 158389,
      "sha256": "3bb2c41fd44e41b1085633bcd86c9ebe5d2465bde6e4fd91d10fa841f0857097",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/wanderlust-snaps-network/v3/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/sql/sqlite.sql",
      "bytes": 153516,
      "sha256": "881c87c8f55b712f8a74178ce507ac09f754f243446e03d7853feea79b1f95b4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/wanderlust-snaps-network/v3/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/prisma/seed.ts",
      "bytes": 324664,
      "sha256": "c81518fe356c6de256c3953e671d8658475a7b0cfea03cb2a6297ef522b0c68b",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/wanderlust-snaps-network/v3/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/wanderlust-snaps-network/v3/django/fixtures.json",
      "bytes": 484659,
      "sha256": "0f861baf080ef0fddef0b0d2c690bec900376059cb4c43581a137c293660c613",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767755904,
  "updatedAt": 1789096153979
}
