Giter VIP home page Giter VIP logo

movie-picker's Introduction

movie-picker

In my home we have some trouble deciding on a movie to watch. My husband has seemingly endless numbers of movies on his list to check out, which makes choosing one all the more difficult. We had your old standard paper movie jar for a while (where you randomly draw a movie), but it doesn't help us filter based on our mood, how much time we have, or the audience, and is cumbersome to change the options. This application therefore upgrades a standard paper movie jar with modernized flexibility including more sophisticated filtering.

How it works

As the user, you can have as many "jars" as you would like and can edit those jars with various movies. When the '+' button is clicked within a created jar, you'll be prompted for a title, and the application searches TMDB for both TV shows and movies and displays them to you, so you can pick your desired option. The app will then automatically gather the required data of the selected movie(s)/show(s). The user is prompted to select a "vibe" for their selection -- basically, determine whether the movie is challenging emotionally and/or mentally to watch. This is a major source of challenge in deciding a movie for us that genre doesn't quite determine for us, but it is easy to ignore this feature if you wish. If you would like other custom filter options, please let me know, as this would be of interest to me for future development.

The 'Your Jars' page displays your movies in an attractive card format organized by jar, and hovering over those movies displays additional information on the back of the card. The user can edit their entries and include a custom rating if they've already watched the movie. Watched movies are stored in a "watched" movie jar as well, for interest sake.

The movie picker tool at the top of the page prompts the user for a run time, jar to choose from, vibe, and genre for the movie. It chooses the highest rated as a "top pick" suggestion, but displays all the others that meet the search criteria as well.

How to use

I am updating this application using a Javascript / React stack to modernize it, and once it is done it will be deployed publicly. Currently, for my own personal use, I am running this application on my home computer. If you would like to do the same, here are some instructions for how you could go about doing so from the code provided in this repository.

For Windows:

  1. Download this repository and note where on your computer you download the folder.

  2. Ensure python is installed on your computer. If you need to install, go here: https://www.python.org/downloads/ and make sure you click on the "add python to path" checkbox so python and needed packages are available to the program. You also need to download pip: https://www.liquidweb.com/kb/install-pip-windows/

  3. Open windows powershell and navigate to the directory you downloaded this repository: cd C:/path/to/directory

  4. Download the requirements by running: pip install -r requirements.txt

  5. You need to define two environment variables to run this program.

    1. SECRET_KEY : You can randomly generate a secret key here: https://randomkeygen.com/

    2. TMDB_API_KEY : is obtained from TMDB for using their API service. Go here to get one: https://developers.themoviedb.org/3/getting-started/introduction

    To add these environment variables to your PATH, type in Powershell:

    $env:SECRET_KEY="YOUR_SECRET_KEY"

    $env:TMDB_API_KEY="YOUR_TMDB_API_KEY"

  6. The program can then be launched by typing: waitress-serve --host 127.0.0.1 main:app

If you have chrome installed, the website should automatically launch. Otherwise, copy/paste "http://127.0.0.1:8080" into your browser's address bar to see the application. Your data will be saved locally on your machine in the instance/movies.db location inside the folder you downloaded this repository.

Desktop shortcut:

To make a desktop shortcut to conveniently launch the application:

  1. Set permission to run .ps1 scripts on your machine. Note this will allow scripts you personally write to run, but maintain protection against scripts that haven't been properly authenticated. Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

  2. Make a script called "run.ps1" and put it in the program directory. Inside, add the following code, customized with your environment variables and path to this folder. $env:SECRET_KEY="YOUR_SECRET_KEY"; $env:TMDB_API_KEY="YOUR_TMDB_API_KEY"; cd C:/path/to/movie-picker; waitress-serve --host 127.0.0.1 main:app

  3. On your desktop, right click "create shortcut" and in the Target window type the following, changing the path to your own for the run.ps1 script. C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -ExecutionPolicy Bypass C:/path/to/run.ps1. Hit save.

  4. Double clicking on the created shortcut should launch the program as before. If you would like to start the application on a different browser, edit line 162 of main.py as needed.

movie-picker's People

Contributors

anagelberg avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.