Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Link code: https://github.

com/practical-recommender-systems/moviegeek
Steps to setup project:

1. Download source code


 Downloading a zip file

From the main MovieGEEK directory on GitHub, click the green “Clone or
download” button and choose to download a zip file to your computer.

 Using Git

Clone this repository or create a fork in your GitHub, and then clone that instead.
The following command will create a copy on your computer.
> git clone https://github.com/kimfalk/live-project.git

2. Create an ID for themoviedb.org


 Go to https://www.themoviedb.org/account/signup
 Sign up

 Login, go to your account settings and create an API. You can access settings by
clicking the avatar in the upper right-hand corner (the default is a blue circle with a white
logo in it). Then you’ll see settings on the left.
 Create a file in the moviegeek directory called ".prs"
 Open .prs and add { "themoviedb_apikey": } Remember to remove the "<" and ">" When
you are finished, the file contents should look something like {"themoviedb_apikey":
"6d88c9a24b1bc9a60b374d3fe2cd92ac"}
3. Running the site
There are two ways to run the site:

 use Docker container


 run it in a local virtual environment.

I recommend the first option, as the docker container way is faster and requires less
setup.

C1: Run site in a Docker container


As a new addition to this site, this repo will also have a docker container, which
should make it easier to start.

Fire up the website simply by first building the docker container:

docker-compose build web

Create the database and download and import data: (This takes some time):

./db-migrate.sh

And then start it executing the following:

docker-compose up web

NB: If the website responds with an error about a .prs file missing, its because
you skipped the section about creating a themoviedb.org id. link
(to close it again by stopping the process (Cltr+C))

C2: Run site in a virtualenv.

Install Python 3.x


The MovieGEEK website requires that you have Python 3.x installed. Practical
Recommender Systems does not teach you Python, though. You’ll need to be
able to read Python code to understand the algorithms, and, of course,
programming experience makes it easier to implement the website.
The Hitchhikers guide to Python provides “both novice and expert Python
developers a best practice handbook to the installation, configuration, and usage
of Python on a daily basis.” Mac and Linux users should follow instructions in this
guide.

Windows users, because installing Python and its packages can be tricky for you,
I recommend using the Anaconda package for the simplest install. If you want to,
you can use the Windows instructions in the Hitchhiker’s Guide, but I have
always used the Anaconda package.

4. Create a virtual environment for the project


Before you run the code, create a virtual environment. The Hitchhiker’s Guide
provides a good overview if you want more information. Verify that you have
virtualenv installed, and if not, read more here. If you followed the Hitchhiker’s
Guide or used Anaconda, it should already be installed, though. Use this
command to verify it’s installed:

> virtualenv –version

Once you have confirmed you have virtualenv installed, create the virtual
environment using the following commands (Anaconda users, please use the
Anaconda-specific commands):

 Non-Anaconda users:
 > cd live-project
 > virtualenv -p python3 prs
> source prs/bin/activate

 Anaconda users:
 > cd live-project
 > conda create -n prs python=3.6
> conda activate prs
Note that 3.6 should be replaced with 3.x, with x representing the version you are
using.

Get the required packages


There are Anaconda specific instructions for this step, too; be sure to use those if
they apply!

 Non-Anaconda users

Use pip to install the required files:

> pip3 install -r requirements.txt


 Anaconda users

Thanks, TechnologyScout.net for these instructions:

> while read requirement; do conda install --yes $requirement; done < requirements.txt

5. Database setup
Django is setup to run with Sqllite3 out of the box, which is enough to run everything.
However, some things will be considerably faster if you install PostGreSQL.

 If you do want to install Postgres, follow the Postgres installation steps before you
create the databases.
 If you don’t want to install Postgres, jump to Create and populate the MovieGEEKS
databases section.

[PostGreSQL-OPTIONAL] Install and use PostGreSQL


Django comes with a database that enables you to run the website without an
external database. However, using another database makes it faster. I had good
experiences using the PostGreSQL db.

Install and run PostGreSQL

First, install Postgres and run it. Download the correct postgresql version for your
operating system here, and follow the instructions on from the download page to
install and run it.
Create the database for MovieGEEK

Use PostGreSQL’s admin tool pgadmin to create a database. Name it moviegeek.


Write down which username and password you usd to create the database. You will
use that information in two steps from now when you change the Django settings.
Install the Python database driver

Once the PostGreSQL database is spinning, it’s time for the Python driver, which
enables Django to talk with the database. I recommend using Psycopg. Download
it here. Install it following these instructions.
Configure the Django database connection to connect to PostGreSql

If you use a PostGreSQL (or another db) you need to configure the Django database
connection for MovieGEEKS, follow these steps. Refer to Django docs here if you
need more details.

Open prs_project/settings.py
Update the following:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'moviegeek',
'USER': 'db_user',
'PASSWORD': 'db_user_password',
'HOST': 'db_host',
'PORT': 'db_port_number',
}
}
Update the USER, PASSWORD, HOST, and PORT fields:

 USER(db_user): Use the user name you created with the MovieGEEK database
 PASSWORD(db_user_password): Use the password you created with the
MovieGEEK database
 HOST (db_host): localhost (if you have have installed it on your private machine)
 PORT (db_port_number): 5432 (the default port)

For more information please refer to the Django documentation link

Create and populate the MovieGEEKS databases


Everyone must follow these steps, whether or not you are using PostGreSQL.
Create the MovieGEEKS databases

When the database connection is configured, you can run the following commands
to create the databases that Django and this website need to run.

> python3 manage.py makemigrations


> python3 manage.py migrate --run-syncdb

Populate the database

Run the following script to download the datasets for the MovieGEEKS website.

WARNING: Mac users running Python 3.7 or higher, before you populate the
databases, you need to run this command. /Applications/Python\ 3.7/Install\
Certificates.command. More details here and here.
Everyone, run these commands to populate the databases.

> python3 populate_moviegeek.py


> python3 populate_ratings.py
WARNING: This might take some time.

6. Start the web server


To start the development server, run this command:

> python3 manage.py runserver 127.0.0.1:8000

Running the server like this will make the website available http://127.0.0.1:8000

WARNING: Other applications also use this port so you might need to try out
8001 instead.

NB: If the website responds with an error about a .prs file missing, its because
you skipped the section about creating a themoviedb.org id. link

You might also like