Skip to main content

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+.

  1. Clone the repository locally:
git clone https://github.com/unibo-dtm-se-2324-POPCORNMETER/artifact.git
  1. Go into the project directory:
cd artifact
  1. Install the required dependencies:
pip install -r requirements.txt
poetry install
  1. (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"
  1. 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 documentation

TestPyPI page

Link to the project template

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

popcorn_meter-1.1.3.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

popcorn_meter-1.1.3-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

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

Hashes for popcorn_meter-1.1.3.tar.gz
Algorithm Hash digest
SHA256 90e8ce1a9d0e296f02ecbfd784b7a6daeb4eb8a84223e7d792c06c4252010d91
MD5 786b3494fd61d781bb791ae9813b728a
BLAKE2b-256 75cbc1b8ecf1b77b8b0c3c483e7ed5acbfcac01fc9bbfe43120807bf02687fef

See more details on using hashes here.

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

Hashes for popcorn_meter-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4038bbc8c8323c98da902f955b8a22576ac94cc8716a0c8114031d4868402007
MD5 b04164e34bf0fa7920d4931c29ddd6be
BLAKE2b-256 1d27263e5c39c10068e88568e77d14a2dd46f47d3573b153f1a78a7046cd4210

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page