A unified Business Intelligence and Data Warehousing project that consolidates personal entertainment logs across movies, TV shows, and video games into a normalized MS SQL database and an interactive Power BI dashboard.
The pipeline pulls data exports from tracking services (Trakt, IMDb, Backloggd) and enriches video game metadata via the IGDB (Twitch) API.
The goal of this project is to centralize and harmonize fragmented personal entertainment tracking into a single, unified business intelligence solution. By consolidating data across different media platforms (films, series, and games), the project eliminates data silos and provides holistic, data-driven insights into personal consumption habits, preferences, and long-term rating patterns.
-
Unified Entertainment Hub: Entertainment trackers are typically siloed by medium (films/TV on IMDb and Trakt, games on dedicated platforms). This project brings them together under a single dimensional model for seamless cross-media analytics.
-
Deep Cross-Dimensional Analysis:
- Evaluates personal bias and rating trends across release years (classic nostalgia vs. modern releases).
- Normalizes delimited multi-genre tags into granular dimensions for accurate categorical breakdown.
- Tracks watch history, velocity, and viewing consistency over time.
-
Robust Data Engineering & Modeling:
- Star/snowflake schema design with relational normalization in MS SQL Server.
- Power Query ETL pipelines (string manipulation, row expansion, data sanitation, and type safety).
- Advanced DAX modeling covering weighted rating averages, dynamic age calculations, and bidirectional cross-filtering.
-
Privacy-First & Fully Reusable (Template-Ready): Distributed with a sanitized, schema-only database backup/DDL and a
.pbit(Power BI Template) file. Anyone can spin up the environment and plug in their own tracking history without exposing personal logs or credentials.
Collect your personal tracking data from the following platforms:
- Backloggd (Video Games): Export your game library using the Backloggd Plus Firefox Extension (refer to this community thread for details).
- IMDb (Watchlist & Metadata):
- Export your personal lists under Your Lists → ••• (Menu) → Export.
- Download public title metadata (
title.basics.tsv.gz) from datasets.imdbws.com. To optimize performance and storage, filter down this file to keep only rows matching yourWatchedHistorytitle IDs.
- Trakt (Movies & TV Shows): Export your raw tracking data via Settings → Data → Export Now.
Game enrichment scripts query the IGDB API, which authenticates via Twitch Developer services (free for both personal and commercial use):
- Register on the Twitch Developer Console and create an application.
- Generate your Client ID and App Access Token (or Client Secret).
- Create a
.envfile in the root folder alongside the ingestion scripts:
TWITCH_CLIENT_ID=your_client_id_here
TWITCH_APP_ACCESS_TOKEN=your_generated_token_here
- Restore the provided template database (MediaTrackerDB_template.bak) onto your local MS SQL Server instance, or execute the schema creation scripts.
- Verify table structures, primary keys, and foreign key relationships across the staging and reporting schemas.
- Open the loader scripts / notebooks.
- Confirm your connection string matches your local instance name and target database
- Update the source file paths to point to your exported CSV/TSV files, then execute the loader to populate the tables.
- Launch MediaTrackerDB_Template.pbit in Power BI Desktop.
- When prompted for parameters, enter your local SQL Server instance name and database name.
- If credentials fail to connect immediately:
- Go to Home → Transform Data → Data Source Settings.
- Select your connection and choose Change Source... to re-point to your local instance.
- Click Refresh to load your personal data into the model.
The data model uses a normalized star/snowflake schema optimized for high-performance cross-filtering:
![]()