diff --git a/database/alter.sql b/database/alter.sql
deleted file mode 100644
index 80d0ad77f1d270830b410505fc2123fc972731fa..0000000000000000000000000000000000000000
--- a/database/alter.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-// add `salutation` column and alter `title` to be not mandatory
-ALTER TABLE `userdb`.`user` 
-ADD COLUMN `salutation` VARCHAR(45) NULL DEFAULT NULL AFTER `email`,
-CHANGE COLUMN `title` `title` VARCHAR(45) NULL DEFAULT NULL ;
\ No newline at end of file
diff --git a/database/userdb.mwb b/database/userdb.mwb
deleted file mode 100644
index 6cb9b9285114f37d969bc9d563909cf62cb71fe5..0000000000000000000000000000000000000000
Binary files a/database/userdb.mwb and /dev/null differ
diff --git a/database/userdb.png b/database/userdb.png
deleted file mode 100644
index 917f4596421b323f05ba15b5a7d03fcc524b7cb5..0000000000000000000000000000000000000000
Binary files a/database/userdb.png and /dev/null differ
diff --git a/database/userdb.sql b/database/userdb.sql
deleted file mode 100644
index 88d6a99a52ce4c23fd199abb5a3736e67ef899b2..0000000000000000000000000000000000000000
--- a/database/userdb.sql
+++ /dev/null
@@ -1,89 +0,0 @@
--- MySQL Workbench Forward Engineering
-
-SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
-SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
-SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-
--- -----------------------------------------------------
--- Schema userdb
--- -----------------------------------------------------
-
--- -----------------------------------------------------
--- Schema userdb
--- -----------------------------------------------------
-CREATE SCHEMA IF NOT EXISTS `userdb` DEFAULT CHARACTER SET utf8 ;
--- -----------------------------------------------------
--- Schema userdb
--- -----------------------------------------------------
-USE `userdb` ;
-
--- -----------------------------------------------------
--- Table `userdb`.`user`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `userdb`.`user` (
-  `id` INT NOT NULL AUTO_INCREMENT,
-  `active` VARCHAR(45) NOT NULL DEFAULT '1',
-  `email` VARCHAR(45) NOT NULL,
-  `title` VARCHAR(45) NOT NULL,
-  `firstname` VARCHAR(45) NOT NULL,
-  `lastname` VARCHAR(45) NOT NULL,
-  `industry` VARCHAR(45) NULL,
-  `organisation` VARCHAR(45) NULL,
-  `speciality` VARCHAR(100) NULL,
-  `createdDate` DATE NOT NULL,
-  PRIMARY KEY (`id`))
-ENGINE = InnoDB;
-
-
--- -----------------------------------------------------
--- Table `userdb`.`credential`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `userdb`.`credential` (
-  `password` VARCHAR(255) NOT NULL,
-  `resetPasswordToken` VARCHAR(255) NULL,
-  `resetPasswordExpires` BIGINT(11) NULL,
-  `user_id` INT NOT NULL,
-  PRIMARY KEY (`user_id`),
-  CONSTRAINT `fk_credential_user`
-    FOREIGN KEY (`user_id`)
-    REFERENCES `userdb`.`user` (`id`)
-    ON DELETE NO ACTION
-    ON UPDATE NO ACTION)
-ENGINE = InnoDB;
-
-
--- -----------------------------------------------------
--- Table `userdb`.`role`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `userdb`.`role` (
-  `id` INT NOT NULL,
-  `name` VARCHAR(45) NOT NULL,
-  PRIMARY KEY (`id`))
-ENGINE = InnoDB;
-
-
--- -----------------------------------------------------
--- Table `userdb`.`user_project_role`
--- -----------------------------------------------------
-CREATE TABLE IF NOT EXISTS `userdb`.`user_project_role` (
-  `project_id` INT NOT NULL,
-  `user_id` INT NOT NULL,
-  `role_id` INT NOT NULL,
-  PRIMARY KEY (`user_id`, `role_id`),
-  INDEX `fk_user_project_role_role1_idx` (`role_id` ASC) VISIBLE,
-  CONSTRAINT `fk_user_project_role_user1`
-    FOREIGN KEY (`user_id`)
-    REFERENCES `userdb`.`user` (`id`)
-    ON DELETE NO ACTION
-    ON UPDATE NO ACTION,
-  CONSTRAINT `fk_user_project_role_role1`
-    FOREIGN KEY (`role_id`)
-    REFERENCES `userdb`.`role` (`id`)
-    ON DELETE NO ACTION
-    ON UPDATE NO ACTION)
-ENGINE = InnoDB;
-
-
-SET SQL_MODE=@OLD_SQL_MODE;
-SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
-SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
diff --git a/database/userdb_121219.sql b/database/userdb_121219.sql
deleted file mode 100644
index 17182485d251f87aa2fc13b94f88cc88234ea75e..0000000000000000000000000000000000000000
--- a/database/userdb_121219.sql
+++ /dev/null
@@ -1,169 +0,0 @@
--- MySQL dump 10.13  Distrib 5.7.28, for Linux (x86_64)
---
--- Host: localhost    Database: userdb
--- ------------------------------------------------------
--- Server version	5.7.28-0ubuntu0.16.04.2
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
---
--- Table structure for table `credential`
---
-
-DROP TABLE IF EXISTS `credential`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `credential` (
-  `password` varchar(255) NOT NULL,
-  `resetPasswordToken` varchar(255) DEFAULT NULL,
-  `resetPasswordExpires` bigint(11) DEFAULT NULL,
-  `user_id` int(11) NOT NULL,
-  PRIMARY KEY (`user_id`),
-  CONSTRAINT `fk_credential_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `credential`
---
-
-LOCK TABLES `credential` WRITE;
-/*!40000 ALTER TABLE `credential` DISABLE KEYS */;
-INSERT INTO `credential` VALUES ('$2a$10$aaazJI39YqSX4E4IioZLyeij7PNVJOftflRoyR8cnEsJcnfiCEkJG',NULL,NULL,1),('$2a$10$mwSQgaevI6TMlADnNV4wXOHSbU0vMPFk0gXvF7k8uO7rq2nlq4i1m',NULL,NULL,2),('$2a$10$HdtI166dTpiDJ0DJ3iUdN.egdlVISeqKTdiVjK0pO3YCka4leCMqa',NULL,NULL,3),('$2a$10$.B64LLuZjih.N7mIiECfrOJreHS2wl/Tuq8Y3dQBR0Ibo7Qiyu46G',NULL,NULL,4),('$2a$10$9nr4ZPwwIFCmI9ui3cMSYOOm/4A87zEuXjUKITWrednzVgN9TkSdC',NULL,NULL,5),('$2a$10$jbh/nfxvQd.38I/7xjoPG..ouy5IEBHx/IXXKeDJRB7gyeLIXYgzS',NULL,NULL,6),('$2a$10$q.Az8ugqSV/pIJJUFL6zsuKNeOyRqkJ5VwETX5qgTrw87GFkJe.oa',NULL,NULL,7),('$2a$10$.2F7VAwc1coUEqApy0WKxOS3aa469IA/HS/5.55k9KSETXGNzHzc2',NULL,NULL,8),('$2a$10$N/pEeFf09M4JleRr7nWoqOgFE9BJ9CrCqmMwD6WVA0PIq9sn7TKzO',NULL,NULL,9),('$2a$10$aaazJI39YqSX4E4IioZLyeij7PNVJOftflRoyR8cnEsJcnfiCEkJG','4492472ebff697897f79b90221eed62c92daf4ce',1576064194107,10),('$2a$10$1IOasn3XS80V49A4R5c3terXZ.U9cw6tnulwvpH0hojFRiLDOaiGS',NULL,NULL,11),('$2a$10$PRScebJjV45CCkn0E2x0.OCasH131Mbu1.K.o.6TO3.SnAZKpGXS2',NULL,NULL,12),('$2a$10$79/hpCUI3pe7w4uKqntdC.6uvxXPj3/pqxgrE5Q8QRp7mFeeOeHeG',NULL,NULL,13),('$2a$10$AjfyBato1aDfZmRVQky24.6xHspwxmDg0OuauTlU2QE6.W/0.Nfj6',NULL,NULL,14),('$2a$10$dyJeMvCcwfFLs0T0z2aXSeQPVkXzltQhA5zzFzUUEAddjG.5bvwUW',NULL,NULL,15),('$2a$10$.B64LLuZjih.N7mIiECfrOJreHS2wl/Tuq8Y3dQBR0Ibo7Qiyu46G',NULL,NULL,16),('$2a$10$jGcRXSLA0l4cOb7Y1/c6Wehml/8O3b9J17zJbfQLfv6PCOQF3/rYq',NULL,NULL,18),('$2a$10$JIMQ7fHiQWpbEijzvViVMeSFcprSFNjQFdfPjtgZCEGtOHv.NTL/i',NULL,NULL,19);
-/*!40000 ALTER TABLE `credential` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `role`
---
-
-DROP TABLE IF EXISTS `role`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `role` (
-  `id` int(11) NOT NULL,
-  `name` varchar(45) NOT NULL,
-  PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `role`
---
-
-LOCK TABLES `role` WRITE;
-/*!40000 ALTER TABLE `role` DISABLE KEYS */;
-INSERT INTO `role` VALUES (1,'ADMIN'),(2,'USER');
-/*!40000 ALTER TABLE `role` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `user`
---
-
-DROP TABLE IF EXISTS `user`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `user` (
-  `id` int(11) NOT NULL AUTO_INCREMENT,
-  `active` varchar(45) NOT NULL DEFAULT '1',
-  `email` varchar(45) NOT NULL,
-  `title` varchar(45) NOT NULL,
-  `firstname` varchar(45) NOT NULL,
-  `lastname` varchar(45) NOT NULL,
-  `industry` varchar(45) DEFAULT NULL,
-  `organisation` varchar(45) DEFAULT NULL,
-  `speciality` varchar(100) DEFAULT NULL,
-  `createdDate` date NOT NULL,
-  PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `user`
---
-
-LOCK TABLES `user` WRITE;
-/*!40000 ALTER TABLE `user` DISABLE KEYS */;
-INSERT INTO `user` VALUES (1,'1','testi@testmann.de','Herr','Testi','Testmann','testing','HFT Stuttgart','test-driven testing','2019-12-11'),(2,'1','test@email.de','Frau','Test','Lastname','','','','2019-12-11'),(3,'1','christine.kraus@hft-stuttgart.de','Frau','Christine','Kraus','Bildung','HFT','Innovationslabor M4_LAB','2019-12-11'),(4,'1','volker.coors@hft-stuttgart.de','Prof. Dr.','Volker','Coors','Bildung','HfT Stuttgart','3D-Geodateninfrastrukturen, Visualisierung raumbezogener Daten','2019-12-11'),(5,'1','uta.bronner@hft-stuttgart.de','Prof. Dr.','Uta','Bronner','Bildung','HfT Stuttgart','Human Resources Management','2019-12-11'),(6,'1','michael.bossert@hft-stuttgart.de','Herr','Michael','Bossert','Bildung','HfT Stuttgart','m4_lab','2019-12-11'),(7,'1','patrick.wuerstle@hft-stuttgart.de','Herr','Patrick','Würstle','Bildung','HfT Stuttgart','Geoinformatik','2019-12-11'),(8,'1','thunyathep.santhanavanich@hft-stuttgart.de','Herr','Joe Thunyathep','Santhanavanich','Bildung','HfT Stuttgart','Geoinformatik','2019-12-11'),(9,'1','janto.skowronek@hft-stuttgart.de','Herr','Janto','Skowronek','','','','2019-12-11'),(10,'1','wolfgang.knopki@hft-stuttgart.de','Herr','Wolfgang','Knopki','Bildung','HfT Stuttgart','Administration','2019-12-11'),(11,'1','muddsairsharif@gmail.com','Herr','Muddsair','Sharif','','','','2019-12-11'),(12,'1','hans.mueller@hft-stuttgart.de','Herr','hans','Müller','Bildung','HfT Stuttgart','keines','2019-12-11'),(13,'1','rosanny.sihombing@hft-stuttgart.de','Frau','Rosanny','Sihombing','','','','2019-12-11'),(14,'1','82shhi1mst@hft-stuttgart.de','Frau','Himanshi','Sharma','Software Technology','HFT','','2019-12-11'),(15,'1','hft_gitlab@ericduminil.com','Herr','Eric','Duminil','zafh.net','HfT Stuttgart','urbane simulation','2019-12-11'),(16,'1','volker.coors@arcor.de','Prof. Dr.','Volker','Coors','','Herr','','2019-12-11'),(18,'1','matthias.betz@hft-stuttgart.de','Herr','Matthias','Betz','','HFT','','2019-12-11'),(19,'1','mail@khbrassel.de','Herr','Kai-Holger','Brassel','','','','2019-12-11');
-/*!40000 ALTER TABLE `user` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `user_groups`
---
-
-DROP TABLE IF EXISTS `user_groups`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `user_groups` (
-  `id` int(11) NOT NULL AUTO_INCREMENT,
-  `groups_string` longtext,
-  `user_id` int(11) DEFAULT NULL,
-  PRIMARY KEY (`id`),
-  KEY `user_id` (`user_id`),
-  CONSTRAINT `user_groups_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `user_groups`
---
-
-LOCK TABLES `user_groups` WRITE;
-/*!40000 ALTER TABLE `user_groups` DISABLE KEYS */;
-INSERT INTO `user_groups` VALUES (1,'jira-software-users,confluence-users,jira-administrators,confluence-administrators',10),(2,'jira-software-users,confluence-users',9),(3,'jira-software-users,confluence-users',1);
-/*!40000 ALTER TABLE `user_groups` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `user_project_role`
---
-
-DROP TABLE IF EXISTS `user_project_role`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `user_project_role` (
-  `project_id` int(11) NOT NULL,
-  `user_id` int(11) NOT NULL,
-  `role_id` int(11) NOT NULL,
-  PRIMARY KEY (`user_id`,`role_id`),
-  KEY `fk_user_project_role_role1_idx` (`role_id`),
-  CONSTRAINT `fk_user_project_role_role1` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
-  CONSTRAINT `fk_user_project_role_user1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `user_project_role`
---
-
-LOCK TABLES `user_project_role` WRITE;
-/*!40000 ALTER TABLE `user_project_role` DISABLE KEYS */;
-INSERT INTO `user_project_role` VALUES (1,1,1),(1,2,2),(1,3,2),(1,4,2),(1,5,2),(1,6,2),(1,7,2),(1,8,2),(1,9,2),(1,10,2),(1,11,2),(1,12,2),(1,13,2),(1,14,2),(1,15,2),(1,16,2),(1,18,2),(1,19,2);
-/*!40000 ALTER TABLE `user_project_role` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Dumping routines for database 'userdb'
---
-/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
--- Dump completed on 2019-12-12 10:24:07
diff --git a/database/userdb_role.sql b/database/userdb_role.sql
new file mode 100644
index 0000000000000000000000000000000000000000..be18e685ca0e5b100bf1164972733c9720bb6b63
--- /dev/null
+++ b/database/userdb_role.sql
@@ -0,0 +1,51 @@
+-- MySQL dump 10.13  Distrib 8.0.15, for Win64 (x86_64)
+--
+-- Host: localhost    Database: userdb
+-- ------------------------------------------------------
+-- Server version	8.0.15
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+ SET NAMES utf8 ;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `role`
+--
+
+DROP TABLE IF EXISTS `role`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+ SET character_set_client = utf8mb4 ;
+CREATE TABLE `role` (
+  `id` int(11) NOT NULL,
+  `name` varchar(45) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `role`
+--
+
+LOCK TABLES `role` WRITE;
+/*!40000 ALTER TABLE `role` DISABLE KEYS */;
+INSERT INTO `role` VALUES (1,'ADMIN'),(2,'USER'),(3,'OVERVIEW_CREATOR');
+/*!40000 ALTER TABLE `role` ENABLE KEYS */;
+UNLOCK TABLES;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2020-03-19  9:21:39
diff --git a/routes/api.js b/routes/api.js
index ddedf46c1ea1ff827297feb6107ad20fa6722aa6..5a6ee24d95d8e35431ea2c408e3f0f5792e1fe7a 100644
--- a/routes/api.js
+++ b/routes/api.js
@@ -7,13 +7,13 @@ module.exports = function (app) {
     
     app.get('/api/v1/profile', function (req, res) {
         if (req.isAuthenticated()) {
-            // read data based on ID
-            dbconn.user.query('SELECT title, firstname, lastname, email, industry, organisation, speciality FROM user WHERE email="'+req.user.email+'"', function (err, rows, fields) {
+            // read data based on email
+            dbconn.user.query('SELECT * FROM user WHERE email="'+req.user.email+'"', function (err, rows, fields) {
                 if (err) throw err
                 res.send(rows[0])
             })
         } else {
-          res.redirect('/account/');
+          res.send('authentication required');
         }
     });
     
diff --git a/routes/methods.js b/routes/methods.js
index d377d61cd79360dd27609a2ab7426607901a9fc6..59709d7d78802cc2232f63afb5c4c16a7431eaf2 100644
--- a/routes/methods.js
+++ b/routes/methods.js
@@ -132,6 +132,12 @@ var methods = {
             callback(rows, err);
         });
     },
+    addUserProjectRole: function(data, callback) {
+        dbconn.user.query('INSERT INTO user_project_role SET ?', data, function (err, results, fields){
+            if (err) throw err;
+            callback(err);
+        })
+    },
     // ======================= project db =======================
     getAllProjects: function(callback) {
         dbconn.project.query('CALL getAllprojects', function (err, rows, fields){
@@ -146,9 +152,10 @@ var methods = {
 	})
     },
     addProjectOverview: function(data, callback) {
-        dbconn.project.query('INSERT INTO project_overview SET ?', data, function (err, rows, fields){
+        dbconn.project.query('INSERT INTO project_overview SET ?', data, function (err, results, fields){
             if (err) throw err;
-            callback(err);
+            //console.log(results.insertId)
+            callback(results.insertId, err);
         })
     }
 };
diff --git a/routes/routes-account.js b/routes/routes-account.js
index edba628a284d1302dc4af590ae0f4c14bfde4e9e..7984d39e514c349e0dbc4b11c8a498d6e846278d 100644
--- a/routes/routes-account.js
+++ b/routes/routes-account.js
@@ -9,7 +9,7 @@ const salt = 64; // salt length
 // forgot pwd
 const async = require('async')
 const crypto = require('crypto')
-const mailer = require('./mailer')
+const nodemailer = require('nodemailer')
 
 module.exports = function (app, config, passport, i18n) {
 
@@ -74,17 +74,28 @@ module.exports = function (app, config, passport, i18n) {
       res.status(200).send(spMetadata);
     }
   );
-  
-  // ================ test i18n ==================
-  i18n.setLocale('de');
-  app.get('/de', function(req, res) {
-    var greeting = i18n.__('Hello World')
-    res.send(greeting)
+
+  // ======== NODEMAILER ====================
+  var smtpTransport = nodemailer.createTransport({
+    host: config.mailer.host,
+    secureConnection: config.mailer.secureConnection,
+    port: config.mailer.port,
+    auth: {
+      user: config.mailer.authUser,
+      pass: config.mailer.authPass
+    },
+    tls: {
+        ciphers: config.mailer.tlsCiphers
+    } 
   });
   
-  var lang = 'DE'
+  var mailOptions = {
+    to: "",
+    from: config.mailer.from,
+    subject: "",
+    text: ""
+  };
 
-  // ======== APP ROUTES - ACCOUNT ====================
   var updatePasswordMailSubject = "Ihr Passwort für das Transferportal wurde gespeichert."
   var mailSignature = "Mit den besten Grüßen,\ndas Transferportal-Team der HFT Stuttgart\n\n"+
     "Transferportal der Hochschule für Technik Stuttgart\n"+
@@ -93,7 +104,17 @@ module.exports = function (app, config, passport, i18n) {
     "m4lab@hft-stuttgart.de\n"+
     "https://transfer.hft-stuttgart.de"
   var updatePasswordMailContent = "Lieber Nutzer,\n\n"+"Ihr Passwort wurde erfolgreich geändert.\n\n"+mailSignature
+  
+  // ================ test i18n ==================
+  i18n.setLocale('de');
+  app.get('/de', function(req, res) {
+    var greeting = i18n.__('Hello World')
+    res.send(greeting)
+  });
+  
+  var lang = 'DE'
 
+  // ======== APP ROUTES - ACCOUNT ====================
   app.get('/', function (req, res) {
     if (req.isAuthenticated()) {
       methods.getUserByEmail(req.user.email, function(data, err){
@@ -124,7 +145,7 @@ module.exports = function (app, config, passport, i18n) {
     if (req.user == null) {
       return res.redirect('/account/');
     }
-    
+
     req.user.nameID = req.user.id;
     req.user.nameIDFormat = req.user.idFormat;
     return samlStrategy.logout(req, function(err, uri) {
@@ -311,11 +332,11 @@ module.exports = function (app, config, passport, i18n) {
                         else {
                           //req.flash('success', "Pasword updated!")
                           req.flash('success', "Passwort aktualisiert!")
-                          mailer.options.to = req.user.email
+                          mailOptions.to = req.user.email
                           //mailOptions.subject = "Your M4_LAB Password has been updated."
-                          mailer.options.subject = updatePasswordMailSubject
-                          mailer.options.text = updatePasswordMailContent
-                          mailer.transport.sendMail(mailer.options, function(err) {
+                          mailOptions.subject = updatePasswordMailSubject
+                          mailOptions.text = updatePasswordMailContent
+                          smtpTransport.sendMail(mailOptions, function(err) {
                             if (err) {
                               console.log(err)
                             }
@@ -386,10 +407,10 @@ module.exports = function (app, config, passport, i18n) {
             });
 
             // send email
-            mailer.options.to = emailAddress;
-            mailer.options.subject = emailSubject;
-            mailer.options.text = emailContent;
-            mailer.transport.sendMail(mailer.options, function(err) {
+            mailOptions.to = emailAddress;
+            mailOptions.subject = emailSubject;
+            mailOptions.text = emailContent;
+            smtpTransport.sendMail(mailOptions, function(err) {
               done(err, 'done');
             });
           }
@@ -449,10 +470,10 @@ module.exports = function (app, config, passport, i18n) {
                 //req.flash('success', "Your pasword has been updated.")
                 req.flash('success', "Passwort aktualisiert!")
                 // send notifiaction email
-                mailer.options.to = user.email
-                mailer.options.subject = updatePasswordMailSubject
-                mailer.options.text = updatePasswordMailContent
-                mailer.transport.sendMail(mailer.options, function(err) {
+                mailOptions.to = user.email
+                mailOptions.subject = updatePasswordMailSubject
+                mailOptions.text = updatePasswordMailContent
+                smtpTransport.sendMail(mailOptions, function(err) {
                   if (err) {
                     console.log(err)
                   }
@@ -530,5 +551,146 @@ module.exports = function (app, config, passport, i18n) {
       }
     })
   })
+    app.get('/mailinglists', function (req, res) {
+        async.waterfall([
+            function(done) {
+                methods.getAllMailinglists(function(mailinglistOverview, err) {
+                    if (!err) {
+                        done(err, mailinglistOverview)
+                    }
+                })
+            },
+            // create JSON object of mailinglists for front-end
+            function(mailinglistOverview, done) {
+                var allMailingLists = []  // JSON object
+                for (let i = 0; i < mailinglistOverview.length; i++) {
+                    // add data to JSON object
+                    allMailingLists.push({
+                        id: mailinglistOverview[i].id,
+                        name: mailinglistOverview[i].name,
+                        src: mailinglistOverview[i].src,
+                        projectstatus: mailinglistOverview[i].projectstatus,
+                        project_title: mailinglistOverview[i].project_title
+                    });
+                }
+
+                res.render(lang+'/mailinglists', {
+                    isUserAuthenticated: req.isAuthenticated(),
+                    user: req.user,
+                    mailinglists: allMailingLists
+                });
+            }
+        ])
+    });
+
+  // ======== APP ROUTES - PROJECT ====================
+  app.get('/project', function (req, res) {
+    async.waterfall([
+      // get all projects from projectdb
+      function(done) {
+        methods.getAllProjects(function(projectsOverview, err) {
+          if (!err) {
+            done(err, projectsOverview)
+          }
+        })
+      },
+      // create JSON object for front-end
+      function(projectsOverview, done) {
+        var activeProjects = []
+        var nonActiveProjects = []
+
+        for (var i = 0; i < projectsOverview.length; i++) {
+          var project = {
+            id: projectsOverview[i].id,
+            logo: projectsOverview[i].logo,
+            akronym: projectsOverview[i].pname,
+            title: projectsOverview[i].title,
+            summary: projectsOverview[i].onelinesummary,
+            category: projectsOverview[i].category,
+            cp: projectsOverview[i].contact_email,
+            gitlab: projectsOverview[i].gitlab
+          }
+          if (projectsOverview[i].projectstatus == 0) {
+            nonActiveProjects.push(project)
+          }
+          else if (projectsOverview[i].projectstatus == 1) {
+            activeProjects.push(project)
+          }
+        }
+
+        // render the page
+        if (req.isAuthenticated()) {
+          res.render(lang+'/project/projects', {
+            isUserAuthenticated: true,
+            nonActive: nonActiveProjects,
+            active: activeProjects
+          });
+        }
+        else {
+          res.render(lang+'/project/projects', {
+            isUserAuthenticated: false,
+            nonActive: nonActiveProjects,
+            active: activeProjects
+          });
+        }
+      }
+    ])
+  })
+
+  app.get('/addprojectoverview', function (req, res) {
+    if (req.isAuthenticated()) {
+      res.render(lang+'/project/addProjectOverview')
+    }
+    else {
+      res.redirect('/account/login')
+    }
+  })
+  
+  app.post('/addprojectoverview', function (req, res) {
+    if (req.isAuthenticated()) {
+      var wiki = 0
+      if (req.body.wiki)
+        wiki = 1
+
+      var projectOverviewData = {
+        pname: req.body.pname,
+        title: req.body.title,
+        onelinesummary: req.body.summary,
+        category: req.body.category,
+        logo: req.body.logo,
+        gitlab: req.body.gitlabURL,
+        wiki: wiki,
+        overview: req.body.overview,
+        question: req.body.question,
+        approach: req.body.approach,
+        result: req.body.result,
+        keywords: req.body.keywords,
+        announcement: req.body.announcement,
+        term: req.body.term,
+        further_details: req.body.furtherDetails,
+        website: req.body.website,
+        src: req.body.src,
+        caption: req.body.caption,
+        contact_firstname: req.body.contactFirstname,
+        contact_lastname: req.body.contactLastname,
+        contact_email: req.body.contactEmail,
+        leader_firstname: req.body.leaderFirstname,
+        leader_lastname: req.body.leaderLastname,
+        leader_email: req.body.leaderEmail
+      }
+      
+      methods.addProjectOverview(projectOverviewData, function(err){
+        if (err) {
+          //req.flash('error', "Failed")
+          req.flash('error', "Fehlgeschlagen")
+          res.redirect('/account/addProjectOverview');
+        }
+        else {
+          req.flash('success', 'Your project has been created.')
+          res.redirect('/account/project');
+        }
+      })
+    }
+  })
   
 };
\ No newline at end of file
diff --git a/routes/routes-project.js b/routes/routes-project.js
index f05c4c060eec5da360a332611befc1ee72158957..f68aecdcfd3a935245b93dddbaeccda1b7864334 100644
--- a/routes/routes-project.js
+++ b/routes/routes-project.js
@@ -146,6 +146,83 @@ module.exports = function (app) {
     }
   })
 
+  app.post('/addprojectoverview', function (req, res) {
+    if (req.isAuthenticated()) {
+      var wiki = 0
+      if (req.body.wiki)
+        wiki = 1
+
+      var projectTerm = req.body.termForm + " - " + req.body.termTo
+      var projectOverviewData = {
+        pname: req.body.pname,
+        title: req.body.title,
+        onelinesummary: req.body.summary,
+        category: req.body.category,
+        logo: req.body.logo,
+        gitlab: req.body.gitlabURL,
+        wiki: wiki,
+        overview: req.body.overview,
+        question: req.body.question,
+        approach: req.body.approach,
+        result: req.body.result,
+        keywords: req.body.keywords,
+        announcement: req.body.announcement,
+        term: projectTerm,
+        further_details: req.body.furtherDetails,
+        website: req.body.website,
+        src: req.body.src,
+        caption: req.body.caption,
+        contact_lastname: req.body.contactName,
+        contact_email: req.body.contactEmail,
+        leader_lastname: req.body.leaderName,
+        leader_email: req.body.leaderEmail
+      }
+      
+      /* RS: Temporary solution while Project DB is still in early phase.
+              When User DB and Project DB are integrated and quite stabil, this operation should be done in 1 transaction.
+      */
+      var userId // todo: make this global variable?
+      async.waterfall([
+        // get userId by email from userdb
+        function(done) {
+          methods.getUserIdByEmail(req.user.email, function(id, err) {
+            if (!err) {
+              userId = id
+              done(err)
+            }
+          })
+        },
+        // add project overview
+        function(done) {
+          methods.addProjectOverview(projectOverviewData, function(projectOverviewId, err){
+            if (!err) {
+              done(err, projectOverviewId)
+            }
+          })
+        },
+        // assign the created overview to logged-in user
+        function(projectOverviewId, done) {
+          var userProjectRoleData = {
+            project_id: projectOverviewId,
+            user_id: userId,
+            role_id: 3 // OVERVIEW_CREATOR
+          }
+          methods.addUserProjectRole(userProjectRoleData, function(userProjects, err) {
+            if (err) {
+              //req.flash('error', "Failed")
+              req.flash('error', "Fehlgeschlagen")
+              res.redirect('/addProjectOverview');
+            }
+            else {
+              req.flash('success', 'Your project has been created.')
+              res.redirect('/project');
+            }
+          })
+        }
+      ])
+    }
+  })
+
   app.get('/updateprojectoverview', function (req, res) {
     // only their own project
   })
diff --git a/views/DE/account/home.pug b/views/DE/account/home.pug
index f08d9ee7937aee1b391b8cfd40bbb004173df5d6..58b2427c3063a835f93a8be4ad87515929121978 100644
--- a/views/DE/account/home.pug
+++ b/views/DE/account/home.pug
@@ -34,9 +34,9 @@ html(lang="de")
                 h5
                     span #{user.firstname} #{user.lastname}
                 div(class="nav flex-column nav-pills", id="v-pills-tab", role="tablist", aria-orientation="vertical")
-                    a(class="nav-link" href="/account/profile" aria-selected="true") Benutzerprofil
-                    a(class="nav-link" href="/account/security" aria-selected="false") Sicherheitseinstellungen
-                    a(class="nav-link" href="/account/services" aria-selected="false") Projekte und Dienste
+                    a(class="nav-link" href="/profile" aria-selected="true") Benutzerprofil
+                    a(class="nav-link" href="/security" aria-selected="false") Sicherheitseinstellungen
+                    a(class="nav-link" href="/services" aria-selected="false") Projekte und Dienste
             div(class="col-sm-9")
                 p content goes here
                 
diff --git a/views/DE/account/profile.pug b/views/DE/account/profile.pug
index e4d7e2609827baefef68378e4b42cdd06b84d8f9..32a2aff116c487f82b6c6b2bd6d50637c5cedd2f 100644
--- a/views/DE/account/profile.pug
+++ b/views/DE/account/profile.pug
@@ -35,8 +35,8 @@ html(lang="de")
                     span #{user.firstname} #{user.lastname}
                 div(class="nav flex-column nav-pills", id="v-pills-tab", role="tablist", aria-orientation="vertical")
                     a(class="nav-link" href="#" aria-selected="true") Benutzerprofil
-                    a(class="nav-link" href="/account/security" aria-selected="false") Sicherheitseinstellungen
-                    a(class="nav-link" href="/account/services" aria-selected="false") Projekte und Dienste
+                    a(class="nav-link" href="/security" aria-selected="false") Sicherheitseinstellungen
+                    a(class="nav-link" href="/services" aria-selected="false") Projekte und Dienste
             div(class="col-sm-9")
                 if successes
                     for success in successes
diff --git a/views/DE/account/registration.pug b/views/DE/account/registration.pug
index 077e41386e08e6d5e278d781d87133efaf398cfd..108afdeffadfd5b56e906cc7d307206ffa49726d 100644
--- a/views/DE/account/registration.pug
+++ b/views/DE/account/registration.pug
@@ -49,10 +49,10 @@ html(lang="de")
                     h5(class="mb-3 font-weight-bold") Anmeldedaten
                     div(class='form-row')
                         div(class='form-group col-md-6')
-                            input#inputEmail(name="inputEmail", type="email", class="form-control", placeholder="E-Mail-Adresse*" required)
+                            input#inputEmail(name="inputEmail", type="email", class="form-control", placeholder="E-Mail-Adresse*", maxlength="45" required)
                             span#emailWarning(class='warning')
                         div(class="form-group col-md-6")
-                            input#inputPassword(name="inputPassword", type="password", class="form-control", data-toggle="password", placeholder="Passwort*" required)
+                            input#inputPassword(name="inputPassword", type="password", class="form-control", data-toggle="password", placeholder="Passwort*", maxlength="45" required)
                             span#passwordWarning(class='warning')
                     h5(class="mb-3 font-weight-bold") Benutzerprofil
                     div(class="form-row")
@@ -70,15 +70,15 @@ html(lang="de")
                                 option(value="Dipl.-Ing.") Dipl.-Ing.
                                 option(value="etc.") etc.
                         div(class='form-group col-md-4')
-                            input#inputFirstname(name="inputFirstname", type="text", class="form-control", placeholder="Vorname*" required)
+                            input#inputFirstname(name="inputFirstname", type="text", class="form-control", placeholder="Vorname*", maxlength="45" required)
                         div(class='form-group col-md-4')
-                            input#inputLastname(name="inputLastname", type="text", class="form-control", placeholder="Nachname*" required)
+                            input#inputLastname(name="inputLastname", type="text", class="form-control", placeholder="Nachname*", maxlength="45" required)
                     div(class="form-group")
-                        input#inputOrganisation(name="inputOrganisation", type="text", class="form-control", placeholder="Unternehmen")
+                        input#inputOrganisation(name="inputOrganisation", type="text", class="form-control", placeholder="Unternehmen", maxlength="45")
                     div(class="form-group")
-                        input#inputIndustry(name="inputIndustry", type="text", class="form-control", placeholder="Branche")
+                        input#inputIndustry(name="inputIndustry", type="text", class="form-control", placeholder="Branche", maxlength="45")
                     div(class="form-group")
-                        input#inputSpeciality(name="inputSpeciality", type="text", class="form-control", placeholder="Fachgebiete")
+                        input#inputSpeciality(name="inputSpeciality", type="text", class="form-control", placeholder="Fachgebiete", maxlength="100")
                     p <em><small>* Pflichtfeld</small></em>
                     input#submitBtn(type="submit", class="btn btn-outline-dark btn-block", value="Senden" disabled)
                 br
diff --git a/views/DE/account/security.pug b/views/DE/account/security.pug
index 6db09112136b41451ea1fd381e768d36282626f3..560d32bc554c360f2cc32783f4aeda33b546d0fe 100644
--- a/views/DE/account/security.pug
+++ b/views/DE/account/security.pug
@@ -37,9 +37,9 @@ html(lang="de")
                 h5
                     span #{user.firstName} #{user.lastName}
                 div(class="nav flex-column nav-pills", id="v-pills-tab", role="tablist", aria-orientation="vertical")
-                    a(class="nav-link" href="/account/profile" aria-selected="true") Benutzerprofil
+                    a(class="nav-link" href="/profile" aria-selected="true") Benutzerprofil
                     a(class="nav-link" href="#" aria-selected="false") Sicherheitseinstellungen
-                    a(class="nav-link" href="/account/services" aria-selected="false") Projekte und Dienste
+                    a(class="nav-link" href="/services" aria-selected="false") Projekte und Dienste
             div(class="col-sm-9")
                 if successes
                     for success in successes
diff --git a/views/DE/account/services.pug b/views/DE/account/services.pug
index 6ab101f30c8da9f6c5b53d526af7c4dd8178936b..55f5a1b66458fb86a0bd9a6e2069da57a4d370ea 100644
--- a/views/DE/account/services.pug
+++ b/views/DE/account/services.pug
@@ -34,8 +34,8 @@ html(lang="de")
                 h5
                     span #{user.firstName} #{user.lastName}
                 div(class="nav flex-column nav-pills", id="v-pills-tab", role="tablist", aria-orientation="vertical")
-                    a(class="nav-link" href="/account/profile" aria-selected="true") Benutzerprofil
-                    a(class="nav-link" href="/account/security" aria-selected="false") Sicherheitseinstellungen
+                    a(class="nav-link" href="/profile" aria-selected="true") Benutzerprofil
+                    a(class="nav-link" href="/security" aria-selected="false") Sicherheitseinstellungen
                     a(class="nav-link" href="#" aria-selected="false") Projekte und Dienste
             div(class="col-sm-9")
                 if successes