{
  "format": "dataset-manifest/1",
  "slug": "digital-scrapbooking-app",
  "version": 3,
  "seed": "digital-scrapbooking-app:1",
  "spec": {
    "format": "dataset/1",
    "slug": "digital-scrapbooking-app",
    "name": "Digital Scrapbook Elements",
    "tagline": "Templates, text elements, user subscriptions, and print items for a digital scrapbooking app.",
    "description": "Users create personalized scrapbooks using a digital scrapbooking app, leveraging a variety of templates, text elements, and their own images. Each scrapbook can be customized through various templates that users can select based on themes, styles, or occasions. The app allows users to incorporate text elements, which can include quotes, captions, and decorative fonts, enhancing the individuality of each scrapbook. Additionally, users can order physical prints of their creations, making the experience not just digital but also tangible.\n\nThe dataset consists of several interrelated tables that provide insights into user interactions and preferences. The 'users' table captures details about each user, including their subscription type and usage patterns. The 'templates' table outlines the available scrapbook templates, each identified by a unique ID. The 'text_elements' table catalogs the different text options users can choose from, while 'coupons' provide a mechanism for discounts on purchases. The 'user_templates' table acts as a junction, linking users to the specific templates they have selected for their scrapbooks. Finally, the 'print_items' table details the various physical products users can order, such as prints or photo books.\n\nThis dataset answers a variety of questions related to user behavior and preferences, such as which templates are most popular among users, how often coupons are utilized, and what types of print items are ordered. It allows for exploration of user clustering trends around popular templates and common text elements, as well as insights into subscription choices and the usage of print items. By working with this synthetic dataset, developers can practice analyzing user engagement, promotional effectiveness, and product popularity within a creative digital environment.",
    "domain": "hospitality",
    "shape": "graph-edges",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "digital scrapbooking",
      "templates",
      "text elements",
      "user subscriptions",
      "coupons",
      "print items",
      "user behavior"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table contains information about users of the scrapbook app, including their subscription details and unique identifiers.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "The 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
          },
          "subscription_plan": {
            "kind": "enum",
            "values": [
              "free",
              "basic",
              "premium"
            ],
            "description": "The subscription plan of the user.",
            "weights": [
              7,
              2,
              1
            ]
          },
          "join_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date the user joined the app.",
            "nullable": true,
            "when": {
              "column": "subscription_plan",
              "in": [
                "basic",
                "premium"
              ]
            },
            "trend": "growing"
          }
        }
      },
      "templates": {
        "description": "This table lists the available scrapbook templates, including their unique identifiers and popularity metrics.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "The unique identifier for each template."
          },
          "name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The name of the template.",
            "pool": [
              "elegant",
              "rustic",
              "modern",
              "vintage",
              "chic",
              "bright",
              "cozy",
              "artsy",
              "minimal",
              "festive",
              "whimsical",
              "sophisticated",
              "colorful",
              "classic",
              "playful",
              "stylish",
              "creative",
              "themed",
              "charming",
              "unique",
              "trendy",
              "inviting",
              "luxurious",
              "simple",
              "elegance",
              "nature",
              "urban",
              "retro",
              "bohemian",
              "abstract",
              "bold",
              "fresh",
              "serene",
              "dynamic",
              "timeless",
              "vibrant",
              "delicate",
              "custom",
              "seasonal",
              "signature",
              "personalized",
              "family",
              "friends",
              "celebration",
              "memories",
              "journey",
              "adventure",
              "exploration",
              "harmony",
              "togetherness",
              "experience",
              "joy",
              "love"
            ]
          },
          "popularity_score": {
            "kind": "int",
            "min": 1,
            "max": 100,
            "description": "A score indicating the popularity of the template.",
            "distribution": "high"
          }
        }
      },
      "text_elements": {
        "description": "This table contains the different text elements users can add to their scrapbooks, along with their identifiers.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "The unique identifier for each text element."
          },
          "content": {
            "kind": "sentence",
            "min": 5,
            "max": 15,
            "description": "The text content of the element."
          },
          "usage_count": {
            "kind": "int",
            "min": 0,
            "max": 500,
            "description": "The number of times this text element has been used.",
            "distribution": "long-tail"
          }
        }
      },
      "coupons": {
        "description": "This table lists the discount coupons available to users, including their respective details and usage statistics.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "The unique identifier for each coupon."
          },
          "code": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The discount code for the coupon.",
            "pool": [
              "SAVE10",
              "WELCOME15",
              "FALL20",
              "SPRING25",
              "SUMMER30",
              "WINTER5",
              "GET5",
              "DISCOUNT10",
              "OFFER15",
              "PROMO20",
              "DEAL25",
              "SPECIAL30",
              "FLASH5",
              "BUNDLE10",
              "EXTRA15",
              "LIMITED20",
              "CLEARANCE25",
              "VIP30",
              "LOYALTY5",
              "NEWUSER10",
              "REFER15",
              "FREESHIP",
              "GIFT10",
              "THANKYOU15",
              "SURPRISE20",
              "EXCLUSIVE25",
              "SAVEBIG",
              "HAPPYHOUR",
              "PARTY10",
              "CELEBRATE15",
              "ENJOY20",
              "SPLASH25",
              "HOLIDAY30",
              "SAVE15",
              "BONUS10",
              "REWARD15",
              "LIMITEDTIME",
              "SEASONAL20",
              "BIRTHDAY25",
              "FLASHSALE",
              "SAVEMORE"
            ]
          },
          "discount_percentage": {
            "kind": "decimal",
            "min": 0,
            "max": 100,
            "scale": 0,
            "description": "The discount percentage offered by the coupon.",
            "distribution": "normal"
          },
          "valid_until": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The expiration date for the coupon.",
            "trend": "seasonal"
          }
        }
      },
      "user_templates": {
        "description": "This table links users to the templates they have selected for their scrapbooks, capturing user preferences.",
        "rows": {
          "per": "users",
          "via": "user_id",
          "min": 1,
          "max": 3,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "The unique identifier for each user-template relationship."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user who selected the template."
          },
          "template_id": {
            "kind": "fk",
            "ref": "templates.id",
            "description": "The ID of the selected template."
          }
        }
      },
      "print_items": {
        "description": "This table details the various print items that users can order, linking to templates and user information.",
        "rows": 75,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "The unique identifier for each print item."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user ordering the print item."
          },
          "template_id": {
            "kind": "fk",
            "ref": "templates.id",
            "description": "The ID of the template associated with the print item."
          },
          "quantity": {
            "kind": "int",
            "min": 1,
            "max": 10,
            "description": "The quantity of print items ordered.",
            "distribution": "long-tail"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "Which templates are the most popular among users?",
      "What is the average discount given by coupons?",
      "How many unique text elements does each user utilize in their scrapbooks?",
      "What types of print items are ordered most frequently?",
      "How does user subscription level affect template selection?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Users and Templates",
        "sql": "SELECT u.full_name, t.name FROM users u JOIN user_templates ut ON u.id = ut.user_id JOIN templates t ON ut.template_id = t.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count of Templates by User",
        "sql": "SELECT user_id, COUNT(template_id) AS template_count FROM user_templates GROUP BY user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Average Discount by Coupon",
        "sql": "SELECT AVG(discount_percentage) AS avg_discount FROM coupons;",
        "dialect": "postgres"
      },
      {
        "title": "Popular Print Items",
        "sql": "SELECT template_id, SUM(quantity) AS total_ordered FROM print_items GROUP BY template_id ORDER BY total_ordered DESC;",
        "dialect": "postgres"
      },
      {
        "title": "Users and Their Template Usage",
        "sql": "SELECT u.full_name, COUNT(ut.template_id) AS templates_used FROM users u LEFT JOIN user_templates ut ON u.id = ut.user_id GROUP BY u.id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Teaching SQL Concepts",
        "body": "Educators can use this dataset to teach SQL concepts such as joins, aggregations, and subqueries. By providing students with real-world scenarios from a digital scrapbooking app, they can practice writing complex queries that relate multiple tables, enhancing their understanding of data relationships."
      },
      {
        "title": "User Behavior Analysis",
        "body": "Data analysts can leverage this dataset to explore user behavior within the app. By analyzing which templates are most popular and how often users utilize text elements, they can provide insights into user preferences, helping the business refine its offerings and improve user engagement."
      },
      {
        "title": "Coupon Effectiveness Study",
        "body": "Marketing teams can utilize this dataset to study the effectiveness of discount coupons. By examining the correlation between coupon usage and print item orders, they can assess which promotions are most successful in driving sales and adjust their marketing strategies accordingly."
      },
      {
        "title": "Performance Metrics for Subscription Plans",
        "body": "Business analysts can use the dataset to evaluate the performance metrics of different subscription plans. By comparing user engagement and template usage across subscription levels, they can determine which plans are most beneficial for both users and the business."
      }
    ]
  },
  "counts": {
    "coupons": 50,
    "templates": 100,
    "text_elements": 150,
    "users": 200,
    "print_items": 75,
    "user_templates": 320
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 23,
          "distinct": 171,
          "min": "Alice Zhang",
          "max": "Zoe Wright"
        },
        "email": {
          "nulls": 48,
          "distinct": 151
        },
        "subscription_plan": {
          "nulls": 0,
          "distinct": 3,
          "min": "basic",
          "max": "premium"
        },
        "join_date": {
          "nulls": 141,
          "distinct": 56,
          "min": "2020-02-08",
          "max": "2023-12-25"
        }
      }
    },
    "templates": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "name": {
          "nulls": 0,
          "distinct": 90
        },
        "popularity_score": {
          "nulls": 0,
          "distinct": 58,
          "min": 2,
          "max": 100
        }
      }
    },
    "text_elements": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "content": {
          "nulls": 0,
          "distinct": 150
        },
        "usage_count": {
          "nulls": 0,
          "distinct": 122,
          "min": 0,
          "max": 483
        }
      }
    },
    "coupons": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "code": {
          "nulls": 0,
          "distinct": 48
        },
        "discount_percentage": {
          "nulls": 0,
          "distinct": 35,
          "min": 16,
          "max": 84
        },
        "valid_until": {
          "nulls": 0,
          "distinct": 42,
          "min": "2023-01-11",
          "max": "2023-12-31"
        }
      }
    },
    "user_templates": {
      "rows": 320,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 320,
          "min": 1,
          "max": 320
        },
        "user_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "template_id": {
          "nulls": 0,
          "distinct": 95,
          "min": 1,
          "max": 100
        }
      }
    },
    "print_items": {
      "rows": 75,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 75,
          "min": 1,
          "max": 75
        },
        "user_id": {
          "nulls": 0,
          "distinct": 64,
          "min": 2,
          "max": 199
        },
        "template_id": {
          "nulls": 0,
          "distinct": 55,
          "min": 5,
          "max": 100
        },
        "quantity": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/coupons.csv",
      "format": "csv",
      "table": "coupons",
      "key": "datasets/digital-scrapbooking-app/v3/csv/coupons.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/csv/coupons.csv",
      "bytes": 1822,
      "sha256": "edca187ceb455e671e6057c3b9e20dc24b8e5ba10312e8dad75bdeaad692c8ef",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/templates.csv",
      "format": "csv",
      "table": "templates",
      "key": "datasets/digital-scrapbooking-app/v3/csv/templates.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/csv/templates.csv",
      "bytes": 2283,
      "sha256": "a5e57e84807ffebb8db654809d2465db7735d41b23729e74481bed62c2d7fd01",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/text_elements.csv",
      "format": "csv",
      "table": "text_elements",
      "key": "datasets/digital-scrapbooking-app/v3/csv/text_elements.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/csv/text_elements.csv",
      "bytes": 9829,
      "sha256": "7d462cbf7affdb88bb21ab7e5f9c187edd919ba90a09c1c9481467813725a177",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/digital-scrapbooking-app/v3/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/csv/users.csv",
      "bytes": 8689,
      "sha256": "cf5ff8272abecaaf2abcd5134f12f451ca85289941a6110ccb79c70c2469e486",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/print_items.csv",
      "format": "csv",
      "table": "print_items",
      "key": "datasets/digital-scrapbooking-app/v3/csv/print_items.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/csv/print_items.csv",
      "bytes": 954,
      "sha256": "4e89dddf079aefc0b8b679ea0323a6839d949dd56ce8c865b1836ea293995dae",
      "rows": 75,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/user_templates.csv",
      "format": "csv",
      "table": "user_templates",
      "key": "datasets/digital-scrapbooking-app/v3/csv/user_templates.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/csv/user_templates.csv",
      "bytes": 3564,
      "sha256": "be0a03fc48d9a34be0239f94776239064211432eeb390ba5e82bdb45ca12b942",
      "rows": 320,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "digital-scrapbooking-app.json",
      "format": "json",
      "table": null,
      "key": "datasets/digital-scrapbooking-app/v3/digital-scrapbooking-app.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/digital-scrapbooking-app.json",
      "bytes": 98784,
      "sha256": "fee906335c350e7d631120298d137a932cd7b7bc54201feb8200ef77a7d77f15",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/digital-scrapbooking-app/v3/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/sql/postgres.sql",
      "bytes": 40312,
      "sha256": "2d17b1e1742a98131309c2a8c9d3685688a6f8ff419692763ae123ff6c4e4dc0",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/digital-scrapbooking-app/v3/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/sql/mysql.sql",
      "bytes": 39623,
      "sha256": "00f00c76c3802cd9538209ae692b9cc3dd96dfef0607fab8413b18926c578cba",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/digital-scrapbooking-app/v3/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/sql/mssql.sql",
      "bytes": 40963,
      "sha256": "2648f3e259b4c3b2afc584a29bb9e4b4f35db00b0e63650b61f27d41ddaae2cd",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/digital-scrapbooking-app/v3/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/sql/sqlite.sql",
      "bytes": 39419,
      "sha256": "8d60d7442db2df47d21bc4f7a8db9a3c9d5887deea94ff683ebf6c746b63d26c",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/digital-scrapbooking-app/v3/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/prisma/seed.ts",
      "bytes": 77772,
      "sha256": "9b70f612167c08962d68ceeef02805f750e3d9357d44613402ad9ea3a99c8105",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/digital-scrapbooking-app/v3/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/digital-scrapbooking-app/v3/django/fixtures.json",
      "bytes": 137563,
      "sha256": "152a62ceef7a529018d0e271d3da5122739f8a51cce5a6d0a43eaab617963203",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768666609,
  "updatedAt": 1788783441920
}
