diff --git a/Dockerfile b/Dockerfile
index 0903264b878634053b1359990c1900578f3fba90..76f27f73ad832318b63dc53415aff01eefbc8ef4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -27,7 +27,10 @@ RUN apt-get update -qqy --fix-missing \
 	&& ln -s /opt/services/smartbusstop/conf/nginx/default.conf /etc/nginx/conf.d/default.conf \
 	&& ln -s /opt/services/smartbusstop/conf/supervisor/nginx.conf /etc/supervisor/conf.d/01_nginx.conf \
 	&& ln -s /opt/services/smartbusstop/conf/supervisor/smartbusstop.conf /etc/supervisor/conf.d/02_smartbusstop.conf \
-	&& git clone --depth=1 --branch=master https://github.com/oarriaga/face_classification /opt/services/smartbusstop/face_classification \
+	&& git clone --branch=master https://github.com/oarriaga/face_classification /opt/services/smartbusstop/face_classification \
+	&& cd /opt/services/smartbusstop/face_classification \
+	&& git reset --hard eb5d76ffd1a13c450a1dabb4f249d08cb2bd64b3 \
+	&& cd /opt/services/smartbusstop \
 	&& rm -rf /opt/services/smartbusstop/face_classification/.git \
 	&& apt-get remove -qqy --purge git \
 	&& apt-get autoremove -y
diff --git a/README.md b/README.md
index c0dc7fb6d215de6506c49cb0f948a16c7e989ba3..61848cf7221f8e07bcdd441fb5f5af529800f4fb 100644
--- a/README.md
+++ b/README.md
@@ -72,19 +72,26 @@ storing them in this git repository itself.
 Changes must be deployed manually through the gitlab web UI, using the "Run pipeline"
 button under CI / CD > [Pipelines](https://gitlab.utu.fi/Smart_Bus_Stop/tensorflow-server/pipelines).
 
-### API endpoints (tentative)
+### Database
 
-**TODO**
+The database schema and access details are located in `contrib/src/web/database.py`
+the same file can also be ran as a CLI script to create an empty database if it does 
+not yet exist.
+
+Currently the docker container running the database is expected to be linked under the
+name `database` (rancher-compose/docker-compose) using the default PostgreSQL port.
+
+### API endpoints
 
 The api endpoints are similar to what had been defined upstream, notably support
 for GET requests and json results has been added. The ability to turn emotion
 detection on or off was also added and the processor code refactored for  more
 control and better memory management. 
 
-There is no usage control or sanity checks which is a problem. *Logging requests is
-largely absent when they succeed.* Version number added as part of the URI same as
-frontend WIP endpoints. Stop code can optionally be passed as a query string argument
-(stop_code), but it is only logged for processing errors.
+There is no usage control or sanity checks which is a problem. Version number was
+added as part of the URI same as frontend endpoints. Stop code can optionally
+be passed as a query string argument (stop_code), it is logged for erros and in
+the database alongside classification results.
 
 ```
 URI: POST /api/v1/classifyImage[/<type>][?stop_code=<gtfs_stop_code>&detect_emotion=<1/0>]
diff --git a/requirements.dev.txt b/requirements.dev.txt
new file mode 100644
index 0000000000000000000000000000000000000000..009f1a84bc9bb9b99eb18f3e5b28c040cef8059b
--- /dev/null
+++ b/requirements.dev.txt
@@ -0,0 +1,21 @@
+Flask>=0.12.2
+flask-request-id-middleware
+numpy
+scipy
+scikit-learn
+pillow
+tensorflow
+pandas
+h5py
+opencv-python==3.2.0.8
+keras
+statistics
+pyyaml
+pyparsing
+cycler
+matplotlib
+requests
+psycopg2-binary
+peewee
+python-dateutil
+pytz
diff --git a/requirements.txt b/requirements.txt
index ef6865f87cbc2635b54db27eb2928902bc39092b..8b09f0ebcce9593e8e7e659ea6930b542776c80e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,20 +1,21 @@
-Flask>=0.12.2
-flask-request-id-middleware
-numpy
-scipy
-scikit-learn
-pillow
-tensorflow
-pandas
-h5py
+Flask==0.12.2
+flask-request-id-middleware==1.1
+numpy==1.14.1
+scikit-learn==0.19.1
+scipy==1.0.0
+pillow==5.0.0
+tensorflow==1.6.0
+pandas==0.22.0
+h5py==2.7.1
 opencv-python==3.2.0.8
-keras
-statistics
-pyyaml
-pyparsing
-cycler
-matplotlib
-requests
-psycopg2-binary
-peewee
-python-dateutil
+keras==2.1.4
+statistics==1.0.3.5
+pyyaml==3.12
+pyparsing==2.2.0
+cycler==0.10.0
+matplotlib==2.1.2
+requests==2.18.4
+psycopg2-binary==2.7.4
+peewee==3.1.2
+python-dateutil==2.6.1
+pytz
diff --git a/system-requirements.dev.txt b/system-requirements.dev.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c1399c1bf608904af79d946b26b34297cd52c6b
--- /dev/null
+++ b/system-requirements.dev.txt
@@ -0,0 +1,2 @@
+uWSGI>=2.0.15
+virtualenv>=15.1.0
diff --git a/system-requirements.txt b/system-requirements.txt
index 6c1399c1bf608904af79d946b26b34297cd52c6b..743ccbd8196d035bbb4d25f1b36a5024d1c54973 100644
--- a/system-requirements.txt
+++ b/system-requirements.txt
@@ -1,2 +1,2 @@
-uWSGI>=2.0.15
-virtualenv>=15.1.0
+uWSGI==2.0.17
+virtualenv==15.1.0