{
  "format": "dataset-manifest/1",
  "slug": "social-connections-dataset",
  "version": 1,
  "seed": "social-connections-dataset:1",
  "spec": {
    "format": "dataset/1",
    "slug": "social-connections-dataset",
    "name": "Social Connections Dataset",
    "tagline": "User profiles, interactions, swipes, messages, friend requests, blocks, and boosts from a social connection platform.",
    "description": "Users swipe through profiles and send messages to find potential matches, engaging in a dynamic social environment. Each user has a profile that includes preferences, interests, and connection history, which is crucial for facilitating matches. The swipes table records each time a user expresses interest or disinterest in another user's profile. Messages capture conversations, allowing users to communicate once a match is established or to foster connections. Additionally, friend requests can lead to deeper interactions, while blocks help users manage unwanted attention, ensuring a safer and more enjoyable experience. Users may also enhance their visibility by utilizing boosts, making it easier to connect with others.\n\nIn this dataset, the users table represents each individual's profile, where one row corresponds to a unique user, capturing their basic information and preferences. The swipes table connects to users, with each record representing a swiping action between two user profiles, allowing developers to analyze patterns in attraction and interest. Messages are tied to user interactions, with rows signifying individual conversations, showcasing how communication flows between matched users. The friend_requests table manages the initiation of friendships, while the blocks table indicates instances where users have chosen to restrict interactions with certain profiles. Boosts highlight promotional efforts by users aiming for increased visibility in the platform.\n\nThis dataset provides valuable insights into user behavior, patterns in social interactions, and the mechanisms behind forming connections. Developers can explore questions such as which factors influence the number of swipes received, what communication styles lead to successful matches, or how friend requests correlate with active user engagement. Each table interconnects to paint a complete picture of user activity within the social platform. Note that this data is synthetic, crafted to simulate real-world interactions while providing a practical environment for analysis.",
    "domain": "social",
    "shape": "graph-edges",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "dating app",
      "social connections",
      "user interactions",
      "swipes",
      "messages",
      "friend requests"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table captures user profiles, including their interests and preferences. Each user has a unique identifier and can have various attributes that describe them.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the user.",
            "nullable": true
          },
          "age": {
            "kind": "int",
            "min": 18,
            "max": 99,
            "description": "Age of the user.",
            "nullable": true,
            "when": {
              "column": "gender",
              "in": [
                "male",
                "female",
                "non-binary"
              ]
            }
          },
          "gender": {
            "kind": "enum",
            "values": [
              "male",
              "female",
              "non-binary"
            ],
            "description": "Gender of the user."
          },
          "interests": {
            "kind": "words",
            "min": 5,
            "max": 50,
            "description": "User interests as a free-text field.",
            "nullable": true,
            "when": {
              "column": "gender",
              "in": [
                "male",
                "female",
                "non-binary"
              ]
            }
          }
        }
      },
      "swipes": {
        "description": "This table records the swiping actions taken by users on other profiles. Each swipe action is linked to the user who performed it and the profile swiped on.",
        "rows": {
          "per": "users",
          "via": "user_id",
          "min": 1,
          "max": 5,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each swipe action."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who performed the swipe."
          },
          "target_user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user profile that was swiped on."
          },
          "direction": {
            "kind": "enum",
            "values": [
              "left",
              "right"
            ],
            "description": "Direction of the swipe: left for dislike, right for like."
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the swipe occurred.",
            "nullable": true,
            "dayProfile": "waking"
          }
        }
      },
      "messages": {
        "description": "This table logs the messages exchanged between users once a match is established. Each message is linked to the sender and receiver.",
        "rows": {
          "per": "swipes",
          "via": "swipe_id",
          "min": 0,
          "max": 3,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each message."
          },
          "swipe_id": {
            "kind": "fk",
            "ref": "swipes.id",
            "description": "The swipe event that led to the messaging."
          },
          "sender_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who sent the message."
          },
          "receiver_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who received the message."
          },
          "content": {
            "kind": "sentence",
            "min": 1,
            "max": 200,
            "description": "The content of the message.",
            "nullable": true
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the message was sent.",
            "nullable": true,
            "dayProfile": "waking",
            "trend": "growing"
          }
        }
      },
      "friend_requests": {
        "description": "This table records friend requests sent between users, capturing the initiator and recipient of each request.",
        "rows": {
          "per": "users",
          "via": "user_id",
          "min": 0,
          "max": 2,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each friend request."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who sent the friend request."
          },
          "target_user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who received the friend request."
          },
          "status": {
            "kind": "enum",
            "values": [
              "pending",
              "accepted",
              "declined"
            ],
            "description": "The status of the friend request."
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the friend request was sent.",
            "nullable": true,
            "when": {
              "column": "status",
              "in": [
                "accepted",
                "declined"
              ]
            },
            "dayProfile": "waking"
          }
        }
      },
      "blocks": {
        "description": "This table contains records of users who have been blocked by others, limiting interactions between them.",
        "rows": {
          "per": "users",
          "via": "blocker_id",
          "min": 0,
          "max": 1,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each block action."
          },
          "blocker_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who initiated the block."
          },
          "blocked_user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who has been blocked."
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the block occurred.",
            "nullable": true,
            "dayProfile": "waking"
          }
        }
      },
      "boosts": {
        "description": "This table records instances when users boost their profiles for enhanced visibility in the app.",
        "rows": {
          "per": "users",
          "via": "user_id",
          "min": 0,
          "max": 1,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each boost action."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who boosted their profile."
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the boost was activated.",
            "dayProfile": "business",
            "trend": "seasonal"
          },
          "duration": {
            "kind": "int",
            "min": 1,
            "max": 24,
            "description": "Duration of the boost in hours.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable"
    ],
    "analysisQuestions": [
      "What is the average number of swipes per user?",
      "How many users have accepted friend requests compared to those who declined?",
      "What percentage of messages are initiated by users after a match?",
      "Which interests are most common among users who boost their profiles?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Users and Swipes",
        "sql": "SELECT users.full_name, COUNT(swipes.id) AS swipe_count FROM users LEFT JOIN swipes ON users.id = swipes.user_id GROUP BY users.full_name;",
        "dialect": "postgres"
      },
      {
        "title": "Count Messages by User",
        "sql": "SELECT sender_id, COUNT(id) AS message_count FROM messages GROUP BY sender_id;",
        "dialect": "postgres"
      },
      {
        "title": "Friend Request Status Distribution",
        "sql": "SELECT status, COUNT(id) AS count FROM friend_requests GROUP BY status;",
        "dialect": "postgres"
      },
      {
        "title": "Boosts Over Time",
        "sql": "SELECT DATE(timestamp) AS boost_date, COUNT(id) AS boosts FROM boosts GROUP BY boost_date ORDER BY boost_date;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Data Analysis for User Engagement",
        "body": "Data analysts can utilize this dataset to explore engagement metrics on a dating app. By examining swipes, messages, and friend requests, they can identify patterns in user behavior, such as peak activity times or the most common interests among engaging users."
      },
      {
        "title": "Teaching SQL in a Real-World Context",
        "body": "Instructors can use this dataset in SQL courses to teach students how to query data in a social application context. Students can practice different types of joins, aggregations, and filtering techniques while learning about user interactions and social dynamics."
      },
      {
        "title": "Product Development Insights",
        "body": "Product managers can analyze the dataset to derive insights into user preferences and behaviors. Understanding how users interact with swipes, messages, and boosts can inform feature development and help to enhance user experience within the app."
      },
      {
        "title": "Behavioral Pattern Recognition",
        "body": "Researchers can leverage the dataset to study behavioral patterns among dating app users. By analyzing swiping habits and messaging frequency, they can uncover trends related to user demographics and preferences, contributing to the understanding of online dating dynamics."
      }
    ]
  },
  "counts": {
    "users": 300,
    "blocks": 90,
    "boosts": 82,
    "friend_requests": 174,
    "swipes": 672,
    "messages": 645
  },
  "stats": {
    "users": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "full_name": {
          "nulls": 28,
          "distinct": 271,
          "min": "Amir Jensen",
          "max": "Zoe Johnson"
        },
        "age": {
          "nulls": 0,
          "distinct": 81,
          "min": 18,
          "max": 99
        },
        "gender": {
          "nulls": 0,
          "distinct": 3,
          "min": "female",
          "max": "non-binary"
        },
        "interests": {
          "nulls": 0,
          "distinct": 300
        }
      }
    },
    "swipes": {
      "rows": 672,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 672,
          "min": 1,
          "max": 672
        },
        "user_id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "target_user_id": {
          "nulls": 0,
          "distinct": 266,
          "min": 1,
          "max": 300
        },
        "direction": {
          "nulls": 0,
          "distinct": 2,
          "min": "left",
          "max": "right"
        },
        "timestamp": {
          "nulls": 59,
          "distinct": 613,
          "min": "2023-01-01 12:20:31",
          "max": "2023-12-31 17:49:33"
        }
      }
    },
    "messages": {
      "rows": 645,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 645,
          "min": 1,
          "max": 645
        },
        "swipe_id": {
          "nulls": 0,
          "distinct": 342,
          "min": 1,
          "max": 672
        },
        "sender_id": {
          "nulls": 0,
          "distinct": 263,
          "min": 1,
          "max": 300
        },
        "receiver_id": {
          "nulls": 0,
          "distinct": 269,
          "min": 1,
          "max": 300
        },
        "content": {
          "nulls": 63,
          "distinct": 576
        },
        "timestamp": {
          "nulls": 67,
          "distinct": 578,
          "min": "2023-01-02 13:03:40",
          "max": "2023-12-31 00:20:15"
        }
      }
    },
    "friend_requests": {
      "rows": 174,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 174,
          "min": 1,
          "max": 174
        },
        "user_id": {
          "nulls": 0,
          "distinct": 129,
          "min": 1,
          "max": 300
        },
        "target_user_id": {
          "nulls": 0,
          "distinct": 134,
          "min": 3,
          "max": 297
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "accepted",
          "max": "pending"
        },
        "timestamp": {
          "nulls": 52,
          "distinct": 122,
          "min": "2023-01-06 18:33:01",
          "max": "2023-12-31 11:40:17"
        }
      }
    },
    "blocks": {
      "rows": 90,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 90,
          "min": 1,
          "max": 90
        },
        "blocker_id": {
          "nulls": 0,
          "distinct": 90,
          "min": 2,
          "max": 292
        },
        "blocked_user_id": {
          "nulls": 0,
          "distinct": 84,
          "min": 2,
          "max": 295
        },
        "timestamp": {
          "nulls": 10,
          "distinct": 80,
          "min": "2023-01-02 16:14:34",
          "max": "2023-12-28 06:56:46"
        }
      }
    },
    "boosts": {
      "rows": 82,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 82,
          "min": 1,
          "max": 82
        },
        "user_id": {
          "nulls": 0,
          "distinct": 82,
          "min": 1,
          "max": 300
        },
        "timestamp": {
          "nulls": 0,
          "distinct": 82,
          "min": "2023-01-04 10:28:08",
          "max": "2023-12-31 16:25:26"
        },
        "duration": {
          "nulls": 4,
          "distinct": 22,
          "min": 2,
          "max": 24
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/social-connections-dataset/v1/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/csv/users.csv",
      "bytes": 64447,
      "sha256": "e6592f8e50ae912fda9c6e57c663ab58062818bed80c905b3d7fb09a1f0d16ff",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/blocks.csv",
      "format": "csv",
      "table": "blocks",
      "key": "datasets/social-connections-dataset/v1/csv/blocks.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/csv/blocks.csv",
      "bytes": 2659,
      "sha256": "b7786c29e66375d940d57177701bb862a5fd71e95f42282cad72729caae0b141",
      "rows": 90,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/boosts.csv",
      "format": "csv",
      "table": "boosts",
      "key": "datasets/social-connections-dataset/v1/csv/boosts.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/csv/boosts.csv",
      "bytes": 2511,
      "sha256": "bdca67745132109ca3f8657c1a9634892f85c3bf73cd211f763b3b8bab4515f1",
      "rows": 82,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/friend_requests.csv",
      "format": "csv",
      "table": "friend_requests",
      "key": "datasets/social-connections-dataset/v1/csv/friend_requests.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/csv/friend_requests.csv",
      "bytes": 6080,
      "sha256": "7001060a4d5be403554d83207bc706d555539bdc5fcc3314e806ae2b2b3b15c6",
      "rows": 174,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/swipes.csv",
      "format": "csv",
      "table": "swipes",
      "key": "datasets/social-connections-dataset/v1/csv/swipes.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/csv/swipes.csv",
      "bytes": 24183,
      "sha256": "1a6991bd52be3ecca48aca757558ce32bb7b8dc84f262e3dbdcf1ba0488e1a10",
      "rows": 672,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/messages.csv",
      "format": "csv",
      "table": "messages",
      "key": "datasets/social-connections-dataset/v1/csv/messages.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/csv/messages.csv",
      "bytes": 55003,
      "sha256": "80c96d39e60af02eeb75ae4e2d83230b45d0983edc4f32f65d05625354220304",
      "rows": 645,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "social-connections-dataset.json",
      "format": "json",
      "table": null,
      "key": "datasets/social-connections-dataset/v1/social-connections-dataset.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/social-connections-dataset.json",
      "bytes": 375906,
      "sha256": "2730a37bd1ec92883fbc8bbf2a3be3c258eb856d9cd1dbc1c1898d253d76e78a",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/social-connections-dataset/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/sql/postgres.sql",
      "bytes": 187719,
      "sha256": "c174b5cd8fc0468683fe8efc9c1100fd2677c3f1676e0fa1e83a6889acc8f5c4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/social-connections-dataset/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/sql/mysql.sql",
      "bytes": 187031,
      "sha256": "c208203d5e7ec5565d4f9b553c2723c8dc976382f4f306049c3783d1758f81d1",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/social-connections-dataset/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/sql/mssql.sql",
      "bytes": 191187,
      "sha256": "4a6fa8b0b5cac0e93f036342a00a6067b6b2b516efe3f365b43be8066852902b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/social-connections-dataset/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/sql/sqlite.sql",
      "bytes": 186676,
      "sha256": "b52ee4838ec1129f4c5bbad65f1abaedbbea04bd29747daa64b901e1b9a7f2c6",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/social-connections-dataset/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/prisma/seed.ts",
      "bytes": 318813,
      "sha256": "41313f54a819431c40b4ef0063cfdcec9c22ed801def76129432091b55970f0f",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/social-connections-dataset/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/social-connections-dataset/v1/django/fixtures.json",
      "bytes": 450424,
      "sha256": "27b62507481bb7387fe3af4f60275306bbb39a7448c395a0e6a6c5bd9e308354",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788734229771,
  "updatedAt": 1788734229771
}
