diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..ccba9af040c8952d6dd90c0b904a2b85be67f0e7
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,10 @@
+.git
+.gitignore
+.dockerignore
+Dockerfile
+node_modules
+*.md
+*.txt
+*.example
+.editorconfig
+yarn.lock
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0bd3ff3c3d683c04f5753cb37fa123ca8bf78b3c..25dd60b55429476cba6d5026d99ffe1f69284bb2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,13 @@
+# Version 1.1.6
+- Extend autocomplete of feature search
+- Minor changes in index information
+- Fix bug in note display
+
+# Version 1.1.5
+- Add autocomplete to feature search
+- Add display of new note-tags
+- Change frontend to French
+
 # Version 1.1.4
 - Make Google Fonts available offline
 - Unify project title
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..16417b0dc46a2e783c9791f5b8d5b1b5ff0f250b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,12 @@
+FROM node:alpine
+LABEL maintainer="markus.opolka@fau.de"
+
+COPY . /app
+WORKDIR /app
+
+RUN yarn install
+RUN yarn run build
+
+EXPOSE 3000
+
+ENTRYPOINT node app.js
diff --git a/lib.js b/lib.js
index a77e4930461fb2eace9c02173633270b10af5129..3127a3f77d089e0e1afac6008d4be830a5903cc1 100755
--- a/lib.js
+++ b/lib.js
@@ -143,30 +143,6 @@ function searchFeaturesInDocument (document, query) {
   return document
 }
 
-function featureToString (feature) {
-  /*
-   * Turn into feature object into category>type>subtype String
-   */
-
-  let category = feature.category
-  let type = feature.type
-  let subtype = feature.subtype
-
-  let ret = ''
-
-  if (category !== undefined) {
-    ret = ret.concat(category)
-  }
-  if (type !== undefined) {
-    ret = ret.concat(' > ', type)
-  }
-  if (subtype !== undefined) {
-    ret = ret.concat(' > ', subtype)
-  }
-
-  return ret
-}
-
 function featureGlossary (objs) {
   /*
    * Turn list of documents objects into a glossary set
@@ -205,9 +181,9 @@ function featureGlossary (objs) {
   }
 
   let ret = {
-    categories: Array.from(new Set(categories)),
-    types: Array.from(new Set(types)),
-    subtypes: Array.from(new Set(subtypes))
+    categories: Array.from(new Set(categories)).sort(),
+    types: Array.from(new Set(types)).sort(),
+    subtypes: Array.from(new Set(subtypes)).sort()
   }
 
   return ret
diff --git a/package.json b/package.json
index 3f4c0096c4b8088a80e022fc0a8814ff0b5ddd83..afe839cbced6a67159ec552a051be7bedadcd77b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cdbp",
-  "version": "1.1.4",
+  "version": "1.1.6",
   "description": "FAU CDBP",
   "author": "Markus Opolka <markus@martialblog.de>",
   "private": true,
diff --git a/src/components/Features.vue b/src/components/Features.vue
index c33d5cd1ac24387e1754951818e5911d44bc679d..16f1a8882f659105dd1b56e2b35a3c72bbe761b6 100644
--- a/src/components/Features.vue
+++ b/src/components/Features.vue
@@ -31,31 +31,31 @@
 
     <!-- Input Fields for Search -->
     <v-flex xs12 md3>
-      <v-autocomplete
+      <v-combobox
         v-model="feature_category"
         :items="feature_categories_glossary"
         label="Category"
         @keyup.enter.native="validate"
         >
-    </v-autocomplete>
+    </v-combobox>
     </v-flex>
     <v-flex xs12 md3>
-      <v-autocomplete
+      <v-combobox
         v-model="feature_type"
         :items="feature_types_glossary"
         label="Types"
         @keyup.enter.native="validate"
         >
-      </v-autocomplete>
+      </v-combobox>
     </v-flex>
     <v-flex xs12 md3>
-      <v-autocomplete
+      <v-combobox
         v-model="feature_subtype"
         :items="feature_subtypes_glossary"
         label="Subtypes"
         @keyup.enter.native="validate"
         >
-    </v-autocomplete>
+    </v-combobox>
     </v-flex>
 
     <!-- Search Buttons -->
diff --git a/src/components/Index.vue b/src/components/Index.vue
index 3ca1d477f79f9581c04691bc1fe46df23a2a416a..a22920ef41233aa69603a9cf4715f99401302df3 100644
--- a/src/components/Index.vue
+++ b/src/components/Index.vue
@@ -37,6 +37,9 @@
           <p>Ces lettres serviront également de base pour une nouvelle histoire de l’alphabétisation et aideront aussi les disciplines voisines de la linguistique, notamment l’historiographie de la vie quotidienne et la science culturelle.</p>
         </v-flex>
 
+
+        <p>Source: <a target="_blank" href="https://gitlab.cs.fau.de/bi40resu/vue-cdbp">https://gitlab.cs.fau.de/bi40resu/vue-cdbp</a></p>
+
       </v-layout>
  </v-container>
 
diff --git a/src/components/Letter.vue b/src/components/Letter.vue
index 2208f4d43493aa0bd835f2c618cdd2e53b21ad28..354288f9b6615ff651fc32af105130820eb4e42e 100644
--- a/src/components/Letter.vue
+++ b/src/components/Letter.vue
@@ -13,7 +13,7 @@
         <v-card-text>
           <ul style="list-style-type:none;">
             <li v-for="(value, key) in letter.teiHeader.fileDesc.titleStmt">
-              <span class="body-2">{{ capitalize(key) }}:</span> {{ value._text }}
+              <span class="body-2">{{ capitalize(toFrench(key)) }}:</span> {{ value._text }}
             </li>
           </ul>
         </v-card-text>
@@ -89,7 +89,17 @@ export default {
       letter: null,
       images: [],
       showComments: true,
-      features: []
+      features: [],
+      metadataTranslations: {
+        title: 'titre',
+        collection: 'collection',
+        author: 'auteur(e)',
+        recipient: 'destinataire',
+        gender: 'sexe',
+        date: 'date',
+        place: 'lieu',
+        stamp: 'tampon'
+      }
     }
   },
   methods: {
@@ -99,11 +109,24 @@ export default {
     },
     formatText (text) {
       // Remove [Stuff] from text
+
+      if (text instanceof Array) {
+        text = text.join(' ')
+      }
+
       if (!this.showComments) {
         text = text.replace(/\[.*\]/, '')
       }
       return text
     },
+    toFrench (word) {
+      // Translate some metadata keys to French
+      if (word in this.metadataTranslations) {
+        return this.metadataTranslations[word]
+      } else {
+        return word
+      }
+    },
     capitalize (word) {
       // Capitalize first letter of a String
       return word.charAt(0).toUpperCase() + word.slice(1)