Photowall API 2
Provides a REST API to Photowall database.
Installation
Make sure that your system has Python version 3.4 installed. If you dont have it here is how you install it on Ubuntu 12.04:
$ sudo add-apt-repository ppa:fkrull/deadsnakes
$ sudo apt-get update
$ sudo apt-get install python3.4 python3.4-dev build-essential libpq-dev
Next its recommended that you create a virtualenv of python 3.4 and install all packages in it. To do that execute the following commands in your project folder:
$ virtualenv -p /usr/bin/python3.4 venv
$ source venv/bin/activate
$ pip install -r requirements.txt
Documentation
Documentation is available here
Configuration
First copy config.sample.py to config.py. This file will be read by the application on startup.
List of available configuration options:
| Name | Description |
|---|---|
SQLALCHEMY_DATABASE_URI |
Database connection string. e.g: postgresql://user:password@localhost/photowall |
DEBUG |
Enable/disable debug mode |
API_KEYS |
A list of api keys that are used to authenticate to the API. If this list is empty authentication will be disabled. |
BERNARD_QUEUE_URL |
URL to Bernard queue (used for running Photowall background tasks) |
Getting started
Starting the application:
$ python manage.py runserver
Release and development process
New branches are cut from master and when it is ready for test and code review a pull-request is created and the branch is deployed to the staging environment after checking that the staging environment is free to deploy to.
A deploy to the staging environment is done using fab:
$ fab staging deploy
The staging branch is automatically synced from master on new commits to master.
Testing
To run unit tests:
$ python -m unittest