IMDb Analytics App is an interactive web dashboard for exploring and analyzing IMDb movie data. Discover insights on movie ratings, genres, runtimes, and trends over the years through dynamic visualizations and filters. Data is fetched from the BigQuery dataset prepared using the IMDBMoviesETL data pipeline.
- Advanced filters: Filter by release year, genres, runtime, and rating.
- Top movies: View the highest-rated movies according to your criteria.
- Genre trends: Analyze the popularity and ratings of genres over time.
- Runtime distribution: Explore how movie runtimes vary and their relationship with ratings.
- Yearly trends: See the evolution in the quantity and quality of movies released each year.
- Modern interface: Responsive UI based on Dash Mantine Components and Plotly.
- Efficient cache: Optimized queries and visualizations using cache storage.
- Programming Language: Python 3.12+
- Frontend/Backend: Plotly Dash
- CSS Styling: Dash Mantine Components
- Data Processing: Polars
- Warehouse: Google BigQuery
- Cache: Flask-Caching
- Containerization: Docker
-
Clone the repository:
git clone https://github.com/Alfredomg7/IMDbAnalyticsApp.git cd IMDbAnalyticsApp -
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Copy
.env.exampleto.envand fill in your Google Cloud credentials and BigQuery dataset/table IDs.
- Copy
-
Run the application:
python main.py
Go to http://localhost:8050 in your browser.
-
Build the image:
docker build -t imdb-analytics-app . -
Run the container:
docker run -p 8000:8000 --env-file .env imdb-analytics-app
Go to http://localhost:8000.
- IMDb Datasets for the public data.
- Plotly and Dash for interactive data visualization and smooth web dashboard development.
- Dash Mantine Components for the modern UI.
- Google Cloud BigQuery for efficient data storage and querying.
- Polars for fast and efficient data processing.
For questions, open an issue or contact alfredomg4000@gmail.com.
