{
  "format": "dataset-manifest/1",
  "slug": "online-course-activity",
  "version": 1,
  "seed": "online-course-activity:1",
  "spec": {
    "format": "dataset/1",
    "slug": "online-course-activity",
    "name": "Online Course Activity",
    "tagline": "Learner activity on an online platform, detailing courses, lessons, and engagement events.",
    "description": "Engagement on an online learning platform is captured through this dataset, which models learners, courses, lessons, and the events associated with their activities. Each row represents an event logged by learners as they interact with the platform, including watching lessons, completing courses, and taking quizzes. This synthetic dataset provides a rich resource for analytics and business intelligence applications, allowing educators and platform administrators to analyze user behavior and course effectiveness. The tables are interconnected: learners are linked to courses, which in turn contain lessons, while events track the specific interactions learners have with these lessons. With questions about learner retention, course completion rates, and lesson engagement, this dataset serves as a valuable tool for educators looking to improve their offerings and for analysts seeking insights into online learning trends.",
    "domain": "education",
    "shape": "event-log",
    "useCases": [
      "analytics-demo",
      "bi-dashboards"
    ],
    "keywords": [
      "online learning",
      "course activity",
      "learner engagement",
      "event logging",
      "education analytics"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "learners": {
        "description": "This table records information about each learner on the platform, including their demographics and the courses they enroll in.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each learner."
          },
          "first_name": {
            "kind": "firstName",
            "description": "Learner's first name.",
            "nullable": true
          },
          "last_name": {
            "kind": "lastName",
            "description": "Learner's last name."
          },
          "email": {
            "kind": "email",
            "from": [
              "first_name",
              "last_name"
            ],
            "description": "Learner's email address.",
            "nullable": true
          },
          "registration_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2023-12-31",
            "description": "Date when the learner registered on the platform.",
            "trend": "growing"
          }
        }
      },
      "courses": {
        "description": "This table contains details about each course available on the platform, including its title and enrollment count.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each course."
          },
          "title": {
            "kind": "sentence",
            "min": 5,
            "max": 50,
            "description": "Title of the course."
          },
          "description": {
            "kind": "paragraph",
            "min": 20,
            "max": 200,
            "description": "Brief description of the course content.",
            "nullable": true
          },
          "enrollment_count": {
            "kind": "int",
            "min": 10,
            "max": 500,
            "description": "Number of learners enrolled in the course."
          }
        }
      },
      "lessons": {
        "description": "Each lesson is linked to a specific course and logs details about the lesson content.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each lesson."
          },
          "course_id": {
            "kind": "fk",
            "ref": "courses.id",
            "description": "The course this lesson belongs to."
          },
          "title": {
            "kind": "sentence",
            "min": 5,
            "max": 50,
            "description": "Title of the lesson."
          },
          "duration": {
            "kind": "int",
            "min": 1,
            "max": 180,
            "description": "Duration of the lesson in minutes.",
            "nullable": true
          }
        }
      },
      "events": {
        "description": "This table logs the events related to learner interactions with lessons, including watching and completing.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each event."
          },
          "learner_id": {
            "kind": "fk",
            "ref": "learners.id",
            "description": "The learner who performed the event."
          },
          "lesson_id": {
            "kind": "fk",
            "ref": "lessons.id",
            "description": "The lesson related to the event."
          },
          "event_type": {
            "kind": "enum",
            "values": [
              "watched",
              "completed",
              "quizzed"
            ],
            "description": "Type of event logged."
          },
          "event_timestamp": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2023-12-31",
            "description": "Timestamp of when the event occurred.",
            "nullable": true,
            "when": {
              "column": "event_type",
              "in": [
                "watched",
                "completed",
                "quizzed"
              ]
            },
            "dayProfile": "waking"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "timestamped",
      "categorical",
      "nullable"
    ],
    "analysisQuestions": [
      "What percentage of learners complete the courses they enroll in?",
      "Which courses have the highest engagement rates based on lesson views?",
      "How does the average time spent per lesson correlate with course completion?",
      "What types of events are most common among learners?",
      "Are there specific times of the year when learner activity peaks?"
    ],
    "suggestedQueries": [
      {
        "title": "List all learners and their registered dates",
        "sql": "SELECT first_name, last_name, registration_date FROM learners;",
        "dialect": "postgres"
      },
      {
        "title": "Count events by type",
        "sql": "SELECT event_type, COUNT(*) FROM events GROUP BY event_type;",
        "dialect": "postgres"
      },
      {
        "title": "Find average duration of lessons in each course",
        "sql": "SELECT c.title, AVG(l.duration) FROM courses c JOIN lessons l ON c.id = l.course_id GROUP BY c.title;",
        "dialect": "postgres"
      },
      {
        "title": "Track completion rates by course",
        "sql": "SELECT c.title, SUM(CASE WHEN e.event_type = 'completed' THEN 1 ELSE 0 END) / COUNT(e.id) AS completion_rate FROM courses c LEFT JOIN events e ON c.id = e.lesson_id GROUP BY c.title;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Course Effectiveness Analysis",
        "body": "Educators can utilize this dataset to analyze the effectiveness of their courses by examining completion rates and learner engagement. By exploring the data, they can identify which lessons are most popular and where students tend to drop off, allowing them to refine their teaching strategies."
      },
      {
        "title": "Learner Progress Tracking",
        "body": "Administrative staff can use this dataset to keep track of learner progress across various courses. By monitoring the events logged, they can provide personalized support to learners who may be struggling to complete their courses or engage with the material effectively."
      },
      {
        "title": "Event Behavior Analysis",
        "body": "Data analysts can leverage this dataset to study the behavioral patterns of learners interacting with lessons. By segmenting the data based on event types, they can uncover insights into how learners consume content and which formats lead to better engagement."
      }
    ]
  },
  "counts": {
    "courses": 50,
    "learners": 100,
    "lessons": 150,
    "events": 300
  },
  "stats": {
    "learners": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "first_name": {
          "nulls": 12,
          "distinct": 47,
          "min": "Alice",
          "max": "Zoe"
        },
        "last_name": {
          "nulls": 0,
          "distinct": 50,
          "min": "Adams",
          "max": "Young"
        },
        "email": {
          "nulls": 12,
          "distinct": 88
        },
        "registration_date": {
          "nulls": 0,
          "distinct": 91,
          "min": "2021-01-17",
          "max": "2023-12-23"
        }
      }
    },
    "courses": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "title": {
          "nulls": 0,
          "distinct": 50
        },
        "description": {
          "nulls": 5,
          "distinct": 45
        },
        "enrollment_count": {
          "nulls": 0,
          "distinct": 47,
          "min": 20,
          "max": 497
        }
      }
    },
    "lessons": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "course_id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "title": {
          "nulls": 0,
          "distinct": 150
        },
        "duration": {
          "nulls": 13,
          "distinct": 91,
          "min": 1,
          "max": 178
        }
      }
    },
    "events": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "learner_id": {
          "nulls": 0,
          "distinct": 97,
          "min": 1,
          "max": 100
        },
        "lesson_id": {
          "nulls": 0,
          "distinct": 128,
          "min": 1,
          "max": 150
        },
        "event_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "completed",
          "max": "watched"
        },
        "event_timestamp": {
          "nulls": 0,
          "distinct": 300,
          "min": "2021-01-03 09:02:48",
          "max": "2023-12-26 09:27:32"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/courses.csv",
      "format": "csv",
      "table": "courses",
      "key": "datasets/online-course-activity/v1/csv/courses.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/csv/courses.csv",
      "bytes": 10963,
      "sha256": "79682f3c6c6583f42605085767fd27239018928ab211200f4b361a82edd552e1",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/learners.csv",
      "format": "csv",
      "table": "learners",
      "key": "datasets/online-course-activity/v1/csv/learners.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/csv/learners.csv",
      "bytes": 4759,
      "sha256": "cc6d22f76adacf8804994985c3e0c6e63e4cd6cb35cd805c70afe476331b2d1f",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/lessons.csv",
      "format": "csv",
      "table": "lessons",
      "key": "datasets/online-course-activity/v1/csv/lessons.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/csv/lessons.csv",
      "bytes": 9978,
      "sha256": "24c647d3ade2ecdc175044240c717a5d7085215c75ba5b76f7faf7915c616bc3",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/events.csv",
      "format": "csv",
      "table": "events",
      "key": "datasets/online-course-activity/v1/csv/events.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/csv/events.csv",
      "bytes": 11905,
      "sha256": "e78210e091fef39da1b77020560b678946821b7c69b540d97439c1322fb5d94d",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "online-course-activity.json",
      "format": "json",
      "table": null,
      "key": "datasets/online-course-activity/v1/online-course-activity.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/online-course-activity.json",
      "bytes": 100809,
      "sha256": "7c098f38c58f42fd921dc5e88c15031ab1031b3b5bd224ed0699d3f2bbe8cad4",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/online-course-activity/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/sql/postgres.sql",
      "bytes": 47988,
      "sha256": "ace63257e04181dc0d87a0c03cd4159eede979c67d9b6d89102fdff26719a0f8",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/online-course-activity/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/sql/mysql.sql",
      "bytes": 47552,
      "sha256": "13e608d77ec2bc033b0f71ad161d5544a749fde820d3ec07c45ed1bb5e4555c9",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/online-course-activity/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/sql/mssql.sql",
      "bytes": 49041,
      "sha256": "55cc049029b69cff8bd134642299e02e487867d56a6ef2d7faaa6162bb3ba81a",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/online-course-activity/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/sql/sqlite.sql",
      "bytes": 47429,
      "sha256": "aaa242039c1bd815e47d4b3f7c27ab539535cdc77da1b58bc668ee81d7a84249",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/online-course-activity/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/prisma/seed.ts",
      "bytes": 84983,
      "sha256": "d610f13dff7a42772bfb58c106a28da26d2bc7b06552589ee45c29d75799f57c",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/online-course-activity/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/online-course-activity/v1/django/fixtures.json",
      "bytes": 124333,
      "sha256": "5d43461804ff3a88865ab513a067965c2bd225467ac48afdef3c05102efeeaa8",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768089172,
  "updatedAt": 1788768089172
}
