A Streamlit app for movie discovery, watchlists, and recommendations.
Project description
Popcorn Meter
Popcorn Meter is a desktop/web movie recommendation application with a Streamlit GUI, developed in Python for a University Software Engineering project, built using Streamlit, Poetry, OMDb integration, and the template provided by the University course.
Discover movies, build your watchlist, track watched titles, and get personalized recommendations based on your preferences and activity.
The application combines:
- account-based preferences and history
- OMDb movie metadata
- explainable recommendation logic (genres, actors, ratings, plot signals, and feedback)
Popcorn Meter runs on Windows, Linux, and macOS.
To start the software application
This software project is tested with Python 3.10 and above. The recommended Python version is 3.12+.
- Clone the repository locally:
git clone https://github.com/unibo-dtm-se-2324-POPCORNMETER/artifact.git
- Go into the project directory:
cd artifact
- Install the required dependencies:
pip install -r requirements.txt
poetry install
- (Optional) configure local API secrets for app features:
Create .streamlit/secrets.toml with:
OMDB_API_KEY = "your_omdb_key"
TMDB_API_KEY = "your_tmdb_key"
- Launch the application:
poetry run popcorn-meter
Or:
poetry run python -m popcorn_meter
Development commands
Run tests:
poetry run poe test
Run coverage:
poetry run poe coverage
poetry run poe coverage-report
poetry run poe coverage-html
Run static checks:
poetry run poe static-checks
Format code:
poetry run poe format
Further resources
Project structure
Overview:
<root>
|-- popcorn_meter/ # main package
| |-- __init__.py
| |-- __main__.py # launches the Streamlit app
| |-- application/ # use cases and ports
| |-- infrastructure/ # OMDb + SQLite adapters
| `-- ui/ # Streamlit frontend
|-- tests/ # unit/integration/ui tests
|-- .github/workflows/ # CI/CD workflows
|-- pyproject.toml # Poetry configuration
|-- requirements.txt # Poetry bootstrap dependency
|-- release.config.js # semantic-release config
`-- renovate.json # dependency update automation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file popcorn_meter-1.1.3.tar.gz.
File metadata
- Download URL: popcorn_meter-1.1.3.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90e8ce1a9d0e296f02ecbfd784b7a6daeb4eb8a84223e7d792c06c4252010d91
|
|
| MD5 |
786b3494fd61d781bb791ae9813b728a
|
|
| BLAKE2b-256 |
75cbc1b8ecf1b77b8b0c3c483e7ed5acbfcac01fc9bbfe43120807bf02687fef
|
File details
Details for the file popcorn_meter-1.1.3-py3-none-any.whl.
File metadata
- Download URL: popcorn_meter-1.1.3-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4038bbc8c8323c98da902f955b8a22576ac94cc8716a0c8114031d4868402007
|
|
| MD5 |
b04164e34bf0fa7920d4931c29ddd6be
|
|
| BLAKE2b-256 |
1d27263e5c39c10068e88568e77d14a2dd46f47d3573b153f1a78a7046cd4210
|