{
  "format": "dataset-manifest/1",
  "slug": "language-learning-app",
  "version": 4,
  "seed": "language-learning-app:1",
  "engine": 1,
  "engineVersion": "1.0.0",
  "spec": {
    "format": "dataset/1",
    "slug": "language-learning-app",
    "name": "Language Learning Insights",
    "tagline": "User interactions, lesson completions, progress tracking, and achievements in a language learning platform.",
    "description": "Users engage daily with a variety of resources and tools to master new languages. They subscribe to language learning programs where their activities are tracked comprehensively. Each user creates a unique profile, which is recorded in the 'users' table, including their preferences and personal details. Their interactions with language lessons and flashcards are documented through the 'user_lessons' and 'user_flashcards' tables, capturing information on what content they consume and complete. Progress is monitored in the 'user_progress' table, detailing advancements through lessons, while the 'user_achievements' table tracks milestones, offering a sense of accomplishment as users reach specific goals.\n\nThe connections between these tables allow for rich queries and insights. A single row in the 'users' table represents one individual learner, while rows in 'user_lessons' correspond to each lesson they have completed. By joining the 'users' table with 'user_progress', one can gauge how engagement correlates with advancement in language proficiency. Additionally, 'user_feedback' provides qualitative insights into user experiences and satisfaction, adding context to the quantitative data.\n\nThis dataset answers pivotal questions such as: How do initial engagement levels affect long-term retention? What types of lessons lead to higher completion rates? How do achievements correlate with user feedback? Moreover, it is excellent for practicing SQL queries, data analytics, and visualization techniques. Users can explore trends, identify patterns, and generate reports to better understand language learning behaviors.\n\nThe data presented here is synthetic, designed to simulate real-world education scenarios for those seeking to refine their analytical skills.",
    "domain": "education",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "language learning",
      "education",
      "user engagement",
      "progress tracking",
      "flashcards",
      "subscriptions"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table contains information about users of the language learning app, including their subscription status and registration date.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the user."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The email address of the user."
          },
          "subscription_start": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "The date when the user started their subscription.",
            "trend": "growing"
          },
          "subscription_type": {
            "kind": "enum",
            "values": [
              "free",
              "basic",
              "premium"
            ],
            "description": "The type of subscription the user has.",
            "weights": [
              7,
              2,
              1
            ]
          }
        }
      },
      "user_lessons": {
        "description": "This table tracks the lessons completed by users, linking back to the users table via user_id.",
        "rows": 800,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each lesson record."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "References the user who completed the lesson."
          },
          "lesson_name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The name of the lesson completed.",
            "pool": [
              "grammar",
              "vocabulary",
              "pronunciation",
              "conversation",
              "reading",
              "writing",
              "listening",
              "comprehension",
              "culture",
              "idioms",
              "phrases",
              "expressions",
              "dialogue",
              "assessment",
              "review",
              "practice",
              "test",
              "skills",
              "levels",
              "beginner",
              "intermediate",
              "advanced"
            ]
          },
          "completion_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "The date when the lesson was completed."
          },
          "lesson_difficulty": {
            "kind": "enum",
            "values": [
              "easy",
              "medium",
              "hard"
            ],
            "weights": [
              50,
              30,
              20
            ],
            "description": "The difficulty level of the lesson."
          },
          "lesson_duration_minutes": {
            "kind": "int",
            "min": 5,
            "max": 120,
            "distribution": "normal",
            "description": "Duration of the lesson in minutes."
          }
        }
      },
      "user_flashcards": {
        "description": "This table records the usage of flashcards by users, also linking back to the users table.",
        "rows": 600,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each flashcard usage record."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "References the user who used the flashcards."
          },
          "flashcard_topic": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The topic of the flashcards used.",
            "pool": [
              "nouns",
              "verbs",
              "adjectives",
              "adverbs",
              "phrases",
              "sentences",
              "dialogues",
              "grammar",
              "tenses",
              "conjugation",
              "pronunciation",
              "vocabulary",
              "idioms",
              "culture",
              "expressions",
              "listening",
              "reading",
              "writing",
              "speaking",
              "comprehension",
              "language"
            ]
          },
          "usage_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "The date when the flashcards were used."
          },
          "flashcard_frequency": {
            "kind": "int",
            "min": 1,
            "max": 50,
            "distribution": "normal",
            "description": "The number of times a flashcard topic was used."
          },
          "flashcard_duration_minutes": {
            "kind": "int",
            "min": 1,
            "max": 60,
            "distribution": "normal",
            "description": "Duration spent on flashcards in minutes."
          }
        }
      },
      "user_progress": {
        "description": "This table tracks the overall progress of users in their language learning journey, including milestones achieved.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each progress record."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "References the user whose progress is being tracked."
          },
          "total_lessons_completed": {
            "kind": "int",
            "min": 0,
            "max": 1000,
            "description": "Total number of lessons completed by the user.",
            "distribution": "long-tail"
          },
          "total_flashcards_used": {
            "kind": "int",
            "min": 0,
            "max": 1000,
            "description": "Total number of flashcards used by the user.",
            "distribution": "long-tail"
          },
          "last_active_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "The last date when the user was active."
          }
        }
      },
      "user_achievements": {
        "description": "This table records the achievements unlocked by users, highlighting their milestones.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each achievement record."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "References the user who unlocked the achievement."
          },
          "achievement_name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The name of the achievement unlocked.",
            "pool": [
              "mastery",
              "completion",
              "proficiency",
              "excellence",
              "certification",
              "recognition",
              "advancement",
              "success",
              "milestone",
              "accomplishment",
              "skill",
              "expertise",
              "trophy",
              "badge",
              "award",
              "level",
              "progress",
              "growth",
              "distinction",
              "honor",
              "victory"
            ]
          },
          "unlocked_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "The date when the achievement was unlocked."
          },
          "achievement_type": {
            "kind": "enum",
            "values": [
              "milestone",
              "skill",
              "participation"
            ],
            "weights": [
              40,
              40,
              20
            ],
            "description": "The type of achievement unlocked."
          },
          "achievement_points": {
            "kind": "int",
            "min": 10,
            "max": 100,
            "distribution": "normal",
            "description": "Points awarded for unlocking the achievement."
          }
        }
      },
      "user_feedback": {
        "description": "This table collects feedback from users about their learning experience, providing insights into user satisfaction.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each feedback record."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "References the user providing the feedback."
          },
          "feedback_text": {
            "kind": "paragraph",
            "min": 10,
            "max": 500,
            "description": "The feedback text provided by the user."
          },
          "submission_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "The date when the feedback was submitted."
          },
          "feedback_rating": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "distribution": "high",
            "description": "User rating of their learning experience."
          },
          "feedback_category": {
            "kind": "enum",
            "values": [
              "content",
              "usability",
              "support"
            ],
            "weights": [
              50,
              30,
              20
            ],
            "description": "The category of feedback provided by the user."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "timestamped",
      "nullable",
      "categorical",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "What are the most common lessons completed by users?",
      "How does user engagement change over time?",
      "Which achievements are most frequently unlocked?",
      "What trends can be observed in flashcard usage?",
      "How do feedback ratings correlate with user progress?"
    ],
    "suggestedQueries": [
      {
        "title": "List all lessons completed by users",
        "sql": "SELECT users.full_name, user_lessons.lesson_name FROM users JOIN user_lessons ON users.id = user_lessons.user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count total lessons completed by each user",
        "sql": "SELECT user_id, COUNT(*) AS total_lessons FROM user_lessons GROUP BY user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Get user progress details",
        "sql": "SELECT users.full_name, user_progress.total_lessons_completed, user_progress.last_active_date FROM users JOIN user_progress ON users.id = user_progress.user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Find users who unlocked achievements in the last month",
        "sql": "SELECT users.full_name, user_achievements.achievement_name FROM users JOIN user_achievements ON users.id = user_achievements.user_id WHERE user_achievements.unlocked_date >= CURRENT_DATE - INTERVAL '30 days';",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Educators analyzing user engagement",
        "body": "Educators can utilize this dataset to analyze how users interact with the language learning app. By examining lesson completion rates and feedback, they can identify areas where learners may struggle and adjust their teaching methods or resources accordingly."
      },
      {
        "title": "Developers building analytics tools",
        "body": "Developers looking to create analytics dashboards can leverage this dataset to visualize user progress and engagement over time. By querying the data, they can generate insights into how different subscription types affect user commitment."
      },
      {
        "title": "Researchers studying language acquisition",
        "body": "Researchers interested in language acquisition can use this dataset to study patterns in user engagement and achievement. Analyzing how quickly users complete lessons or unlock achievements can provide valuable insights into effective learning strategies."
      },
      {
        "title": "Product managers improving app features",
        "body": "Product managers can use the insights derived from this dataset to refine app features. By understanding user feedback and correlating it with usage data, they can prioritize enhancements that directly impact user satisfaction and learning outcomes."
      }
    ]
  },
  "counts": {
    "users": 200,
    "user_achievements": 400,
    "user_feedback": 200,
    "user_flashcards": 600,
    "user_lessons": 800,
    "user_progress": 200
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 198,
          "min": "Alice Clark",
          "max": "Zoe Chen"
        },
        "email": {
          "nulls": 0,
          "distinct": 198
        },
        "subscription_start": {
          "nulls": 0,
          "distinct": 177,
          "min": "2023-01-03",
          "max": "2024-12-30"
        },
        "subscription_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "basic",
          "max": "premium"
        }
      }
    },
    "user_lessons": {
      "rows": 800,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 800,
          "min": 1,
          "max": 800
        },
        "user_id": {
          "nulls": 0,
          "distinct": 198,
          "min": 1,
          "max": 200
        },
        "lesson_name": {
          "nulls": 0,
          "distinct": 505
        },
        "completion_date": {
          "nulls": 0,
          "distinct": 485,
          "min": "2023-01-01",
          "max": "2024-12-31"
        },
        "lesson_difficulty": {
          "nulls": 0,
          "distinct": 3,
          "min": "easy",
          "max": "medium"
        },
        "lesson_duration_minutes": {
          "nulls": 0,
          "distinct": 83,
          "min": 13,
          "max": 103
        }
      }
    },
    "user_flashcards": {
      "rows": 600,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 600,
          "min": 1,
          "max": 600
        },
        "user_id": {
          "nulls": 0,
          "distinct": 190,
          "min": 1,
          "max": 200
        },
        "flashcard_topic": {
          "nulls": 0,
          "distinct": 377
        },
        "usage_date": {
          "nulls": 0,
          "distinct": 409,
          "min": "2023-01-04",
          "max": "2024-12-30"
        },
        "flashcard_frequency": {
          "nulls": 0,
          "distinct": 38,
          "min": 4,
          "max": 44
        },
        "flashcard_duration_minutes": {
          "nulls": 0,
          "distinct": 48,
          "min": 8,
          "max": 55
        }
      }
    },
    "user_progress": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "user_id": {
          "nulls": 0,
          "distinct": 117,
          "min": 1,
          "max": 200
        },
        "total_lessons_completed": {
          "nulls": 0,
          "distinct": 164,
          "min": 0,
          "max": 1000
        },
        "total_flashcards_used": {
          "nulls": 0,
          "distinct": 173,
          "min": 0,
          "max": 985
        },
        "last_active_date": {
          "nulls": 0,
          "distinct": 177,
          "min": "2023-01-04",
          "max": "2024-12-31"
        }
      }
    },
    "user_achievements": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "user_id": {
          "nulls": 0,
          "distinct": 176,
          "min": 1,
          "max": 200
        },
        "achievement_name": {
          "nulls": 0,
          "distinct": 269
        },
        "unlocked_date": {
          "nulls": 0,
          "distinct": 303,
          "min": "2023-01-02",
          "max": "2024-12-31"
        },
        "achievement_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "milestone",
          "max": "skill"
        },
        "achievement_points": {
          "nulls": 0,
          "distinct": 63,
          "min": 21,
          "max": 93
        }
      }
    },
    "user_feedback": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "user_id": {
          "nulls": 0,
          "distinct": 123,
          "min": 4,
          "max": 199
        },
        "feedback_text": {
          "nulls": 0,
          "distinct": 200
        },
        "submission_date": {
          "nulls": 0,
          "distinct": 180,
          "min": "2023-01-01",
          "max": "2024-12-28"
        },
        "feedback_rating": {
          "nulls": 0,
          "distinct": 5,
          "min": 1,
          "max": 5
        },
        "feedback_category": {
          "nulls": 0,
          "distinct": 3,
          "min": "content",
          "max": "usability"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/language-learning-app/v4/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/csv/users.csv",
      "bytes": 11504,
      "sha256": "ffcf8fb677e6bce2c72a356bb4eb23cb0b544ec9f05a27bb7d432b67c2af5d04",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/user_achievements.csv",
      "format": "csv",
      "table": "user_achievements",
      "key": "datasets/language-learning-app/v4/csv/user_achievements.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/csv/user_achievements.csv",
      "bytes": 19938,
      "sha256": "45b0e862ee0d2de9e9e70db6e5e4681d54f7df0b0e889dd01495715ba2f1e8db",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/user_feedback.csv",
      "format": "csv",
      "table": "user_feedback",
      "key": "datasets/language-learning-app/v4/csv/user_feedback.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/csv/user_feedback.csv",
      "bytes": 44759,
      "sha256": "c35e9742c7d34a35030f5c1c94d0a2ac324a31dac1bcb9d577e26c22902d7d2e",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/user_flashcards.csv",
      "format": "csv",
      "table": "user_flashcards",
      "key": "datasets/language-learning-app/v4/csv/user_flashcards.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/csv/user_flashcards.csv",
      "bytes": 26246,
      "sha256": "4e5b81dcc0c7fc7f644601273fa536a4e01b0b36fd6b90488a980dc7749db0e8",
      "rows": 600,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/user_lessons.csv",
      "format": "csv",
      "table": "user_lessons",
      "key": "datasets/language-learning-app/v4/csv/user_lessons.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/csv/user_lessons.csv",
      "bytes": 37897,
      "sha256": "c9aea74878cd8e9a8da2a6fea894f5f04d0a367c52f2fcbb1d958a18b145554c",
      "rows": 800,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/user_progress.csv",
      "format": "csv",
      "table": "user_progress",
      "key": "datasets/language-learning-app/v4/csv/user_progress.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/csv/user_progress.csv",
      "bytes": 5309,
      "sha256": "d3b5534916772ede829a72783b84f5131e5b004a0cec9d165b3c5abf58894733",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "language-learning-app.json",
      "format": "json",
      "table": null,
      "key": "datasets/language-learning-app/v4/language-learning-app.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/language-learning-app.json",
      "bytes": 512242,
      "sha256": "9850a31be485eccd7991c10054a33f66741218c46e4a69a196a73d1ec994477d",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/language-learning-app/v4/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/sql/postgres.sql",
      "bytes": 188509,
      "sha256": "31129727d28713c91e86fedc6f0df0d0d20a20e9bbe1dc323e995377ca487cbd",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/language-learning-app/v4/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/sql/mysql.sql",
      "bytes": 187768,
      "sha256": "fba0496feaea404322fb30d2de014af1f2a70aa0a3cb88942b1ee1bade5efa98",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/language-learning-app/v4/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/sql/mssql.sql",
      "bytes": 194606,
      "sha256": "43f611904738ed9f5ca0a90cf76986591fe893f4b17e62393031c58112570b93",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/language-learning-app/v4/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/sql/sqlite.sql",
      "bytes": 187516,
      "sha256": "3f5d4330c44aba7041ba7f4a6a1e82d5a3d89697c1c2f16791eccc0c61594438",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/language-learning-app/v4/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/prisma/seed.ts",
      "bytes": 410984,
      "sha256": "58a16a5eb6853d83d7ada612f510d723caa09a8d12f6fb3095e9decfdf48ede9",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/language-learning-app/v4/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/language-learning-app/v4/django/fixtures.json",
      "bytes": 621695,
      "sha256": "24ab9712cbe497ad61b677b009fffb66697489bbed54bbc4fc39c48a504c49be",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767307228,
  "updatedAt": 1789095904664
}
