diff --git a/frontend-js/src/main/js/gui/admin/AddProjectDialog.js b/frontend-js/src/main/js/gui/admin/AddProjectDialog.js
index 79677e9ce9354580dadde4803c8ca9a024d26a9f..aa790153eee47fab1520b54cd07f4cf16e54b467 100644
--- a/frontend-js/src/main/js/gui/admin/AddProjectDialog.js
+++ b/frontend-js/src/main/js/gui/admin/AddProjectDialog.js
@@ -10,6 +10,8 @@ var ChooseValidatorsDialog = require('./ChooseValidatorsDialog');
 var GuiConnector = require('../../GuiConnector');
 var OverlayParser = require('../../map/OverlayParser');
 var ZipEntry = require('./ZipEntry');
+var GuiUtils = require('../leftPanel/GuiUtils');
+var ConfigurationType = require('../../ConfigurationType');
 
 var Functions = require('../../Functions');
 // noinspection JSUnusedLocalSymbols
@@ -195,7 +197,10 @@ AddProjectDialog.prototype.createGeneralTabContent = function () {
     var file = e.arg;
     return self.setFileParserForFilename(file.name);
   });
-  table.appendChild(self.createRow([guiUtils.createLabel("Upload file: "), fileInput]));
+
+  var manualUrl = self.getConfiguration().getOption(ConfigurationType.USER_MANUAL_FILE);
+  table.appendChild(self.createRow([guiUtils.createLabel("Upload file: "), fileInput,
+    guiUtils.createHelpButton('File with the map. For a quick start, CellDesigner files are accepted directly. Available options and configurations of the source file are discussed in <a href="' + manualUrl + '">manual</a>.')]));
 
   var fileFormatSelect = Functions.createElement({
     type: "select",
@@ -319,6 +324,7 @@ AddProjectDialog.prototype.createCheckboxRow = function (params) {
   var defaultValue = params.defaultValue;
   var inputName = params.inputName;
   var elements = params.elements;
+  var tooltip = params.tooltip;
   if (elements === undefined) {
     elements = [];
   }
@@ -341,6 +347,9 @@ AddProjectDialog.prototype.createCheckboxRow = function (params) {
   checkBoxDiv.appendChild(checkbox);
   var rowElements = [label, checkBoxDiv];
 
+  if (tooltip !== undefined) {
+    rowElements.append(new GuiUtils().createHelpButton(tooltip));
+  }
   for (var i = 0; i < elements.length; i++) {
     $(elements[i]).css("float", "left");
     checkBoxDiv.appendChild(elements[i]);
diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
index 81b5d6bae542c8081088977c4a7dab79563375b3..afd6e5dcb6c08212c1fa179e9c114dd76ba24f5f 100644
--- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
+++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
@@ -243,7 +243,8 @@ MapsAdminPanel.prototype.onAddClicked = function () {
       element: Functions.createElement({
         type: "div"
       }),
-      customMap: null
+      customMap: null,
+      configuration: self.getConfiguration()
     });
     self._addDialog = dialog;
     return dialog.init().then(function () {
diff --git a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
index 03f86f7ef2e542ea19f94845e943b173585e671f..a1011046ecd1b85b7e25558d69f6bcfd8cad74b3 100644
--- a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
+++ b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
@@ -9,6 +9,7 @@ var AbstractGuiElement = require('../AbstractGuiElement');
 var Functions = require('../../Functions');
 
 var logger = require('../../logger');
+var xss= require('xss');
 
 var tabIdCounter = 0;
 
diff --git a/frontend-js/src/test/js/gui/admin/AddProjectDialog-test.js b/frontend-js/src/test/js/gui/admin/AddProjectDialog-test.js
index 79ce43f69091a9ca4f6441b3b240ef557981bb67..df927fa1d0288361dfe69130a675ffcca8e0d08e 100644
--- a/frontend-js/src/test/js/gui/admin/AddProjectDialog-test.js
+++ b/frontend-js/src/test/js/gui/admin/AddProjectDialog-test.js
@@ -3,6 +3,7 @@
 require("../../mocha-config");
 
 var AddProjectDialog = require('../../../../main/js/gui/admin/AddProjectDialog');
+var ConfigurationType = require('../../../../main/js/ConfigurationType');
 var ServerConnector = require('../../ServerConnector-mock');
 var ValidationError = require('../../../../main/js/ValidationError');
 
@@ -14,12 +15,17 @@ var chai = require('chai');
 var assert = chai.assert;
 
 describe('AddProjectDialog', function () {
-  it('init', function () {
-    helper.loginAsAdmin();
-    var dialog = new AddProjectDialog({
+  var createDialog = function () {
+    return new AddProjectDialog({
       element: testDiv,
-      customMap: null
+      customMap: null,
+      configuration: helper.getConfiguration()
     });
+  };
+  it('init', function () {
+    helper.loginAsAdmin();
+    var dialog = createDialog();
+    var manualUrl;
     return dialog.init().then(function () {
       assert.ok(dialog.getNotifyEmail() !== "");
       assert.equal(0, logger.getWarnings().length);
@@ -27,12 +33,18 @@ describe('AddProjectDialog', function () {
     });
   });
 
-  it('onUserPreferencesChange', function () {
+  it('check help buttons', function () {
     helper.loginAsAdmin();
-    var dialog = new AddProjectDialog({
-      element: testDiv,
-      customMap: null
+    var dialog = createDialog();
+    return dialog.init().then(function () {
+      assert.ok(testDiv.innerHTML.indexOf("minerva-help-button") >= 0);
+      return dialog.destroy();
     });
+  });
+
+  it('onUserPreferencesChange', function () {
+    helper.loginAsAdmin();
+    var dialog = createDialog();
     return dialog.init().then(function () {
       dialog.setCache(false);
       assert.notOk(dialog.isCache());
@@ -44,10 +56,7 @@ describe('AddProjectDialog', function () {
 
   describe('onFileUpload', function () {
     it('default', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
 
       var file = new Blob(["<node></node>"]);
       file.name = "test.xml";
@@ -66,10 +75,7 @@ describe('AddProjectDialog', function () {
 
   describe('setZipFileContent', function () {
     it('submaps', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
       var buf = fs.readFileSync("testFiles/map/complex_model_with_submaps.zip");
       buf.name = "complex_model_with_submaps.zip";
       return dialog.init().then(function () {
@@ -80,10 +86,7 @@ describe('AddProjectDialog', function () {
       });
     });
     it('overlays', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
       var buf = fs.readFileSync("testFiles/map/complex_model_with_overlays.zip");
       buf.name = "complex_model_with_overlays.zip";
       return dialog.init().then(function () {
@@ -100,10 +103,7 @@ describe('AddProjectDialog', function () {
 
   describe('showAnnotatorsDialog', function () {
     it('default', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
 
       return dialog.showAnnotatorsDialog().then(function () {
         return dialog.destroy();
@@ -125,11 +125,7 @@ describe('AddProjectDialog', function () {
       ServerConnector.addProject = function (params) {
         options = params;
       };
-
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
 
       var file = new Blob(["<node></node>"]);
       file.name = "test.xml";
@@ -158,10 +154,7 @@ describe('AddProjectDialog', function () {
   });
 
   it('getOrganism', function () {
-    var dialog = new AddProjectDialog({
-      element: testDiv,
-      customMap: null
-    });
+    var dialog = createDialog();
     dialog.setOrganism("9606");
     assert.equal("9606", dialog.getOrganism());
     return dialog.destroy();
@@ -169,10 +162,7 @@ describe('AddProjectDialog', function () {
 
   describe('checkValidity', function () {
     it('invalid project name', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
 
       var file = new Blob(["<node></node>"]);
       file.name = "test.xml";
@@ -190,10 +180,7 @@ describe('AddProjectDialog', function () {
       });
     });
     it('valid project name', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
 
       var file = new Blob(["<node></node>"]);
       file.name = "test.xml";
@@ -210,20 +197,14 @@ describe('AddProjectDialog', function () {
 
   describe('isIgnoredZipEntry', function () {
     it('valid entry', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
 
       assert.notOk(dialog.isIgnoredZipEntry("images/a.png"));
       assert.notOk(dialog.isIgnoredZipEntry("main.xml"));
       return dialog.destroy();
     });
     it('invalid MAC OS entry', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
 
       // noinspection SpellCheckingInspection
       assert.ok(dialog.isIgnoredZipEntry("__MACOSX/.desc"));
@@ -231,10 +212,7 @@ describe('AddProjectDialog', function () {
       return dialog.destroy();
     });
     it('invalid old MAC OS entry', function () {
-      var dialog = new AddProjectDialog({
-        element: testDiv,
-        customMap: null
-      });
+      var dialog = createDialog();
 
       assert.ok(dialog.isIgnoredZipEntry(".DS_Store/.desc"));
       assert.ok(dialog.isIgnoredZipEntry(".ds_store/.desc"));
diff --git a/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js b/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js
index bfa7e4381fcdb56a319461502b4f00bb7169fe96..dedf1de8bb5aafdf079686b12a0b3648aedaf972 100644
--- a/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js
@@ -189,4 +189,10 @@ describe('GuiUtils', function () {
     });
 
   });
+  it('createHelpButton', function () {
+    var guiUtils = new GuiUtils(helper.getConfiguration());
+    var button = guiUtils.createHelpButton("test tooltip");
+    button.onclick();
+    $(".ui-dialog-titlebar-close").click();
+  });
 });