Movie Search App
Movie Search App
Console utility for searching and exporting movie data from the TMDb database.
GitHub Repository: https://github.com/fedyaqq34356/Movie-Search-App
Movie Search App is a command-line tool for working with The Movie Database (TMDb) database. The application allows users to search for movies by genres, obtain detailed information, and export data to text files. The project demonstrates skills in working with REST API, modular architecture, data processing, and logging.
Key features:
search by genres, pagination (1 page = 20 movies), data export (titles, descriptions, ratings, providers), regional support, operation logging, error handling.
Technologies used:
Python 3.7+, libraries requests, python-dotenv, logging. TMDb API v3, Bearer token. Development principles: modularity, readability, DRY.
Project structure:
Movie-Search-App/
├── main.py # Entry point and workflow coordination
├── api.py # TMDb API requests and responses
├── config.py # Configuration and environment variables
├── display.py # User interface and input handling
├── export.py # File writing operations
├── logger.py # Logging configuration
├── .env # API credentials (not tracked)
├── requirements.txt # Python dependencies
└── README.md # Documentation
Key decisions:
storing tokens in .env, delays between requests (0.5 sec), gathering all types of providers (subscription, free, ad-supported, rental, purchase), multi-level logging (DEBUG, INFO, WARNING, ERROR), error handling with try-except and retries.
Usage examples:
selecting a genre, entering the number of pages, exporting data to files (titles, descriptions, ratings, providers). The region and language can be changed in the config for correct provider display.
Performance:
1 page (20 movies) ~1 second, 10 pages ~10 seconds, 50 pages ~50 seconds. Reliability and scalability are ensured, supporting up to 500 pages, efficient memory usage, minimal API load.
Possible improvements:
short-term — JSON export, CLI arguments, support for series, genre caching; long-term — GUI, SQLite database, parallel requests, REST API wrapper, unit and integration tests.
Installation:
git clone https://github.com/fedyaqq34356/Movie-Search-App.git
cd Movie-Search-App
pip install -r requirements.txt
Links:
GitHub https://github.com/fedyaqq34356/Movie-Search-App
License:
GNU General Public License v3.0. The project is free to use, modify, and distribute under the terms of GPL v3.
Console utility for searching and exporting movie data from the TMDb database.
GitHub Repository: https://github.com/fedyaqq34356/Movie-Search-App
Movie Search App is a command-line tool for working with The Movie Database (TMDb) database. The application allows users to search for movies by genres, obtain detailed information, and export data to text files. The project demonstrates skills in working with REST API, modular architecture, data processing, and logging.
Key features:
search by genres, pagination (1 page = 20 movies), data export (titles, descriptions, ratings, providers), regional support, operation logging, error handling.
Technologies used:
Python 3.7+, libraries requests, python-dotenv, logging. TMDb API v3, Bearer token. Development principles: modularity, readability, DRY.
Project structure:
Movie-Search-App/
├── main.py # Entry point and workflow coordination
├── api.py # TMDb API requests and responses
├── config.py # Configuration and environment variables
├── display.py # User interface and input handling
├── export.py # File writing operations
├── logger.py # Logging configuration
├── .env # API credentials (not tracked)
├── requirements.txt # Python dependencies
└── README.md # Documentation
Key decisions:
storing tokens in .env, delays between requests (0.5 sec), gathering all types of providers (subscription, free, ad-supported, rental, purchase), multi-level logging (DEBUG, INFO, WARNING, ERROR), error handling with try-except and retries.
Usage examples:
selecting a genre, entering the number of pages, exporting data to files (titles, descriptions, ratings, providers). The region and language can be changed in the config for correct provider display.
Performance:
1 page (20 movies) ~1 second, 10 pages ~10 seconds, 50 pages ~50 seconds. Reliability and scalability are ensured, supporting up to 500 pages, efficient memory usage, minimal API load.
Possible improvements:
short-term — JSON export, CLI arguments, support for series, genre caching; long-term — GUI, SQLite database, parallel requests, REST API wrapper, unit and integration tests.
Installation:
git clone https://github.com/fedyaqq34356/Movie-Search-App.git
cd Movie-Search-App
pip install -r requirements.txt
Links:
GitHub https://github.com/fedyaqq34356/Movie-Search-App
License:
GNU General Public License v3.0. The project is free to use, modify, and distribute under the terms of GPL v3.