Because I don't want to wait 20 minutes for the next bus in the freezing rain when it's hot outside.
These are required to run the different components of the project.
- server
- requests (2.9.1)
- beautifulsoup4 (4.4.1)
- geopy (1.11.0)
- flask (0.10.1)
The flask server and application as a whole requires a few dependencies that must be installed before running.
These dependencies will be installed via pip
and isolated in a virtualenv
.
To install virtualenv:
$ pip intsall virtualenv
The dependencies will be isolated to the virtualenv so the dependencies are not available globally and take up space on your computer.
To create and start the virtualenv:
$ virtualenv septa_venv # Create the virtualenv
$ source septa_venv/bin/activate # Activate the virtualenv
To install the dependencies:
(septa_venv) $ pip install -r requirements.txt
Before starting anything, always make sure you are in the virtualenv by running:
$ source septa_venv/bin/activate
The dependencies are installed here and the app will not work otherwise.
Starting the server:
(septa_venv) $ python __init__.py
This launches a flask server accessible at 127.0.0.1:8080
. The main endpoint that calls the core of the application
is at 127.0.0.1:8080/data
and takes the url parameters ?route=ROUTE_NUMBER&direction=(northbound/southbound/eastbound/westbound)&stop_id=STOP_ID
.
Alternatively, you can run the septa notifier independent of the server:
(septa_venv) $ python septanotifier.py