The MovieGEEKs is a movie site implemented to accompany my book "Practical Recommender Systems". It is used in the book to show how recommender systems work, and how you can implement them.
The book is still being written, and so this is still under construction.
This site is using the MovieTweetings dataset, and uses themoviedb.org to get poster images. A big thanks to both of them for all their work. Please go and visit them.
The dataset is used in the populate_moviegeek script which downloads it and imports the data into the database configured in Django.
The following is expecting you to have python 3.x installed on your machine. I recommend looking that the Hitchhikers guide to Python if you haven't.
For windows users it's a good idea to install the Anaconda package. Anaconda is the leading open data science platform powered by Python (according to their homepage) Anaconda
> git clone https://github.com/practical-recommender-systems/moviegeek.git
Look at the following guide for more details guide
> cd moviegeek
> virtualenv prs
> source prs/bin/activate
if you are running Anaconda you can also use conda virtual environment instead.
pip install -r requirements.txt
If you dont have postgres running then you should start out installing it. It's a free, and easy to install. Get it here postgresql download and follow the instructions on the site.
When the database is spinning its time for the python driver. I recommend using the following http://initd.org/psycopg/,
First download the driver, unzip (if zipped) then run
> python setup.py install
> pip install psycopg2
in prs_project/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'db_name',
'USER': 'db_user',
'PASSWORD': 'db_user_password',
'HOST': '',
'PORT': 'db_port_number',
}
}
If you have a database running on your machine I would encourage
you to connect it, by updating the settings in prs_project/settings.py
(fx like shown above).
To set up another database is described in the Django docs here
> python manage.py makemigrations
> python manage.py migrate
(WARNING: this might take some time.) (WARNING: If you are using python >3.6 on a Mac then you need to run "/Applications/Python\ 3.6/Install\ Certificates.command". More details here)
> python populate_moviegeek.py
- go to https://www.themoviedb.org/account/signup and create an api_key
- create a file in the root of the directory called "
.prs
" and add{ "themoviedb_apikey": <INSERT YOUR APIKEY HERE>}
. (remember to remove the "<" and ">")
To start the development server run:
> python manage.py runserver 127.0.0.1:8000
Running the server like this, will make the website available http://127.0.0.1:8000 other applications also use this port so you might need to try out 8001 instead.
- when you are finished running the project you can exit the virtual env:
> deactivate