Setting up the environment

The first thing we have to do is, as usual, set up our development environment and the first step is to create a virtual environment for our application. Our application will be called twittervotes, so let's go ahead and create a virtual environment called twittervotes:

When the virtualenv environment has been created, you can activate it with the following command:

. twittervotes/bin/activate

Great! Now let's set up the project's directory structure. It should look like the following:

twittervotes
├── core
│ ├── models
│ └── twitter
└── templates

Let's dive into the structure a bit:

Next, it is time to add our project's dependencies. Go ahead and create a file called requirements.txt in the twittervotes directory with the following content:

Flask==0.12.2
oauth2==1.9.0.post1
PyYAML==3.12
requests==2.18.4
Rx==1.6.0

The following table explains what the preceding dependencies mean:

When the file has been created, run the command pip install -r requirements.txt, and you should see an output similar to the following:

If you run the command pip freeze, you will get a list of dependencies in pip format and you will notice that the output lists more dependencies that we actually added to the requirements file. The reason for that is that the packages that our project requires also have dependencies and they will also be installed. So do not worry if you have more packages installed than you specified in your requirements file.

Now that our environment is set up, we can start creating our Twitter application. As usual, before you start coding, make sure that you have your code under a source control system such as Git; there are plenty of online services that will host your repositories for free.

In this way, you can roll back different versions of your projects and you don't have the risk of losing your work if you have problems with your computers. With that said, let's create our Twitter application.