diff --git a/frontend-js/.idea/dictionaries/piotr_gawron.xml b/frontend-js/.idea/dictionaries/piotr_gawron.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6a8c909a47f60a556bc261805af778533e72b7eb
--- /dev/null
+++ b/frontend-js/.idea/dictionaries/piotr_gawron.xml
@@ -0,0 +1,7 @@
+<component name="ProjectDictionaryState">
+  <dictionary name="piotr.gawron">
+    <words>
+      <w>mailto</w>
+    </words>
+  </dictionary>
+</component>
\ No newline at end of file
diff --git a/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js b/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js
index 391ba195a7ff15e8676951f8a6988cb737df3f14..5ff245cadc646b741cccc4ef4f5858702a6c7457 100644
--- a/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js
@@ -21,8 +21,8 @@ function ProjectInfoPanel(params) {
   self._createUserDataTab();
   var logoutButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGOUT_BUTTON);
 
-  logoutButton.onclick = function() {
-    return ServerConnector.logout().then(function() {
+  logoutButton.onclick = function () {
+    return ServerConnector.logout().then(function () {
       window.location.reload(false);
     }).then(null, GuiConnector.alert);
   };
@@ -32,191 +32,191 @@ function ProjectInfoPanel(params) {
 ProjectInfoPanel.prototype = Object.create(Panel.prototype);
 ProjectInfoPanel.prototype.constructor = ProjectInfoPanel;
 
-ProjectInfoPanel.prototype._createInfoPanelGui = function() {
+ProjectInfoPanel.prototype._createInfoPanelGui = function () {
   var self = this;
   var guiUtils = self.getGuiUtils();
   var projectId = self.getMap().getProject().getProjectId();
 
   var infoDiv = Functions.createElement({
-    type : "div",
-    name : "infoDiv",
-    className : "searchPanel"
+    type: "div",
+    name: "infoDiv",
+    className: "searchPanel"
   });
   this.getElement().appendChild(infoDiv);
   this.setControlElement(PanelControlElementType.INFO_DIV, infoDiv);
 
   var infoTitle = Functions.createElement({
-    type : "h4",
-    content : "PROJECT INFO:"
+    type: "h4",
+    content: "PROJECT INFO:"
   });
   infoDiv.appendChild(infoTitle);
 
   var dataTab = Functions.createElement({
-    type : "div",
-    style : "width:100%;display: table;border-spacing: 10px;"
+    type: "div",
+    style: "width:100%;display: table;border-spacing: 10px;"
   });
   infoDiv.appendChild(dataTab);
 
   var projectNameLabel = Functions.createElement({
-    type : "div",
-    content : "Name:"
+    type: "div",
+    content: "Name:"
   });
   var projectNameText = Functions.createElement({
-    type : "div",
-    style : "width:100%",
-    name : "projectNameText"
+    type: "div",
+    style: "width:100%",
+    name: "projectNameText"
   });
   this.setControlElement(PanelControlElementType.INFO_PROJECT_NAME_TEXT, projectNameText);
-  dataTab.appendChild(guiUtils.createTableRow([ projectNameLabel, projectNameText ]));
+  dataTab.appendChild(guiUtils.createTableRow([projectNameLabel, projectNameText]));
 
   var projectVersionLabel = Functions.createElement({
-    type : "div",
-    content : "Version:"
+    type: "div",
+    content: "Version:"
   });
   var projectVersionText = Functions.createElement({
-    type : "div",
-    style : "width:100%",
-    name : "projectVersionText"
+    type: "div",
+    style: "width:100%",
+    name: "projectVersionText"
   });
   this.setControlElement(PanelControlElementType.INFO_PROJECT_VERSION_TEXT, projectVersionText);
-  dataTab.appendChild(guiUtils.createTableRow([ projectVersionLabel, projectVersionText ]));
+  dataTab.appendChild(guiUtils.createTableRow([projectVersionLabel, projectVersionText]));
 
   var projectDescriptionLabel = Functions.createElement({
-    type : "div",
-    content : "Description:"
+    type: "div",
+    content: "Description:"
   });
   var projectDescriptionText = Functions.createElement({
-    type : "div",
-    style : "width:100%",
-    name : "projectDescriptionText"
+    type: "div",
+    style: "width:100%",
+    name: "projectDescriptionText"
   });
   this.setControlElement(PanelControlElementType.INFO_PROJECT_DESCRIOPTION_TEXT, projectDescriptionText);
-  dataTab.appendChild(guiUtils.createTableRow([ projectDescriptionLabel, projectDescriptionText ]));
+  dataTab.appendChild(guiUtils.createTableRow([projectDescriptionLabel, projectDescriptionText]));
 
   infoTitle = Functions.createElement({
-    type : "h4",
-    content : "Data:"
+    type: "h4",
+    content: "Data:"
   });
   infoDiv.appendChild(infoTitle);
 
   var dialogDiv = Functions.createElement({
-    type : "div",
+    type: "div",
   });
 
   this.publicationListDialog = new PublicationListDialog({
-    customMap : self.getMap(),
-    element : dialogDiv,
+    customMap: self.getMap(),
+    element: dialogDiv,
   });
 
   dataTab = Functions.createElement({
-    type : "ul",
+    type: "ul",
   });
   infoDiv.appendChild(dataTab);
 
   var projectPublicationsText = Functions.createElement({
-    type : "span",
-    name : "projectPublicationsText",
-    style : "font-family:FontAwesome; font-weight: normal;font-style: normal;cursor: pointer",
+    type: "span",
+    name: "projectPublicationsText",
+    style: "font-family:FontAwesome; font-weight: normal;font-style: normal;cursor: pointer",
   });
   this.setControlElement(PanelControlElementType.INFO_PROJECT_PUBLICATIONS_TEXT, projectPublicationsText);
 
   var projectPublicationsButton = Functions.createElement({
-    type : "a",
-    name : "projectPublicationsButton",
+    type: "a",
+    name: "projectPublicationsButton",
   });
   projectPublicationsButton.appendChild(Functions.createElement({
-    type : "span",
-    content : "<i class='fa fa-list'>&nbsp;",
+    type: "span",
+    content: "<i class='fa fa-list'>&nbsp;",
   }));
 
   projectPublicationsButton.appendChild(projectPublicationsText);
   projectPublicationsButton.appendChild(Functions.createElement({
-    type : "span",
-    style : "font-family:FontAwesome; font-weight: normal;font-style: normal;cursor: pointer",
-    content : "&nbsp;publication(s)",
+    type: "span",
+    style: "font-family:FontAwesome; font-weight: normal;font-style: normal;cursor: pointer",
+    content: "&nbsp;publication(s)",
   }));
   this.setControlElement(PanelControlElementType.INFO_PROJECT_SHOW_PUBLICATIONS_BUTTON, projectPublicationsButton);
 
   var liElement = Functions.createElement({
-    type : "li",
-    style : "line-height: 30px;",
+    type: "li",
+    style: "line-height: 30px;",
   });
   liElement.appendChild(projectPublicationsButton);
   dataTab.appendChild(liElement);
 
   var projectOriginalFileButton = Functions.createElement({
-    type : "a",
-    name : "projectOriginalFileButton",
-    href : "#",
-    content : "<i class='fa fa-files-o'>&nbsp;source file",
+    type: "a",
+    name: "projectOriginalFileButton",
+    href: "#",
+    content: "<i class='fa fa-files-o'>&nbsp;source file",
   });
   this.setControlElement(PanelControlElementType.INFO_PROJECT_GET_ORIGINAL_FILE_BUTTON, projectOriginalFileButton);
   liElement = Functions.createElement({
-    type : "li",
-    style : "line-height: 30px",
+    type: "li",
+    style: "line-height: 30px",
   });
   liElement.appendChild(projectOriginalFileButton);
   dataTab.appendChild(liElement);
 
   var exportButton = Functions.createElement({
-    type : "a",
-    href : ServerConnector.getServerBaseUrl() + "/export.xhtml?id=" + projectId,
-    content : '<i class="fa fa-mail-forward">&nbsp;EXPORT',
+    type: "a",
+    href: ServerConnector.getServerBaseUrl() + "/export.xhtml?id=" + projectId,
+    content: '<i class="fa fa-mail-forward">&nbsp;EXPORT',
   });
   liElement = Functions.createElement({
-    type : "li",
-    style : "line-height: 30px",
+    type: "li",
+    style: "line-height: 30px",
   });
   liElement.appendChild(exportButton);
   dataTab.appendChild(liElement);
 
   var manualButton = Functions.createElement({
-    type : "a",
-    name : "manualLink",
-    content : '<i class="fa fa-file">&nbsp;MANUAL',
+    type: "a",
+    name: "manualLink",
+    content: '<i class="fa fa-file">&nbsp;MANUAL',
   });
   manualButton.href = "#";
-  manualButton.onclick = function() {
-    return ServerConnector.getConfigurationParam(ConfigurationType.USER_MANUAL_FILE).then(function(manualFileUrl) {
+  manualButton.onclick = function () {
+    return ServerConnector.getConfigurationParam(ConfigurationType.USER_MANUAL_FILE).then(function (manualFileUrl) {
       var win = window.open(manualFileUrl, '_user_manual_');
       win.focus();
     });
   };
   liElement = Functions.createElement({
-    type : "li",
-    style : "line-height: 30px",
+    type: "li",
+    style: "line-height: 30px",
   });
   liElement.appendChild(manualButton);
   dataTab.appendChild(liElement);
 
 };
 
-ProjectInfoPanel.prototype._createInfoPanelLogic = function() {
+ProjectInfoPanel.prototype._createInfoPanelLogic = function () {
   var self = this;
 
   var downloadSourceButton = self.getControlElement(PanelControlElementType.INFO_PROJECT_GET_ORIGINAL_FILE_BUTTON);
   var showPublicationsButton = self.getControlElement(PanelControlElementType.INFO_PROJECT_SHOW_PUBLICATIONS_BUTTON);
 
-  downloadSourceButton.onclick = function() {
+  downloadSourceButton.onclick = function () {
     return self.downloadSourceFile();
   };
-  showPublicationsButton.onclick = function() {
+  showPublicationsButton.onclick = function () {
     return self.showPublicationListDialog();
   };
 };
 
-ProjectInfoPanel.prototype.downloadSourceFile = function() {
+ProjectInfoPanel.prototype.downloadSourceFile = function () {
   var self = this;
-  return ServerConnector.getProjectSourceDownloadUrl().then(function(url) {
+  return ServerConnector.getProjectSourceDownloadUrl().then(function (url) {
     return self.downloadFile(url);
   }).then(null, GuiConnector.alert);
 };
 
-ProjectInfoPanel.prototype.showPublicationListDialog = function() {
+ProjectInfoPanel.prototype.showPublicationListDialog = function () {
   return this.publicationListDialog.show();
 };
 
-ProjectInfoPanel.prototype.refresh = function() {
+ProjectInfoPanel.prototype.refresh = function () {
   var self = this;
 
   var projectNameText = self.getControlElement(PanelControlElementType.INFO_PROJECT_NAME_TEXT);
@@ -224,123 +224,124 @@ ProjectInfoPanel.prototype.refresh = function() {
   var projectDescriptionText = self.getControlElement(PanelControlElementType.INFO_PROJECT_DESCRIOPTION_TEXT);
   var projectPublicationsText = self.getControlElement(PanelControlElementType.INFO_PROJECT_PUBLICATIONS_TEXT);
 
-  return ServerConnector.getProject().then(function(project) {
+  return ServerConnector.getProject().then(function (project) {
     projectNameText.innerHTML = project.getName();
     projectVersionText.innerHTML = project.getVersion();
     projectDescriptionText.innerHTML = project.getDescription();
     return ServerConnector.getProjectStatistics();
-  }).then(function(statistics) {
+  }).then(function (statistics) {
     projectPublicationsText.innerHTML = statistics.getPublicationCount();
     return ServerConnector.getLoggedUser();
-  }).then(function(user) {
+  }).then(function (user) {
     self.showUserProfilePage(user);
   });
 };
 
-ProjectInfoPanel.prototype._createUserDataTab = function() {
+ProjectInfoPanel.prototype._createUserDataTab = function () {
   var self = this;
   var guiUtils = self.getGuiUtils();
   var userDataDiv = Functions.createElement({
-    type : "div",
-    name : "userDataTab",
-    className : "searchPanel",
-    style : "display:none"
+    type: "div",
+    name: "userDataTab",
+    className: "searchPanel",
+    style: "display:none"
   });
   this.getElement().appendChild(userDataDiv);
   this.setControlElement(PanelControlElementType.USER_TAB_USER_DIV, userDataDiv);
 
   var userDataTitle = Functions.createElement({
-    type : "h3",
-    content : '<img src="./resources/images/profile.png" border="0" align="left"/><br/>User data<br/>'
+    type: "h3",
+    content: '<img src="./resources/images/profile.png" border="0" align="left"/><br/>User data<br/>'
   });
   userDataDiv.appendChild(userDataTitle);
 
   var userDataFormTab = Functions.createElement({
-    type : "div",
-    style : "width:100%;display: table;border-spacing: 10px;"
+    type: "div",
+    style: "width:100%;display: table;border-spacing: 10px;"
   });
   userDataDiv.appendChild(userDataFormTab);
 
   var loginLabel = Functions.createElement({
-    type : "span",
-    content : "LOGIN:",
-    style : "color:#999999"
+    type: "span",
+    content: "LOGIN:",
+    style: "color:#999999"
   });
   var loginText = Functions.createElement({
-    type : "span",
-    name : "loginValue"
+    type: "span",
+    name: "loginValue"
   });
   this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_TEXT, loginText);
-  userDataDiv.appendChild(guiUtils.createTableRow([ loginLabel, loginText ]));
+  userDataDiv.appendChild(guiUtils.createTableRow([loginLabel, loginText]));
 
   var nameLabel = Functions.createElement({
-    type : "span",
-    content : "NAME:",
-    style : "color:#999999"
+    type: "span",
+    content: "NAME:",
+    style: "color:#999999"
   });
   var nameText = Functions.createElement({
-    type : "span",
-    name : "nameValue"
+    type: "span",
+    name: "nameValue"
   });
   this.setControlElement(PanelControlElementType.USER_TAB_NAME_TEXT, nameText);
-  userDataDiv.appendChild(guiUtils.createTableRow([ nameLabel, nameText ]));
+  userDataDiv.appendChild(guiUtils.createTableRow([nameLabel, nameText]));
 
   var surnameLabel = Functions.createElement({
-    type : "span",
-    content : "SURNAME:",
-    style : "color:#999999"
+    type: "span",
+    content: "SURNAME:",
+    style: "color:#999999"
   });
   var surnameText = Functions.createElement({
-    type : "span",
-    name : "surnameValue"
+    type: "span",
+    name: "surnameValue"
   });
   this.setControlElement(PanelControlElementType.USER_TAB_SURNAME_TEXT, surnameText);
-  userDataDiv.appendChild(guiUtils.createTableRow([ surnameLabel, surnameText ]));
+  userDataDiv.appendChild(guiUtils.createTableRow([surnameLabel, surnameText]));
 
   var emailLabel = Functions.createElement({
-    type : "span",
-    content : "EMAIL:",
-    style : "color:#999999"
+    type: "span",
+    content: "EMAIL:",
+    style: "color:#999999"
   });
   var emailText = Functions.createElement({
-    type : "span",
-    name : "emailValue"
+    type: "span",
+    name: "emailValue"
   });
   self.setControlElement(PanelControlElementType.USER_TAB_EMAIL_TEXT, emailText);
-  userDataDiv.appendChild(guiUtils.createTableRow([ emailLabel, emailText ]));
+  userDataDiv.appendChild(guiUtils.createTableRow([emailLabel, emailText]));
 
   var centerTag = Functions.createElement({
-    type : "center"
+    type: "center"
   });
   userDataDiv.appendChild(centerTag);
 
   var logoutButton = Functions.createElement({
-    type : "button",
-    name : "logoutButton",
-    content : "LOGOUT"
+    type: "button",
+    name: "logoutButton",
+    content: "LOGOUT"
   });
   centerTag.appendChild(logoutButton);
   self.setControlElement(PanelControlElementType.USER_TAB_LOGOUT_BUTTON, logoutButton);
   self.setControlElement(PanelControlElementType.USER_TAB_USER_DIV, userDataDiv);
 
   var loginTabDiv = Functions.createElement({
-    type : "div",
-    name : "userLoginTab",
-    className : "searchPanel",
-    style : "display:none",
-    content : '<h3><img src="./resources/images/profile.png" border="0" align="left"/>'
-        + '<br/>User data</h3><br/>YOU ARE NOT LOGGED IN.<br/>' + '<center><button>LOGIN</button></center>',
-  });
-  $(loginTabDiv).find("button")[0].onclick = function() {
+    type: "div",
+    name: "userLoginTab",
+    className: "searchPanel",
+    style: "display:none",
+    content: '<h3><img src="./resources/images/profile.png" border="0" align="left"/>'
+    + '<br/>User data</h3><br/>YOU ARE NOT LOGGED IN.<br/>' + '<center><button>LOGIN</button></center>' +
+    '<br/><a hreg="#" name="requestAccount">Request an account</a>',
+  });
+  $(loginTabDiv).find("button")[0].onclick = function () {
     return self.getParent().getLoginDialog().open();
   };
-  
+
   self.getElement().appendChild(loginTabDiv);
   self.setControlElement(PanelControlElementType.USER_TAB_LOGIN_DIV, loginTabDiv);
 
 };
 
-ProjectInfoPanel.prototype.showUserProfilePage = function(user) {
+ProjectInfoPanel.prototype.showUserProfilePage = function (user) {
 
   var self = this;
   var userDataTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_USER_DIV);
@@ -365,8 +366,13 @@ ProjectInfoPanel.prototype.showUserProfilePage = function(user) {
   }
 };
 
-ProjectInfoPanel.prototype.init = function() {
-  return this.refresh();
+ProjectInfoPanel.prototype.init = function () {
+  var self = this;
+  return ServerConnector.getConfigurationParam(ConfigurationType.REQUEST_ACCOUNT_EMAIL).then(function (value) {
+    var link = $("[name=requestAccount]", self.getElement());
+    link.attr("href", "mailto:" + value + "?subject=MINERVA account request");
+    return self.refresh();
+  });
 };
 
 module.exports = ProjectInfoPanel;