diff --git a/app.js b/app.js
index 68d3e9442d8290a20f6bded553c389810031c0ac..3e4b3a6f53257678359370704206a1c14ebb9436 100644
--- a/app.js
+++ b/app.js
@@ -16,7 +16,7 @@ i18n.configure({
   directory: './locales'
 });
 
-var env = process.env.NODE_ENV || 'development';
+var env = process.env.NODE_ENV || 'testing';
 const config = require('./config/config')[env];
 
 var app = express();
diff --git a/config/config.js b/config/config.js
index b4c47761de28b53ca6532d256f34e203e9ea8e06..201291a1b012ff0452c9c660d81a96c050af8d53 100644
--- a/config/config.js
+++ b/config/config.js
@@ -2,14 +2,48 @@ module.exports = {
   development: {
     app: {
       name: 'User Account Management',
-      port: process.env.PORT || 9989
+      port: process.env.PORT || 9989,
+      host: 'http://localhost:9989'
+    },
+    passport: {
+      strategy: 'saml',
+      saml: {
+        path: process.env.SAML_PATH || '/saml/SSO',
+        entryPoint: process.env.SAML_ENTRY_POINT || 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SSOService.php',
+        issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata
+        logoutUrl: 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php'
+      }
+    },
+    database: {
+      host: 'localhost',      	  // DB host
+      user: 'DBManager',          // DB username
+      password: 'Stuttgart2019',  // DB password
+      port: 3306,                 // MySQL port
+      dbUser: 'userdb',           // User DB
+      host_project: 'localhost', // DB host project db
+      dbProject: 'projectDB'     // Project DB
+    },
+    mailer: {
+      host: 'mail.hft-stuttgart.de',  // hostname
+      secureConnection: false,        // TLS requires secureConnection to be false
+      port: 587,                      // port for secure SMTP
+      authUser: 'ad\\support-transfer',
+      authPass: '6laumri2',
+      tlsCiphers: 'SSLv3',
+      from: 'support-transfer@hft-stuttgart.de',
+    }
+  },
+  testing: {
+    app: {
+      name: 'User Account Management',
+      port: process.env.PORT || 9989,
+      host: 'https://m4lab.hft-stuttgart.de/account'
     },
     passport: {
       strategy: 'saml',
       saml: {
         path: process.env.SAML_PATH || '/saml/SSO',
         entryPoint: process.env.SAML_ENTRY_POINT || 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SSOService.php',
-        //issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata
         issuer: 'sp-account-testing.m4lab.hft-stuttgart.de', //testing metadata
         //issuer: 'sp-account-prod.m4lab.hft-stuttgart.de', //production metadata
         logoutUrl: 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php'
@@ -22,7 +56,6 @@ module.exports = {
       port: 3306,                 // MySQL port
       dbUser: 'userdb',           // User DB
       host_project: 'm4lab.hft-stuttgart.de', // DB host project db
-      //host_project: 'localhost', // local
       dbProject: 'projectDB'     // Project DB
     },
     mailer: {
@@ -35,4 +68,4 @@ module.exports = {
       from: 'support-transfer@hft-stuttgart.de',
     }
   }
-}
+}
\ No newline at end of file
diff --git a/routes/dbconn.js b/routes/dbconn.js
index 834eb1aaa465674e73190ffc8d8809b2d28c3274..a39f7368e9872389db9b36555b87a92d40a6eb05 100644
--- a/routes/dbconn.js
+++ b/routes/dbconn.js
@@ -1,6 +1,6 @@
 const mysql = require('mysql')
 
-var env = process.env.NODE_ENV || 'development';
+var env = process.env.NODE_ENV || 'testing';
 const config = require('../config/config')[env]
 
 // ==== USER ACOOUNT DB CONNECTION ====
diff --git a/routes/mailer.js b/routes/mailer.js
index 510b5bb1d11e075f446cdf19b8a954411025ee38..2c51bd7d5ed5682bfdd9fa0c48788e1bd4affe19 100644
--- a/routes/mailer.js
+++ b/routes/mailer.js
@@ -1,6 +1,6 @@
 const nodemailer = require('nodemailer')
 
-var env = process.env.NODE_ENV || 'development';
+var env = process.env.NODE_ENV || 'testing';
 const config = require('../config/config')[env]
 
 var smtpTransport = nodemailer.createTransport({
diff --git a/routes/methods.js b/routes/methods.js
index 9864273b4322e89b4d4e3093f1979b4b8b01986b..2bafb47063998022e39a2959fbd716afecae58dd 100644
--- a/routes/methods.js
+++ b/routes/methods.js
@@ -42,14 +42,26 @@ var methods = {
                                 throw err
                             });
                         }
-                        // COMMIT
-                        dbconn.user.commit(function(err) {
+                        // MLAB-129: INSERT verification token
+                        let verificationData = {
+                            user_id: newUserId,
+                            token: data.verificationToken
+                        }
+                        dbconn.user.query('INSERT INTO verification SET ?', verificationData, function (err, results, fields) {
                             if (err) {
                                 return dbconn.user.rollback(function() {
                                     throw err
                                 });
                             }
-                        });
+                            // COMMIT
+                            dbconn.user.commit(function(err) {
+                                if (err) {
+                                    return dbconn.user.rollback(function() {
+                                        throw err
+                                    })
+                                }
+                            })
+                        })
                     })
                 });
             });
@@ -57,7 +69,20 @@ var methods = {
         })
     },
     getUserByEmail: function(email, callback) {
-        dbconn.user.query('SELECT salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
+        dbconn.user.query('SELECT verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
+            if (err) {
+                throw err;
+            }
+            else {
+                if ( rows.length > 0) {
+                    user = rows[0];
+                }
+            }
+            callback(user, err);
+        });
+    },
+    getUserById: function(userId, callback) {
+        dbconn.user.query('SELECT verificationStatus, email, salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE id = ' +userId, function (err, rows, fields) {
             if (err) {
                 throw err;
             }
@@ -70,7 +95,7 @@ var methods = {
         });
     },
 	checkUserEmail: function(email, callback) {
-        var user;
+        let user
         dbconn.user.query('SELECT id, email FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
             if (err) {
                 throw err;
@@ -84,7 +109,7 @@ var methods = {
         });
     },
     getUserByToken: function(token, callback) {
-        var user;
+        let user
         dbconn.user.query('SELECT t1.user_id, t2.email FROM userdb.credential AS t1 INNER JOIN userdb.user AS t2 ON t1.user_id = t2.id AND t1.resetPasswordToken = "'
             +token+'" and resetPasswordExpires > '+Date.now(), function (err, rows, fields) {
                 if (err) {
@@ -100,42 +125,92 @@ var methods = {
             }
         );
     },
-	updateUser: function(userData, callback) {
-		dbconn.user.query('UPDATE user SET ? WHERE email = "' +userData.email+'"', userData, function (err, rows, fields) {
-            if (err) throw err;
-            callback(err);
+	updateUserById: function(userData, callback) {
+		dbconn.user.query('UPDATE user SET ? WHERE id = ' +userData.id, userData, function (err, rows, fields) {
+            if (err) throw err
+            callback(err)
         })
     },
     updateCredential: function(data, callback) {
         dbconn.user.query('UPDATE credential SET ? WHERE user_id = ' +data.user_id, data, function (err, rows, fields) {
-            if (err) throw err;
-            callback(err);
+            if (err) throw err
+            callback(err)
         })
     },
     getUserIdByEmail: function(email, callback) {
-        var userId
+        let userId
         dbconn.user.query('SELECT id FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
             if (err) {
-                throw err;
+                throw err
             }
             else {
                 if ( rows.length > 0) {
-                    userId = rows[0].id;
+                    userId = rows[0].id
                 }
             }
-            callback(userId, err);
+            callback(userId, err)
         });
     },
     getUserProjectRole: function(userId, callback) {
         dbconn.user.query('SELECT project_id, role_id FROM user_project_role WHERE user_id = "' +userId+'"', function (err, rows, fields) {
-            if (err) throw err;
-            callback(rows, err);
+            if (err) throw err
+            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);
+            if (err) throw err
+            callback(err)
+        })
+    },
+    getVerificationTokenByUserId: function(userId, callback) {
+        let token
+        dbconn.user.query('SELECT token FROM verification WHERE user_id = "' +userId+'"', function (err, rows, fields) {
+            if (err) {
+                throw err
+            }
+            else {
+                if (rows.length > 0) {
+                    token = rows[0].token
+                }
+            }
+            callback(token, err)
+        })
+    },
+    getUserIdByVerificationToken: function(token, callback) {
+        let userId
+        dbconn.user.query('SELECT user_id FROM verification WHERE token = "' +token+'"', function (err, rows, fields) {
+            if (err) {
+                throw err
+            }
+            else if(rows[0]) {
+                userId = rows[0].user_id
+            }
+            callback(userId, err)
+        })
+    },
+    verifyUserAccount: function(userData, callback) {
+        dbconn.user.beginTransaction(function(err) { // START TRANSACTION
+            if (err) { throw err }
+            // update user status
+            dbconn.user.query('UPDATE user SET ? WHERE id =' +userData.id, userData, function (err, rows, fields) {
+                if (err) {
+                    return dbconn.user.rollback(function() { throw err })
+                }
+                // delete verification token
+                dbconn.user.query('DELETE FROM verification WHERE user_id = '+userData.id, function (err, rows, fields) {
+                    if (err) {
+                        return dbconn.user.rollback(function() { throw err })
+                    }
+                    // COMMIT
+                    dbconn.user.commit(function(err) {
+                        if (err) {
+                            return dbconn.user.rollback(function() { throw err })
+                        }
+                    })
+                })
+            })
+            callback(err)
         })
     },
     // ======================= project db =======================
diff --git a/routes/routes-account.js b/routes/routes-account.js
index 43394cac613791892e2b9bb950a3b827ec394e3a..676796bacdfc92eb8b552df3cfa3939f1838e645 100644
--- a/routes/routes-account.js
+++ b/routes/routes-account.js
@@ -142,10 +142,18 @@ module.exports = function (app, config, passport, i18n) {
     if (req.isAuthenticated()) {
       methods.getUserByEmail(req.user.email, function(data, err){
         if (!err) {
-          res.render(lang+'/account/profile', {
-            user: data,
-            email: req.user.email
-          });
+          if (data.verificationStatus == 1) {
+            console.log(data)
+            res.render(lang+'/account/profile', {
+              user: data,
+              email: req.user.email
+            })
+          }
+          else {
+            res.render(lang+'/account/home', {
+              user: data
+            });
+          }
         }
       })
     } else {
@@ -155,63 +163,74 @@ module.exports = function (app, config, passport, i18n) {
 
   app.get('/services', function (req, res) {
     if (req.isAuthenticated()) {
-      async.waterfall([
-        // get userId by email from userdb
-        function(done) {
-          methods.getUserIdByEmail(req.user.email, function(userId, err) {
-            if (!err) {
-              done(err, userId)
-            }
-          })
-        },
-        // get user-project-role from userdb
-        function(userId, done) {
-          methods.getUserProjectRole(userId, function(userProjects, err) {
-            if (!err) {
-              done(err, userProjects)
-            }
-          })
-        },
-        // get all projects from projectdb
-        function(userProjects, done) {
-          methods.getAllProjects(function(projectsOverview, err) {
-            if (!err) {
-              done(err, userProjects, projectsOverview)
-            }
-          })
-        },
-        // create JSON object of projects and user status for front-end
-        function(userProjects, projectsOverview, done) {
-          var allProjects = []  // JSON object
-
-          var userProjectId = []  // array of user's project_id
-          for (var i = 0; i < userProjects.length; i++) {
-            userProjectId.push(userProjects[i].project_id)
+      methods.getUserByEmail(req.user.email, function(data, err){
+        if (!err) {
+          if (data.verificationStatus == 1) {
+            async.waterfall([
+              // get userId by email from userdb
+              function(done) {
+                methods.getUserIdByEmail(req.user.email, function(userId, err) {
+                  if (!err) {
+                    done(err, userId)
+                  }
+                })
+              },
+              // get user-project-role from userdb
+              function(userId, done) {
+                methods.getUserProjectRole(userId, function(userProjects, err) {
+                  if (!err) {
+                    done(err, userProjects)
+                  }
+                })
+              },
+              // get all projects from projectdb
+              function(userProjects, done) {
+                methods.getAllProjects(function(projectsOverview, err) {
+                  if (!err) {
+                    done(err, userProjects, projectsOverview)
+                  }
+                })
+              },
+              // create JSON object of projects and user status for front-end
+              function(userProjects, projectsOverview, done) {
+                var allProjects = []  // JSON object
+      
+                var userProjectId = []  // array of user's project_id
+                for (var i = 0; i < userProjects.length; i++) {
+                  userProjectId.push(userProjects[i].project_id)
+                }
+      
+                for (var i = 0; i < projectsOverview.length; i++) {
+                  // check if projectId is exist in userProjectId[]
+                  var status = false
+                  if (userProjectId.indexOf(projectsOverview[i].id) > -1) {
+                    status = true
+                  }
+                  // add data to JSON object
+                  allProjects.push({
+                    id: projectsOverview[i].id,
+                    title: projectsOverview[i].title,
+                    summary: projectsOverview[i].onelinesummary,
+                    cp: projectsOverview[i].contact_email,
+                    userStatus: status
+                  });
+                }
+      
+                // render the page
+                res.render(lang+'/account/services', {
+                  user: data,
+                  project: allProjects
+                });
+              }
+            ])
           }
-
-          for (var i = 0; i < projectsOverview.length; i++) {
-            // check if projectId is exist in userProjectId[]
-            var status = false
-            if (userProjectId.indexOf(projectsOverview[i].id) > -1) {
-              status = true
-            }
-            // add data to JSON object
-            allProjects.push({
-              id: projectsOverview[i].id,
-              title: projectsOverview[i].title,
-              summary: projectsOverview[i].onelinesummary,
-              cp: projectsOverview[i].contact_email,
-              userStatus: status
+          else {
+            res.render(lang+'/account/home', {
+              user: data
             });
           }
-
-          // render the page
-          res.render(lang+'/account/services', {
-            user: req.user,
-            project: allProjects
-          });
         }
-      ])
+      })
     } else {
       res.redirect('/login');
     }
@@ -219,9 +238,21 @@ module.exports = function (app, config, passport, i18n) {
 
   app.get('/security', function (req, res) {
     if (req.isAuthenticated()) {
-      res.render(lang+'/account/security', {
-        user: req.user // useful for view engine, useless for HTML
-      });
+      methods.getUserByEmail(req.user.email, function(data, err){
+        if (!err) {
+          if (data.verificationStatus == 1) {
+            console.log(data)
+            res.render(lang+'/account/security', {
+              user: data
+            })
+          }
+          else {
+            res.render(lang+'/account/home', {
+              user: data
+            });
+          }
+        }        
+      })
     } else {
       res.redirect('/login');
     }
@@ -474,16 +505,11 @@ module.exports = function (app, config, passport, i18n) {
 
   });
 
-  // todo: user registration with captcha
+  // ============= NEW USERS REGISTRATION ===========================
   app.get('/registration', function(req, res) {
     res.render(lang+'/account/registration')
   })
-
   app.post('/registration', function(req, res) {
-    // TODO:
-    // create gitlab account?
-    // send email to activate profile?
-
     // user data
     var curDate = new Date()
     var userData = {
@@ -497,27 +523,156 @@ module.exports = function (app, config, passport, i18n) {
       speciality: req.body.inputSpeciality,
       createdDate: curDate.toISOString().slice(0,10)
     }
-    // encrypt password
-    bcrypt.genSalt(saltRounds, function(err, salt) {
-      bcrypt.hash(req.body.inputPassword, salt, function(err, hash) {
-        // create account
-        var newAccount = {
-          profile: userData,
-          password: hash
-        }
+
+    let token
+    async.waterfall([
+      function(done) {
+        crypto.randomBytes(20, function(err, buf) {
+          token = buf.toString('hex');
+          done(err, token);
+        });
+      },
+      // encrypt password
+      function(token, done) {
+        bcrypt.genSalt(saltRounds, function(err, salt) {
+          bcrypt.hash(req.body.inputPassword, salt, function(err, hash) {
+            var newAccount = {
+              profile: userData,
+              password: hash,
+              verificationToken: token
+            }
+            done(err, newAccount)
+          });
+        });
+      },
+      // save data
+      function(newAccount, err) {
         methods.registerNewUser(newAccount, function(err){
           if (err) {
-            //req.flash('error', "Failed")
             req.flash('error', "Fehlgeschlagen")
           }
           else {
-            //req.flash('success', 'Your account has been created. Please log in.')
-            req.flash('success', 'Ihr Benutzerkonto wurde angelegt. Bitte melden Sie sich an.')
+            // send email
+            var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto"
+            var emailContent = "Lieber Nutzer,\n\n"+
+                "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart.\n"+ 
+                "Um Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+"\n"+
+                "Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+
+                "Sollten Sie sich selbst nicht mit Ihren Daten am Transferportal registriert haben, ignorieren Sie diese E-Mail bitte.\n\n"+mailSignature
+            
+            mailer.options.to = req.body.inputEmail;
+            mailer.options.subject = emailSubject;
+            mailer.options.text = emailContent;
+            mailer.transport.sendMail(mailer.options, function(err) {
+              if (err) {
+                console.log('cannot send email')
+                throw err
+              }
+            })
+            // user feedback
+            req.flash('success', 'Vielen Dank für Ihre Registrierung!'+'\r\n\r\n'+
+              'Wir haben Ihnen eine E-Mail an Ihre verwendete Adresse gesendet. Diese enthält einen Link zur Bestätigung Ihres Accounts.'+'\r\n'+
+              'Wenn Sie die Mail nicht in ihrem Postfach vorfinden, prüfen Sie bitte auch Ihren Spam-Ordner.')
           }
-          res.redirect('/account/registration');
+          res.redirect('/account/registration')
         })
-      });
-    });
+      }
+    ])
+  })
+
+  // ============= USER VERIFICATION ================================
+  app.get("/verifyAccount", function(req, res){
+    console.log(req.query)
+    methods.getUserIdByVerificationToken(req.query.token, function(userId, err){
+      if (userId) {
+        let userData = {
+          id: userId,
+          verificationStatus: 1
+        }
+        methods.verifyUserAccount(userData, function(err){
+          if (err) {
+            console.log("Error: "+err)
+            res.render(lang+'/account/verification', {
+              status: false
+            });
+          }
+          else {
+            // send welcome email after successful account verification
+            methods.getUserById(userId, function(data, err){
+              if (err) {
+                console.log("Error: "+err)
+              }
+              else {
+                // send email
+                var emailSubject = "Herzlich willkommen"
+                var emailContent = "Lieber Nutzer,\n\n"+
+                    "herzlich willkommen beim Transferportal der HFT Stuttgart!\n"+ 
+                    "Sie können nun alle Dienste des Portals nutzen.\n\n"+mailSignature
+                
+                mailer.options.to = data.email;
+                mailer.options.subject = emailSubject;
+                mailer.options.text = emailContent;
+                mailer.transport.sendMail(mailer.options, function(err) {
+                  if (err) {
+                    console.log('cannot send email')
+                    throw err
+                  }
+                })
+              }
+            })
+
+            res.render(lang+'/account/verification', {
+              status: true
+            });
+          }
+        })
+      }
+      else {
+        res.render(lang+'/account/verification', {
+          status: null
+        });
+      }
+    })
+  })
+  app.get("/resendVerificationEmail", function(req, res){
+    if (req.isAuthenticated()) {
+      var emailAddress = req.user.email
+      
+      methods.getUserIdByEmail(req.user.email, function(userId, err) {
+        if (!err) {
+          // get token
+          methods.getVerificationTokenByUserId(userId, function(token, err){
+            if (!err) {
+              if (token) {
+                // send email
+                var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto"
+                var emailContent = "Lieber Nutzer,\n\n"+
+                    "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart. "+ 
+                    "\nUm Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+
+                    "\n\nOhne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+mailSignature
+                
+                mailer.options.to = emailAddress;
+                mailer.options.subject = emailSubject;
+                mailer.options.text = emailContent;
+                mailer.transport.sendMail(mailer.options, function(err) {
+                  if (err) {
+                    console.log('cannot send email')
+                    throw err
+                  }
+                })
+                res.send(true)
+              }
+              else {
+                res.send(false)
+              }
+            }
+            else {
+              console.log(err)
+            }
+          })
+        }
+      })
+    }
   })
 
   app.get('/email/:email', function(req, res) {
diff --git a/views/DE/account/home.pug b/views/DE/account/home.pug
index fa11d3f7d186ba91c1f1bccae8307e5602df3e24..cf284f1a8fbcdf44738a476eed250a09357ff7c0 100644
--- a/views/DE/account/home.pug
+++ b/views/DE/account/home.pug
@@ -7,35 +7,44 @@ html(lang="de")
     link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css")
     link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous")
   body
-    div(class="container-fluid")
-        div(class="row min-vh-100 flex-column flex-md-row")
-            aside(class="col-12 col-md-2 p-0 flex-shrink-1")
-                nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2")
-                    div(class="collapse navbar-collapse")
-                        ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between")
-                            li(class="nav-item")
-                                a(class="nav-link pl-0 text-nowrap" href="#")
-                                    span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname}
-                            li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/profile")
-                                    i(class="fa fa-user fa-fw")
-                                    span(class="d-none d-md-inline") Benutzerprofil
-                            li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/security")
-                                    i(class="fa fa-lock fa-fw")
-                                    span(class="d-none d-md-inline") Sicherheitseinstellungen
-                            li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/services")
-                                    i(class="fa fa-tasks fa-fw")
-                                    span(class="d-none d-md-inline") Projekte und Dienste
-                            li(class="nav-item")
-                                a(class="nav-link pl-0" href="/logout")
-                                    i(class="fa fa-sign-out-alt fa-fw")
-                                    span(class="d-none d-md-inline") Logout
-            main(class="col bg-faded py-3 flex-grow-1")
-                p Willkommen im Benutzerkonto-Bereich des HFT Transferportals
-                p In diesem Bereich können Sie Ihr Benutzerkonto pflegen.<br/> Dazu finden Sie auf der linken Seite verschiedene Menüs.
-                p Bei Rückfragen kontaktieren Sie uns bitte unter: <a href="mailto:support-transfer@hft-stuttgart.de">support-transfer@hft-stuttgart.de</a>
+    div(class="container")
+        if user.verificationStatus == 0
+            div.alert.alert-warning.alert-dismissible
+                | Willkommen im Benutzerkonto-Bereich des HFT Transferportals
+                | <br/><br/>
+                | Wir haben Ihnen eine E-Mail an Ihre verwendete Adresse gesendet. Diese enthält einen Link zur Bestätigung Ihres Accounts.
+                | Wenn Sie die Mail nicht in ihrem Postfach vorfinden, prüfen Sie bitte auch Ihren Spam-Ordner.
+                | <br >Falls Sie keine E-Mail von uns erhalten haben, können Sie <a href="javascript:void(0);" onclick="verify();">diese hier</a> erneut anfordern.
+                div(class="spinner-border text-secondary", role="status", style="display: none")
+        else
+            div(class="row min-vh-100 flex-column flex-md-row")
+                aside(class="col-12 col-md-3 p-0 flex-shrink-1")
+                    nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2")
+                        div(class="collapse navbar-collapse")
+                            ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between")
+                                li(class="nav-item")
+                                    a(class="nav-link pl-0 text-nowrap" href="#")
+                                        span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname}
+                                li(class="nav-item")
+                                    a(class="nav-link pl-0" href="/profile")
+                                        i(class="fa fa-user fa-fw")
+                                        span(class="d-none d-md-inline") Benutzerprofil
+                                li(class="nav-item")
+                                    a(class="nav-link pl-0" href="/security")
+                                        i(class="fa fa-lock fa-fw")
+                                        span(class="d-none d-md-inline") Sicherheitseinstellungen
+                                li(class="nav-item")
+                                    a(class="nav-link pl-0" href="/services")
+                                        i(class="fa fa-tasks fa-fw")
+                                        span(class="d-none d-md-inline") Projekte und Dienste
+                                li(class="nav-item")
+                                    a(class="nav-link pl-0" href="/logout" style="color:red;")
+                                        i(class="fa fa-sign-out-alt fa-fw")
+                                        span(class="d-none d-md-inline") Logout
+                main(class="col bg-faded py-3 flex-grow-1")
+                    p Willkommen im Benutzerkonto-Bereich des HFT Transferportals
+                    p In diesem Bereich können Sie Ihr Benutzerkonto pflegen.<br/> Dazu finden Sie auf der linken Seite verschiedene Menüs.
+                    p Bei Rückfragen kontaktieren Sie uns bitte unter: <a href="mailto:support-transfer@hft-stuttgart.de">support-transfer@hft-stuttgart.de</a>
                 
     // jQuery
     script(src="https://code.jquery.com/jquery-3.3.1.min.js")
@@ -43,4 +52,25 @@ html(lang="de")
     // Bootstrap
     script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous")
     // M4_LAB
-    script(src="/js/headfoot.js")
\ No newline at end of file
+    script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js")
+    script.
+        // call verifyAccount
+        function verify() {
+            $(".spinner-border").show()
+            $.get( "/resendVerificationEmail", function( data ) {
+                console.log(data)
+                if (data) {
+                    alert( "Email sent!" )
+                }
+                else {
+                    alert("Please contact support-transfer@hft-stuttgart.de to verify your account.")
+                }
+            })
+            .fail(function() {
+                alert( "Something went wrong. Please try again." ) // todo: to DE
+            })
+            .always(function() {
+                $(".spinner-border").hide()
+            })
+            
+        }
\ No newline at end of file
diff --git a/views/DE/account/profile.pug b/views/DE/account/profile.pug
index 12f789894c9c8b1348e41bf12e12cd5c81d9433c..c69b3479e2fc89e6acfd72eb1e73944d47c4dd83 100644
--- a/views/DE/account/profile.pug
+++ b/views/DE/account/profile.pug
@@ -7,29 +7,29 @@ html(lang="de")
     link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css")
     link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous")
   body
-    div(class="container-fluid")
+    div(class="container")
         div(class="row min-vh-100 flex-column flex-md-row")
-            aside(class="col-12 col-md-2 p-0 flex-shrink-1")
+            aside(class="col-12 col-md-3 p-0 flex-shrink-1")
                 nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2")
                     div(class="collapse navbar-collapse")
                         ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between")
                             li(class="nav-item")
-                                a(class="nav-link pl-0 text-nowrap" href="#")
+                                a(class="nav-link pl-0 text-nowrap" href="/")
                                     span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname}
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/profile")
+                                a(class="nav-link pl-0" href="/profile")
                                     i(class="fa fa-user fa-fw" style="color:black;")
                                     span(class="d-none d-md-inline" style="color:black;") Benutzerprofil
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/security")
+                                a(class="nav-link pl-0" href="/security")
                                     i(class="fa fa-lock fa-fw")
                                     span(class="d-none d-md-inline") Sicherheitseinstellungen
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/services")
+                                a(class="nav-link pl-0" href="/services")
                                     i(class="fa fa-tasks fa-fw")
                                     span(class="d-none d-md-inline") Projekte und Dienste
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/logout")
+                                a(class="nav-link pl-0" href="/logout" style="color:red;")
                                     i(class="fa fa-sign-out-alt fa-fw")
                                     span(class="d-none d-md-inline") Logout
             main(class="col bg-faded py-3 flex-grow-1")
@@ -45,7 +45,7 @@ html(lang="de")
                     div(class="form-row")
                         div(class='form-group col-md-2')
                             label(for="title") Anrede
-                            select#inputSalutation(name="inputSalutation", class="form-control", , value=user.salutation)
+                            select#inputSalutation(name="inputSalutation", class="form-control", value=user.salutation)
                                 option(value="") - Anrede -
                                 option(value="Herr") Herr
                                 option(value="Frau") Frau
@@ -99,4 +99,4 @@ html(lang="de")
     // Bootstrap
     script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous")
     // M4_LAB
-    script(src="/js/headfoot.js")
\ No newline at end of file
+    script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js")
\ No newline at end of file
diff --git a/views/DE/account/registration.pug b/views/DE/account/registration.pug
index 3de3ed5a731a614fc8baa4eea95465e98a6df82f..64c796ea60df371673d41920af0d5ef04e9d6c2e 100644
--- a/views/DE/account/registration.pug
+++ b/views/DE/account/registration.pug
@@ -7,26 +7,6 @@ html(lang="de")
     link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css")
     link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous")
     style.
-        .collapse {
-            display: none;
-        }
-        .collapse.in {
-            display: block;
-        }
-        .collapsing {
-            position: relative;
-            height: 0;
-            overflow: hidden;
-            -webkit-transition-timing-function: ease;
-            -o-transition-timing-function: ease;
-            transition-timing-function: ease;
-            -webkit-transition-duration: .35s;
-            -o-transition-duration: .35s;
-            transition-duration: .35s;
-            -webkit-transition-property: height,visibility;
-            -o-transition-property: height,visibility;
-            transition-property: height,visibility;
-        }
         .warning {
             color: red;
             font-size: 11px;
@@ -94,4 +74,4 @@ html(lang="de")
     // M4_LAB
     script(src="/js/generalFunction.js")
     script(src="/js/registration.js")
-    script(src="/js/headfoot.js")
\ No newline at end of file
+    script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js")
\ No newline at end of file
diff --git a/views/DE/account/security.pug b/views/DE/account/security.pug
index 15c438871580fd7d9edc0ffdfef78a0bbc531827..16b9458acc3873ac1e818716938ede792897d59c 100644
--- a/views/DE/account/security.pug
+++ b/views/DE/account/security.pug
@@ -11,29 +11,29 @@ html(lang="de")
             font-size: 11px;
         }
   body
-    div(class="container-fluid")
+    div(class="container")
         div(class="row min-vh-100 flex-column flex-md-row")
-            aside(class="col-12 col-md-2 p-0 flex-shrink-1")
+            aside(class="col-12 col-md-3 p-0 flex-shrink-1")
                 nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2")
                     div(class="collapse navbar-collapse")
                         ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between")
                             li(class="nav-item")
-                                a(class="nav-link pl-0 text-nowrap" href="#")
+                                a(class="nav-link pl-0 text-nowrap" href="/")
                                     span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname}
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/profile")
+                                a(class="nav-link pl-0" href="/profile")
                                     i(class="fa fa-user fa-fw")
                                     span(class="d-none d-md-inline") Benutzerprofil
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/security")
+                                a(class="nav-link pl-0" href="/security")
                                     i(class="fa fa-lock fa-fw" style="color:black;")
                                     span(class="d-none d-md-inline" style="color:black;") Sicherheitseinstellungen
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/services")
+                                a(class="nav-link pl-0" href="/services")
                                     i(class="fa fa-tasks fa-fw")
                                     span(class="d-none d-md-inline") Projekte und Dienste
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/logout")
+                                a(class="nav-link pl-0" href="/logout" style="color:red;")
                                     i(class="fa fa-sign-out-alt fa-fw")
                                     span(class="d-none d-md-inline") Logout
             main(class="col bg-faded py-3 flex-grow-1")
@@ -64,7 +64,7 @@ html(lang="de")
                             span#message
                             div(class="invalid-feedback") Bitte füllen Sie dieses Feld aus.
                     input#updateBtn(type="submit", class="btn btn-primary", value="Passwort ändern" disabled)
-                    
+                        
     // jQuery
     script(src="https://code.jquery.com/jquery-3.3.1.min.js")
     script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous")
@@ -73,7 +73,7 @@ html(lang="de")
     // M4_LAB
     script(src="/js/security.js")
     script(src="/js/generalFunction.js")
-    script(src="/js/headfoot.js")
+    script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js")
     script.
         // check input fields
         'use strict';
diff --git a/views/DE/account/services.pug b/views/DE/account/services.pug
index 8b99f630e68a19498f6f833937b1296b580c962e..e1b658876c3ab3c7a7a70bbb4694dbb3ecfbe576 100644
--- a/views/DE/account/services.pug
+++ b/views/DE/account/services.pug
@@ -7,29 +7,29 @@ html(lang="de")
     link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css")
     link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous")
   body
-    div(class="container-fluid")
+    div(class="container")
         div(class="row min-vh-100 flex-column flex-md-row")
-            aside(class="col-12 col-md-2 p-0 flex-shrink-1")
+            aside(class="col-12 col-md-3 p-0 flex-shrink-1")
                 nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2")
                     div(class="collapse navbar-collapse")
                         ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between")
                             li(class="nav-item")
-                                a(class="nav-link pl-0 text-nowrap" href="#")
+                                a(class="nav-link pl-0 text-nowrap" href="/")
                                     span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname}
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/profile")
+                                a(class="nav-link pl-0" href="/profile")
                                     i(class="fa fa-user fa-fw")
                                     span(class="d-none d-md-inline") Benutzerprofil
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/security")
+                                a(class="nav-link pl-0" href="/security")
                                     i(class="fa fa-lock fa-fw")
                                     span(class="d-none d-md-inline") Sicherheitseinstellungen
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/account/services")
+                                a(class="nav-link pl-0" href="/services")
                                     i(class="fa fa-tasks fa-fw" style="color:black;")
                                     span(class="d-none d-md-inline" style="color:black;") Projekte und Dienste
                             li(class="nav-item")
-                                a(class="nav-link pl-0" href="/logout")
+                                a(class="nav-link pl-0" href="/logout" style="color:red;")
                                     i(class="fa fa-sign-out-alt fa-fw")
                                     span(class="d-none d-md-inline") Logout
             main(class="col bg-faded py-3 flex-grow-1")
@@ -41,4 +41,4 @@ html(lang="de")
     // Bootstrap
     script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous")
     // M4_LAB
-    script(src="/js/headfoot.js")
\ No newline at end of file
+    script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js")
\ No newline at end of file
diff --git a/views/DE/account/verification.pug b/views/DE/account/verification.pug
new file mode 100644
index 0000000000000000000000000000000000000000..575e8e7455cf99714a174d4de9c8c6edec5e6199
--- /dev/null
+++ b/views/DE/account/verification.pug
@@ -0,0 +1,35 @@
+doctype html
+html(lang="de")
+  head
+    title= "User Verification"
+    meta(charset="UTF-8")
+    meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no")
+    link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css")
+    style.
+      .container { 
+        height: 400px;
+        position: relative;
+      }
+      .center {
+        margin: 0;
+        position: absolute;
+        top: 50%;
+        left: 50%;
+        -ms-transform: translate(-50%, -50%);
+        transform: translate(-50%, -50%);
+      }
+  body
+    div(class="container")
+      div(class="center", align="center")
+        a(href="https://m4lab.hft-stuttgart.de")
+          img(src="https://transfer.hft-stuttgart.de/images/demo/m4lab_logo.jpg", class="img-responsive center-block", width="185", height="192")
+        br
+        br
+        if status == true
+          p(class="h5") Ihr Benutzerkonto wurde bestätigt. Bitte <a href="https://m4lab.hft-stuttgart.de/account/">melden Sie sich an</a>.
+        else if status == false
+          p(class="h5") Ihr Benutzerkonto konnte nicht bestätigt werden, bitte versuchen Sie es erneut.
+        else
+          p(class="h5") Ihr Benutzerkonto wude nicht gefunden.
+    // Bootstrap
+    script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous")
\ No newline at end of file