Moviescope is a personal movie journal, which helps users to track films they have watched or want to watch in the future. A user can search for a movie by title, add reviews and ratings, and store it in a personal journal. Also, Moviescope provides a list of recommendations matching the user’s taste. A user can compile a wishlist of films and find watch options on streaming services and in theaters.
Backend: Python, Flask, PostgreSQL, SQLAlchemy
Frontend: JavaScript, jQuery, AJAX, JASON, Jinja2, Bootstrap, HTML5, CSS3
APIs: OMDB, Recombee, JustWatch
Dataset: MovieLens
-
On ‘Add Movie’ page user may search movie by title in IMDB, add movie to wishlist, rate it, write a review and store in personal journal
-
One 'movie journal' page user may navigate through saved movies by scrolling the table, see movie information, personal ratings and reviews, delete movie from journal or edit review.
-
To change a review or rating, click ‘Edit’ button. This form shows the most recent rating and review. When user clicks 'confirm', the changes are saved on the server and journal table is updated dynamically.
-
On Homepage page user may see personalized movie recommendations.
Recommendations on the Movie page consider the currently selected movie as well as the user's general movie preferences.
-
Wishlist page collects movies user saved to watch in the future. User may rate movie and add to personal journal, find watch options or delete movie from this list
-
On Watch It page user may see offers from three most popular providers or link to showtimes in theaters.
To run Moviescope:
- Install PostgreSQL
Clone or fork this repo:
https://github.com/LisaLen/Moviescope.git
Create and activate a virtual environment inside your Moviescope directory:
virtualenv env
source env/bin/activate
Install the dependencies:
virtualenv env
pip3 install -r requirements.txt
Obtain API keys to use OpenDB API and Recombee API
Save your API keys in a file called secrets.sh
using this format:
export DB_NAME="RECOMBEE_DB_NAME"
export SECRET_TOKEN="RECOMBEE_SECRET_TOKEN"
export OMDB_API_KEY='OMDB_API_KEY'
Source your keys from your secrets.sh
file into your virtual environment:
source secrets.sh
Set up the database:
createdb journal
python -i model.py
db.create_all()
set_val_user_id()
Run the app:
python3 server.py
You can now navigate to 'localhost:5000/' to access Moviescope.