IMDb
A complete decision-support solution on IMDb data: Python ETL, OLAP warehouse, Power BI and sentiment analysis.
Context
SAE5.C.01 of the BUT in Computer Science (2025-26, IUT d’Annecy). Starting from IMDb’s public flat files, the brief was to design an optimized SQL Server database and Power BI reports, then AI models able to assess a review from its text alone, all on a standard PC.
Team and my role
Group project, 5 people.
I took the lead on the project and handled the technical side.
Approach
- Modeling: conceptual, logical and physical models in PowerAMC for a normalized, constrained OLTP schema.
- ETL: multithreaded Python script with manual memory management and disk offloading to fit on a standard PC, followed by bulk loading with BCP.
- Optimization: indexes on foreign keys and composite indexes, backed by execution plan analysis.
- Decision support: move to a star schema loaded with SSIS, then Power BI reports.
- AI: TF-IDF and linear models compared with 3-fold cross-validation, using a restricted hyperparameter grid to stay frugal.
Visuals

Normalized OLTP model with 12 tables. 
Star schema with 2 fact tables, 9 dimensions and a bridge table for genres. 
Semantic model in Power BI. 
Catalog overview. 
Tooltip on hover showing a country’s leading genres. 
Movie analysis, with the Key Influencers AI visual. 
Casting analysis. 
TV shows and movies compared, down to a Sankey diagram. 
Focus on video games. 
Model 1, positive or negative polarity. 
Model 2, actual and predicted rating out of 10. 
Model 3, grade classification.
Facts and figures
- 7 TSV input files
- Over 12 GB
- processed by the ETL in 25 minutes
- 222M rows
- OLTP and OLAP models
- 12 + 12 tables
- join query after indexing
- 62 to 7 ms
- polarity accuracy on 25,000 test reviews
- 90.2%
- on the rating out of 10, with an R² of 0.657
- MAE of 1.61
- grade accuracy, with the Mixed class assigned by a rule
- 65%
- OLAP Power BI report and its tooltips
- 5 + 3 pages
What I took away
The main challenges and lessons came from managing the project and from setting up the initial requirements.