{
  "format": "dataset-manifest/1",
  "slug": "travel-language-companion-app",
  "version": 1,
  "seed": "travel-language-companion-app:1",
  "spec": {
    "format": "dataset/1",
    "slug": "travel-language-companion-app",
    "name": "Traveler Language Engagement",
    "tagline": "User interactions from a language app, including achievements, exercises, and help requests for travelers.",
    "description": "Travelers use a language companion app to enhance their communication skills in foreign countries, providing them with essential phrases and contextual exercises to navigate various situations. Users engage with the app to learn and practice various languages, completing exercises, requesting help for difficult phrases, and earning achievements for their progress. The vibrant interactions of users with the app create a rich data environment, showcasing their journeys in language acquisition.\n\nThe dataset includes several interconnected tables. The 'users' table captures individual user profiles, detailing their language preferences and engagement levels. It connects with the 'achievements' table, where each achievement row corresponds to a user who has reached specific milestones in their language learning journey. The 'help_requests' table records instances when users seek assistance with particular phrases, illustrating common challenges faced by learners. Meanwhile, the 'exercises' table includes various tasks designed to build vocabulary, with each exercise linked to specific phrases stored in the 'phrases' table, which contains essential expressions for travelers. Lastly, the 'user_phrases' table tracks which phrases each user frequently accesses, highlighting personalized learning pathways based on their needs and interests.\n\nThis dataset enables exploration of various questions, such as which phrases are most popular among users, how engagement varies with different user demographics, or which achievements correlate with higher rates of successful language acquisition. It serves as an excellent resource for practicing data analysis, particularly in contexts of user engagement, learning outcomes, and the efficacy of language learning tools. Furthermore, it's important to note that the data is synthetic, created to simulate user interactions and learning experiences.",
    "domain": "travel",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "language learning",
      "travel app",
      "user engagement",
      "achievements",
      "exercise completion",
      "phrase usage"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "Each row represents a user of the language companion app, holding personal details and engagement statistics.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "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 user's email address.",
            "nullable": true
          },
          "joined_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-10-31",
            "description": "The date the user joined the app.",
            "dayProfile": "waking"
          },
          "active": {
            "kind": "bool",
            "trueRate": 0.7,
            "description": "Indicates if the user is currently active."
          }
        }
      },
      "achievements": {
        "description": "This table captures the different achievements users can earn while using the app, linking to user progress.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each achievement."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who earned the achievement."
          },
          "achievement_type": {
            "kind": "enum",
            "values": [
              "Basic Phrases",
              "Emergency Phrases",
              "Cultural Insights"
            ],
            "description": "The type of achievement earned."
          },
          "earned_at": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2023-10-31",
            "description": "The date the achievement was earned.",
            "nullable": true,
            "when": {
              "column": "achievement_type",
              "in": [
                "Basic Phrases",
                "Emergency Phrases",
                "Cultural Insights"
              ]
            },
            "dayProfile": "waking"
          }
        }
      },
      "help_requests": {
        "description": "Records instances where users requested translation help, linking to the user and the context.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each help request."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who made the request."
          },
          "request_type": {
            "kind": "enum",
            "values": [
              "Translation",
              "Cultural Advice"
            ],
            "description": "Type of help requested by the user."
          },
          "requested_at": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-10-31",
            "description": "The date the help request was made.",
            "nullable": true,
            "when": {
              "column": "request_type",
              "in": [
                "Translation",
                "Cultural Advice"
              ]
            },
            "dayProfile": "waking"
          }
        }
      },
      "exercises": {
        "description": "Contains details of vocabulary exercises completed by users, linked to their progress in learning.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each exercise."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who completed the exercise."
          },
          "exercise_type": {
            "kind": "enum",
            "values": [
              "Vocabulary",
              "Grammar",
              "Pronunciation"
            ],
            "description": "Type of exercise completed."
          },
          "completed_at": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2023-10-31",
            "description": "The date the exercise was completed.",
            "nullable": true,
            "when": {
              "column": "exercise_type",
              "in": [
                "Vocabulary",
                "Grammar",
                "Pronunciation"
              ]
            },
            "dayProfile": "waking"
          }
        }
      },
      "phrases": {
        "description": "Essential phrases available in the app, categorized by context and usage frequency.",
        "rows": 80,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each phrase."
          },
          "phrase": {
            "kind": "words",
            "description": "The language phrase provided to users."
          },
          "context": {
            "kind": "enum",
            "values": [
              "Emergency",
              "Travel",
              "Culture"
            ],
            "description": "The context in which the phrase is used."
          },
          "usage_frequency": {
            "kind": "int",
            "min": 1,
            "max": 1000,
            "description": "The frequency of phrase usage by users.",
            "nullable": true
          }
        }
      },
      "user_phrases": {
        "description": "Links users with the phrases they have accessed or saved within the app.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user-phrase link."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who accessed the phrase."
          },
          "phrase_id": {
            "kind": "fk",
            "ref": "phrases.id",
            "description": "Reference to the phrase accessed by the user."
          },
          "accessed_at": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-10-31",
            "description": "The date the phrase was accessed.",
            "dayProfile": "waking"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable"
    ],
    "analysisQuestions": [
      "What types of achievements do active users earn most frequently?",
      "How many help requests are made by users on average each month?",
      "Which phrases are accessed most often, and what might this indicate about user needs?",
      "What is the relationship between exercise completion rates and earned achievements?",
      "How does user activity correlate with the types of help requests made?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Users and Achievements",
        "sql": "SELECT users.full_name, achievements.achievement_type FROM users JOIN achievements ON users.id = achievements.user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count of Exercises by Type",
        "sql": "SELECT exercise_type, COUNT(*) FROM exercises GROUP BY exercise_type;",
        "dialect": "postgres"
      },
      {
        "title": "Access Frequency of Phrases",
        "sql": "SELECT phrases.phrase, COUNT(user_phrases.id) AS access_count FROM phrases LEFT JOIN user_phrases ON phrases.id = user_phrases.phrase_id GROUP BY phrases.phrase ORDER BY access_count DESC;",
        "dialect": "postgres"
      },
      {
        "title": "User Engagement Over Time",
        "sql": "SELECT DATE_TRUNC('month', joined_at) AS month, COUNT(*) FROM users WHERE active = TRUE GROUP BY month ORDER BY month;",
        "dialect": "postgres"
      },
      {
        "title": "Help Requests by Type and Frequency",
        "sql": "SELECT request_type, COUNT(*) FROM help_requests GROUP BY request_type ORDER BY COUNT(*) DESC;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Language Learning Analytics",
        "body": "Language educators can use this dataset to analyze user engagement patterns and identify the most effective phrases and exercises for enhancing language skills. By examining completion rates and achievement trends, they can improve their curriculum and support materials."
      },
      {
        "title": "App Performance Optimization",
        "body": "Developers can leverage this dataset to monitor user interactions and improve the app's performance. By analyzing help request trends and the frequency of phrase usage, they can identify areas for enhancement and prioritize features that users find most beneficial."
      },
      {
        "title": "User Personalization Strategies",
        "body": "Marketers can utilize the dataset to create personalized experiences for users based on their engagement history. By analyzing the phrases accessed and achievements earned, they can tailor content and notifications to encourage further interaction and learning."
      },
      {
        "title": "Research in Language Acquisition",
        "body": "Researchers can study the data to gain insights into how users engage with language learning applications. By examining the relationship between exercise completion and achievements, they can contribute to the understanding of best practices in language acquisition."
      }
    ]
  },
  "counts": {
    "phrases": 80,
    "users": 200,
    "achievements": 100,
    "exercises": 300,
    "help_requests": 150,
    "user_phrases": 250
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 21,
          "distinct": 177,
          "min": "Alice Baker",
          "max": "Zara Torres"
        },
        "email": {
          "nulls": 37,
          "distinct": 163
        },
        "joined_at": {
          "nulls": 0,
          "distinct": 200,
          "min": "2020-01-23 19:30:58",
          "max": "2023-10-20 18:03:56"
        },
        "active": {
          "nulls": 0,
          "distinct": 2,
          "min": "false",
          "max": "true"
        }
      }
    },
    "achievements": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "user_id": {
          "nulls": 0,
          "distinct": 81,
          "min": 8,
          "max": 198
        },
        "achievement_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "Basic Phrases",
          "max": "Emergency Phrases"
        },
        "earned_at": {
          "nulls": 0,
          "distinct": 100,
          "min": "2021-01-03 09:07:41",
          "max": "2023-10-19 17:48:49"
        }
      }
    },
    "help_requests": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "user_id": {
          "nulls": 0,
          "distinct": 115,
          "min": 4,
          "max": 198
        },
        "request_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "Cultural Advice",
          "max": "Translation"
        },
        "requested_at": {
          "nulls": 0,
          "distinct": 150,
          "min": "2022-01-06 12:06:55",
          "max": "2023-10-31 12:40:20"
        }
      }
    },
    "exercises": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "user_id": {
          "nulls": 0,
          "distinct": 163,
          "min": 1,
          "max": 200
        },
        "exercise_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "Grammar",
          "max": "Vocabulary"
        },
        "completed_at": {
          "nulls": 0,
          "distinct": 300,
          "min": "2021-01-01 02:16:36",
          "max": "2023-10-25 10:57:37"
        }
      }
    },
    "phrases": {
      "rows": 80,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 80,
          "min": 1,
          "max": 80
        },
        "phrase": {
          "nulls": 0,
          "distinct": 80
        },
        "context": {
          "nulls": 0,
          "distinct": 3,
          "min": "Culture",
          "max": "Travel"
        },
        "usage_frequency": {
          "nulls": 5,
          "distinct": 69,
          "min": 8,
          "max": 981
        }
      }
    },
    "user_phrases": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "user_id": {
          "nulls": 0,
          "distinct": 139,
          "min": 1,
          "max": 200
        },
        "phrase_id": {
          "nulls": 0,
          "distinct": 79,
          "min": 1,
          "max": 80
        },
        "accessed_at": {
          "nulls": 0,
          "distinct": 250,
          "min": "2022-01-03 10:16:59",
          "max": "2023-10-22 13:56:26"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/phrases.csv",
      "format": "csv",
      "table": "phrases",
      "key": "datasets/travel-language-companion-app/v1/csv/phrases.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/csv/phrases.csv",
      "bytes": 3474,
      "sha256": "f8fe39d81e988ca2eb6cbc196c3be8e6d8a939d883f0bb762a7c879a5e442d5e",
      "rows": 80,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/travel-language-companion-app/v1/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/csv/users.csv",
      "bytes": 12136,
      "sha256": "1714e0b7d3d136d1f953729a272cda991c0844ab37eb67e3398fed1ccabec3a9",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/achievements.csv",
      "format": "csv",
      "table": "achievements",
      "key": "datasets/travel-language-companion-app/v1/csv/achievements.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/csv/achievements.csv",
      "bytes": 4417,
      "sha256": "ee6b9d4f4cb8f3dddb4da80989f6b486ed78d73432a0a59e3db52dc40dddd53f",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/exercises.csv",
      "format": "csv",
      "table": "exercises",
      "key": "datasets/travel-language-companion-app/v1/csv/exercises.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/csv/exercises.csv",
      "bytes": 11787,
      "sha256": "3ec7a21c95001f5055c6f255f0efa0b07ff6870f24552e6abd7a556acfb5765e",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/help_requests.csv",
      "format": "csv",
      "table": "help_requests",
      "key": "datasets/travel-language-companion-app/v1/csv/help_requests.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/csv/help_requests.csv",
      "bytes": 6287,
      "sha256": "98acfaafb22f2a195fb89d087725303d83594df48721cef0a2ca792ecb840b82",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/user_phrases.csv",
      "format": "csv",
      "table": "user_phrases",
      "key": "datasets/travel-language-companion-app/v1/csv/user_phrases.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/csv/user_phrases.csv",
      "bytes": 7758,
      "sha256": "accc945e72cb2acf60bc165f09898144c407c0b0f80dae0d0d1884e867a906ed",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "travel-language-companion-app.json",
      "format": "json",
      "table": null,
      "key": "datasets/travel-language-companion-app/v1/travel-language-companion-app.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/travel-language-companion-app.json",
      "bytes": 146126,
      "sha256": "b21a4bf63edad2111b301cd81430328ef1e26d075222ba51b08c7cfbfd9332d5",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/travel-language-companion-app/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/sql/postgres.sql",
      "bytes": 63266,
      "sha256": "bdd17ea03388e352b4c83e70e0bd51c4d9ee17540e724fd738cea15803c5e261",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/travel-language-companion-app/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/sql/mysql.sql",
      "bytes": 61920,
      "sha256": "1383a8218fb9f56084115353d8d129d7c5010f8cff537aae35dcf11b9599e2b3",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/travel-language-companion-app/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/sql/mssql.sql",
      "bytes": 64363,
      "sha256": "fa4e398b8d53dc2ef2de6152b05f94060cf47675542704fe8390bee1a712a2cf",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/travel-language-companion-app/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/sql/sqlite.sql",
      "bytes": 61655,
      "sha256": "4a8a26c723f529855b98b87903de666c29999b948552de695787328e39f7306e",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/travel-language-companion-app/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/prisma/seed.ts",
      "bytes": 126281,
      "sha256": "c9ccaf6b91a2e03ef6e72cf8d4c054acc1615ca579c3534023bc5623d071af3b",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/travel-language-companion-app/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-language-companion-app/v1/django/fixtures.json",
      "bytes": 192106,
      "sha256": "809ef10833103d7a62f4ace90be7772262511f182c9999f76464dca5a318206e",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768833807,
  "updatedAt": 1788768833807
}
