/Omdb-Api-Movie-Analysis-Dashboard

Ein interaktives Lehrprojekt für Streamlit und Python. Erlaubt das Analysieren von IMDb-Filmdaten aus den Jahren 2021 & 2023, inklusive Genre-Verteilung, Bewertungen & Box-Office-Einnahmen. Bietet zudem Detailansichten & Wordcloudanalysen. Ideal für Lernende, die einen Einblick in datengetriebene Anwendungen mit Streamlit gewinnen möchten.

Primary LanguagePython

OMDB Movie Analysis Dashboard

Über dieses Projekt

Dieses Dashboard wurde als Lehrmittel für diejenigen entwickelt, die bereits über solide Grundkenntnisse in Python verfügen und daran interessiert sind, Streamlit, eine leistungsstarke und flexible Bibliothek für die Erstellung interaktiver und datengetriebener Webanwendungen, zu lernen und zu erforschen.

Das OMDB Movie Analysis Dashboard bietet eine praktische und interessante Möglichkeit, die vielfältigen Möglichkeiten von Streamlit zu entdecken. Von der Datenverarbeitung und Visualisierung bis hin zur Integration von externen APIs und dem Umgang mit Benutzereingaben deckt dieses Projekt eine breite Palette von Funktionen ab, die in modernen Webanwendungen üblich sind.

Die Struktur des Dashboards und der zugrunde liegende Code sind so konzipiert, dass sie sowohl für diejenigen nützlich sind, die gerade erst mit Streamlit beginnen, als auch für erfahrene Entwickler, die tiefer in fortgeschrittenere Themen eintauchen möchten. Durch dieses Projekt erhalten Sie nicht nur Einblicke in die Anwendungsentwicklung mit Streamlit, sondern verbessern auch Ihre Fähigkeiten in Python und Datenanalyse.

Was Sie lernen können

  • Grundlagen von Streamlit: Erfahren Sie, wie Sie mit Streamlit eine einfache Webanwendung erstellen, von der Einrichtung bis zur Bereitstellung.
  • Benutzerinteraktion: Implementieren Sie Formen der Benutzerinteraktion, wie Texteingaben, Buttons und Datei-Uploads.
  • Datenverarbeitung: Verarbeiten und analysieren Sie Daten aus unterschiedlichen Quellen und in verschiedenen Formaten.
  • Datenvisualisierung: Erstellen Sie interaktive Grafiken und Karten, um Daten auf ansprechende und informative Weise darzustellen.
  • Externe APIs integrieren: Lernen Sie, wie Sie externe APIs wie OMDB nutzen können, um dynamische Daten in Ihre Anwendung einzubinden.
  • Performance-Optimierung: Verstehen Sie, wie Caching und effiziente Datenverarbeitung die Performance Ihrer Streamlit-Anwendung verbessern können.
  • Fehlerbehandlung und Debugging: Verbessern Sie die Stabilität Ihrer Anwendung durch angemessene Fehlerbehandlung und Debugging-Techniken.

Überblick

Diese Streamlit-App bietet eine interaktive Plattform zur Analyse von Filmdaten. Sie ermöglicht es Benutzern, Filmdaten basierend auf Titeln oder einer hochgeladenen Liste zu analysieren und bietet umfassende Einblicke in verschiedene Aspekte der Filme.

Overview.py

img.png

img_1.png Details.py

img_2.png

Hauptmerkmale

  • Datenaktualisierung: Die App kann Filmdaten basierend auf eingegebenen Titeln oder einer hochgeladenen Datei aktualisieren und analysieren.
  • Übersichtsgrafiken: Im Overview-Tab werden verschiedene Grafiken erstellt, die Einblicke in Genres, IMDb-Bewertungen, Box-Office-Einnahmen und die geografische Verteilung der Filme bieten.
  • Detailansichten: Der Detail-Tab bietet tiefere Einblicke in einzelne Filme, einschließlich einer Wortwolkenanalyse des Plots.

Hauptfunktionen

Filminformationen Abrufen:

Die App verwendet die OMDB API, um Daten zu einzelnen Filmen oder einer Liste von Filmen abzurufen.

Datenvisualisierung:

Visualisierung von Filmgenres, IMDb-Bewertungen, Box-Office-Einnahmen und mehr durch verschiedene Grafiktypen wie Balkendiagramme und Karten.

  • Word Cloud Analyse: Visualisierung von Filmplots durch Wortwolken, um häufige Themen und Schlüsselwörter zu identifizieren.

  • Geo-Informationen: Anzeige der Herkunftsländer der Filme auf einer interaktiven Karte.

Struktur der App

  • streamlit/config.toml:Konfigurationseinstellungen für den Streamlit-Server.
  • api/extract_data.py: Modul zum Abrufen von Filmdaten von der OMDB API.
  • design/styler.py: Hilfsklasse für benutzerdefinierte CSS-Stile und Designelemente.
  • input/: Verzeichnis mit CSV-Dateien von IMDb für die Jahre 2021 und 2023.
  • process/processor.py: Enthält die `DataProcessor`-Klasse zur Verarbeitung und Analyse der Filmdaten. Funktionen umfassen das Explodieren von Spalten, Verarbeiten von Bewertungen und Erstellen von geografischen Daten für Kartenvisualisierungen.
  • static/img/logo.jpg: Logo der App.
  • tab/overview.py: Erstellung der Überblicksgrafiken und -funktionen für das Dashboard.
  • tab/details.py: Verantwortlich für die Erstellung der Detailansicht in der App. Beinhaltet Funktionen zur Erzeugung von Wortwolken und zur Anzeige detaillierter Filminformationen.
  • app.py: Hauptskript der Streamlit-App, das alle Module und Komponenten initialisiert.
  • config.py: Konfigurationsklasse mit Pfaden und API-Schlüsseln.

Setup und Ausführung

Installieren Sie die notwendigen Abhängigkeiten über pip install -r requirements.txt. ODER pipenv install

  • Um die App auszuführen, benötigen Sie Python 3.11.3 und die im Pipfile angegebenen Pakete. Installieren Sie die Pakete mit Pipenv:
pipenv install
pipenv shell
streamlit run app.py

Führen Sie die App mit dem Befehl streamlit run app.py aus. Die App ist nun im Browser unter der angegebenen URL zugänglich. Hinweis Die .env-Datei mit API-Zugangsdaten ist aus Sicherheitsgründen nicht im Repository enthalten. Sie müssen Ihren eigenen API-Schlüssel von der OMDB API-Website anfordern (hier: OMDB-API KEY REQUEST) und diesen in Ihrer lokalen .env-Datei speichern. Bsp:

API_KEY=XXXX

Datenquellen

Die App verwendet IMDb-Daten, die in CSV-Dateien im input-Ordner enthalten sind. Beispielhafte Datenzeilen:

Position,Const,Created,Modified,Description,Title,URL,Title Type,IMDb Rating,Runtime (mins),Year,Genres,Num Votes,Release Date,Directors
1,tt9032400,2020-04-24,Eternals,https://www.imdb.com/title/tt9032400/,movie,6.3,156,2021,"Action, Adventure, Fantasy, Sci-Fi",372217,2021-10-18,Chloé Zhao
...