{
  "format": "dataset-manifest/1",
  "slug": "crafting-community-insights",
  "version": 3,
  "seed": "crafting-community-insights:1",
  "spec": {
    "format": "dataset/1",
    "slug": "crafting-community-insights",
    "name": "Crafting Community Insights",
    "tagline": "User interactions, videos, challenges, submissions, and craft kits from a DIY and craft enthusiast platform.",
    "description": "Users upload their creative videos to showcase DIY projects, ranging from knitting to woodworking, fostering a vibrant community of craft enthusiasts. As creators share their unique approaches, other users can engage with the content by participating in challenges that promote interaction and skill development. Each challenge invites users to submit their own creations based on given themes, often linked to specific craft kits that provide the necessary materials and tools for the projects.\n\nThe relationships between the tables illuminate the dynamics of this platform. The 'users' table contains individual profiles of creators and participants, with each user potentially submitting multiple entries in the 'submissions' table. Each submission is tied to a specific 'challenge', which is detailed in its own table, categorizing the events and their requirements. The 'videos' table showcases the diverse range of projects, pinpointing which videos are popular among users and correlating with the challenges. Meanwhile, the 'craft_kits' table lists the various kits available, linking them to the appropriate projects and difficulty levels. Each row in these tables collectively informs the overall narrative of user engagement and craft trends on the platform.\n\nThis data answers questions about user behaviors, popular crafting trends, and submission rates throughout different competition cycles. Developers can practice analyzing user engagement patterns, measuring the popularity of specific craft categories, and understanding the impact of challenges on user submissions. The dataset also allows for exploration of how craft kit offerings affect project submissions and video popularity. It's important to note that the data presented here is synthetic, designed to mimic real-world interactions within a community of craft lovers.",
    "domain": "media",
    "shape": "slowly-changing",
    "useCases": [
      "etl-pipelines",
      "teaching"
    ],
    "keywords": [
      "DIY",
      "crafts",
      "videos",
      "user interactions",
      "challenge submissions",
      "craft kits",
      "tools",
      "difficulty levels",
      "trending crafts",
      "data analysis"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table contains information about users on the platform, linking to their interactions and video submissions. Each user has a unique ID and can have multiple video interactions.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "username": {
            "kind": "fullName",
            "description": "The display name of the user."
          },
          "email": {
            "kind": "email",
            "from": "username",
            "description": "The email address of the user.",
            "nullable": true
          },
          "join_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date the user joined the platform.",
            "trend": "growing"
          },
          "user_level": {
            "kind": "enum",
            "values": [
              "beginner",
              "intermediate",
              "advanced"
            ],
            "description": "The crafting skill level of the user.",
            "weights": [
              6,
              3,
              1
            ]
          }
        }
      },
      "videos": {
        "description": "This table captures details about videos shared by users, linking back to the user who created it. Each video is categorized by craft type and difficulty level.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each video."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user who created the video."
          },
          "title": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The title of the video.",
            "pool": [
              "creative",
              "inspiration",
              "tutorial",
              "craft",
              "design",
              "art",
              "project",
              "ideas",
              "explore",
              "fun",
              "diy",
              "make",
              "discover",
              "hands-on",
              "techniques",
              "skills",
              "community",
              "unique",
              "showcase",
              "experience",
              "journey"
            ]
          },
          "craft_type": {
            "kind": "enum",
            "values": [
              "knitting",
              "woodworking",
              "painting",
              "sewing",
              "upcycling"
            ],
            "description": "The type of craft showcased in the video.",
            "nullable": true,
            "when": {
              "column": "difficulty_level",
              "in": [
                "easy",
                "medium",
                "hard"
              ]
            },
            "weights": [
              5,
              3,
              2,
              1,
              1
            ]
          },
          "difficulty_level": {
            "kind": "enum",
            "values": [
              "easy",
              "medium",
              "hard"
            ],
            "description": "The difficulty level of the project in the video.",
            "nullable": true,
            "weights": [
              7,
              2,
              1
            ]
          },
          "upload_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-01-01",
            "description": "The date the video was uploaded.",
            "nullable": true,
            "trend": "seasonal"
          }
        }
      },
      "challenges": {
        "description": "This table lists various crafting challenges hosted on the platform, along with details about submissions and their statuses.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each challenge."
          },
          "title": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The title of the challenge.",
            "pool": [
              "30day",
              "makeover",
              "craftoff",
              "designbattle",
              "artchallenge",
              "creativity",
              "inspired",
              "skillswap",
              "collab",
              "create",
              "exploration",
              "teamwork",
              "innovation",
              "fun",
              "challenge",
              "experiment",
              "showdown",
              "craftathon",
              "imagination",
              "project"
            ]
          },
          "start_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-01-01",
            "description": "The start date of the challenge.",
            "trend": "growing"
          },
          "end_date": {
            "kind": "date",
            "from": "2022-01-02",
            "to": "2023-01-02",
            "description": "The end date of the challenge.",
            "nullable": true,
            "when": {
              "column": "status",
              "in": [
                "completed"
              ]
            },
            "trend": "growing"
          },
          "status": {
            "kind": "enum",
            "values": [
              "active",
              "completed",
              "upcoming"
            ],
            "description": "The current status of the challenge.",
            "nullable": true,
            "weights": [
              4,
              5,
              1
            ]
          }
        }
      },
      "submissions": {
        "description": "This table captures user submissions for challenges, linking to both the user and the challenge they submitted to.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each submission."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user who submitted the entry."
          },
          "challenge_id": {
            "kind": "fk",
            "ref": "challenges.id",
            "description": "The ID of the challenge the submission is for."
          },
          "submission_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-01-01",
            "description": "The date the submission was made.",
            "trend": "seasonal"
          },
          "is_approved": {
            "kind": "bool",
            "trueRate": 0.8,
            "description": "Indicates if the submission was approved."
          }
        }
      },
      "craft_kits": {
        "description": "This table lists various craft kits available for users to purchase or use, detailing the tools and materials included.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each craft kit."
          },
          "name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The name of the craft kit.",
            "pool": [
              "beginner",
              "advanced",
              "deluxe",
              "mini",
              "starter",
              "themed",
              "seasonal",
              "premium",
              "crafty",
              "explorer",
              "creative",
              "essentials",
              "delight",
              "funpack",
              "artistry",
              "imagination",
              "inspiration",
              "collection",
              "special",
              "unique",
              "bundle"
            ]
          },
          "tools": {
            "kind": "sentence",
            "min": 10,
            "max": 50,
            "description": "Description of the tools included in the kit."
          },
          "materials": {
            "kind": "sentence",
            "min": 10,
            "max": 50,
            "description": "Description of the materials included in the kit."
          },
          "price": {
            "kind": "decimal",
            "min": 5,
            "max": 100,
            "scale": 2,
            "description": "The price of the craft kit.",
            "distribution": "long-tail"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "timestamped",
      "self-referencing"
    ],
    "analysisQuestions": [
      "What types of crafts are most popular among users?",
      "How does user engagement vary with different difficulty levels?",
      "What is the approval rate for challenge submissions over time?",
      "Which craft kits are most frequently purchased?",
      "How do the number of submissions change as challenges progress?"
    ],
    "suggestedQueries": [
      {
        "title": "Retrieve all videos by a specific user",
        "sql": "SELECT * FROM videos WHERE user_id = ?;",
        "dialect": "postgres"
      },
      {
        "title": "Count videos by craft type",
        "sql": "SELECT craft_type, COUNT(*) FROM videos GROUP BY craft_type;",
        "dialect": "postgres"
      },
      {
        "title": "Find approved submissions for active challenges",
        "sql": "SELECT * FROM submissions WHERE is_approved = TRUE AND challenge_id IN (SELECT id FROM challenges WHERE status = 'active');",
        "dialect": "postgres"
      },
      {
        "title": "Get the total number of challenges and their statuses",
        "sql": "SELECT status, COUNT(*) FROM challenges GROUP BY status;",
        "dialect": "postgres"
      },
      {
        "title": "Analyze user engagement over time",
        "sql": "SELECT DATE_TRUNC('month', upload_date) AS month, COUNT(*) FROM videos GROUP BY month ORDER BY month;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Data Analysts",
        "body": "Data analysts can utilize this dataset to explore user behavior patterns and trends in crafting videos, allowing them to generate insights that inform content strategy and marketing efforts."
      },
      {
        "title": "Educators",
        "body": "Educators can leverage this dataset in teaching data analysis techniques, guiding students through real-world data exploration and visualization practices related to media and user engagement."
      },
      {
        "title": "Market Researchers",
        "body": "Market researchers can analyze the popularity of different craft types and the effectiveness of challenges in driving user engagement, helping businesses identify growth opportunities in the DIY sector."
      },
      {
        "title": "Platform Developers",
        "body": "Developers working on the platform can use the dataset to refine user experience by understanding which features enhance engagement and how challenges affect user retention."
      }
    ]
  },
  "counts": {
    "challenges": 50,
    "craft_kits": 100,
    "users": 250,
    "submissions": 150,
    "videos": 300
  },
  "stats": {
    "users": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "username": {
          "nulls": 0,
          "distinct": 246,
          "min": "Alice Ibrahim",
          "max": "Zoe Flores"
        },
        "email": {
          "nulls": 20,
          "distinct": 229
        },
        "join_date": {
          "nulls": 0,
          "distinct": 219,
          "min": "2020-01-07",
          "max": "2022-12-31"
        },
        "user_level": {
          "nulls": 0,
          "distinct": 3,
          "min": "advanced",
          "max": "intermediate"
        }
      }
    },
    "videos": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "user_id": {
          "nulls": 0,
          "distinct": 175,
          "min": 1,
          "max": 250
        },
        "title": {
          "nulls": 0,
          "distinct": 204
        },
        "craft_type": {
          "nulls": 27,
          "distinct": 5,
          "min": "knitting",
          "max": "woodworking"
        },
        "difficulty_level": {
          "nulls": 27,
          "distinct": 3,
          "min": "easy",
          "max": "medium"
        },
        "upload_date": {
          "nulls": 36,
          "distinct": 182,
          "min": "2022-01-02",
          "max": "2023-01-01"
        }
      }
    },
    "challenges": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "title": {
          "nulls": 0,
          "distinct": 42
        },
        "start_date": {
          "nulls": 0,
          "distinct": 46,
          "min": "2022-01-29",
          "max": "2023-01-01"
        },
        "end_date": {
          "nulls": 31,
          "distinct": 19,
          "min": "2022-01-03",
          "max": "2022-11-22"
        },
        "status": {
          "nulls": 3,
          "distinct": 3,
          "min": "active",
          "max": "upcoming"
        }
      }
    },
    "submissions": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "user_id": {
          "nulls": 0,
          "distinct": 108,
          "min": 2,
          "max": 250
        },
        "challenge_id": {
          "nulls": 0,
          "distinct": 48,
          "min": 1,
          "max": 50
        },
        "submission_date": {
          "nulls": 0,
          "distinct": 110,
          "min": "2022-01-03",
          "max": "2023-01-01"
        },
        "is_approved": {
          "nulls": 0,
          "distinct": 2,
          "min": "false",
          "max": "true"
        }
      }
    },
    "craft_kits": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "name": {
          "nulls": 0,
          "distinct": 80
        },
        "tools": {
          "nulls": 0,
          "distinct": 99
        },
        "materials": {
          "nulls": 0,
          "distinct": 100
        },
        "price": {
          "nulls": 0,
          "distinct": 98,
          "min": 5,
          "max": 88.84
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/challenges.csv",
      "format": "csv",
      "table": "challenges",
      "key": "datasets/crafting-community-insights/v3/csv/challenges.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/csv/challenges.csv",
      "bytes": 2329,
      "sha256": "fccbf0606d1f97a580c1f8c53986b1bc14cf187c1b540178fa46e5e41fb0554c",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/craft_kits.csv",
      "format": "csv",
      "table": "craft_kits",
      "key": "datasets/crafting-community-insights/v3/csv/craft_kits.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/csv/craft_kits.csv",
      "bytes": 13810,
      "sha256": "dd8ac66b29a9761cec8a04880657efb73a7ff3d6e6dc13f9e27ff64418925c20",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/crafting-community-insights/v3/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/csv/users.csv",
      "bytes": 15004,
      "sha256": "257e737f050872d4bf1681e04c21fb2e0e7ca5f39dd0d8bc9b212dbac7b5a6a0",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/submissions.csv",
      "format": "csv",
      "table": "submissions",
      "key": "datasets/crafting-community-insights/v3/csv/submissions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/csv/submissions.csv",
      "bytes": 4083,
      "sha256": "88b346e376acaa64bb10cdde3883520d2d870b6aa622dadc2fc70a28a60ade8a",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/videos.csv",
      "format": "csv",
      "table": "videos",
      "key": "datasets/crafting-community-insights/v3/csv/videos.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/csv/videos.csv",
      "bytes": 14177,
      "sha256": "ed5807593d16641c245668b0b2e592388cba75e13d90515eba155ae19584a164",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "crafting-community-insights.json",
      "format": "json",
      "table": null,
      "key": "datasets/crafting-community-insights/v3/crafting-community-insights.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/crafting-community-insights.json",
      "bytes": 149475,
      "sha256": "49c3f82f8cda64b6038ff7991fd30e31dfb6e68d0e2d08e59726b442349c4959",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/crafting-community-insights/v3/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/sql/postgres.sql",
      "bytes": 66800,
      "sha256": "f6ae2dec11691a098eaf9b18a1d3fe365c499c29dfe9c27883e977a055ca7e3b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/crafting-community-insights/v3/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/sql/mysql.sql",
      "bytes": 65776,
      "sha256": "02a4ad8e66a703f7b6afac836310cc8a9d5431942bba78d61566255baefd1b84",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/crafting-community-insights/v3/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/sql/mssql.sql",
      "bytes": 68811,
      "sha256": "a7e70bfefb6936df596be27b7adfc15cc1c3e6da036c8e70dcbda8a150cd0a8f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/crafting-community-insights/v3/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/sql/sqlite.sql",
      "bytes": 65589,
      "sha256": "fdfa8c3a4af8a7efe047ace4a4b3ff222f9bdbb8eeb6f4df1fe97ae23c3ab03b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/crafting-community-insights/v3/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/prisma/seed.ts",
      "bytes": 117634,
      "sha256": "7b01f0ea330b5b3cdf0aa32df163c3c9f9bd6dcf12d744b91fd564b2a2a5e140",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/crafting-community-insights/v3/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/crafting-community-insights/v3/django/fixtures.json",
      "bytes": 184491,
      "sha256": "3cd3ccc69f2f37808d58b50ad58ae2d22953a91d33cc26921ed374749beb4266",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768793730,
  "updatedAt": 1788783079857
}
