diff --git a/src/app/components/fragments/header/header.component.html b/src/app/components/fragments/header/header.component.html
index d4ef907110c1ba91af3daa1b23869b4b4e019cd1..f7d6889ff5de5063f1e25e40f5978e231a729e7e 100644
--- a/src/app/components/fragments/header/header.component.html
+++ b/src/app/components/fragments/header/header.component.html
@@ -1,6 +1,9 @@
 <mat-toolbar color="primary">
   <mat-toolbar-row>
-    <span>ARSnova</span>
+    <button *ngIf="router.url !== '/home'" (click)="goBack()" mat-icon-button>
+      <mat-icon aria-label="Go back">keyboard_arrow_left</mat-icon>
+    </button>
+    <span class="app-title" (click)="goToHomepage()">ARSnova</span>
     <span class="fill-remaining-space"></span>
     <mat-menu #appMenu="matMenu" [overlapTrigger]="false">
       <button mat-menu-item (click)="logout()">
diff --git a/src/app/components/fragments/header/header.component.scss b/src/app/components/fragments/header/header.component.scss
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..939288c18f62ad57cd71c091830ce6273d75608e 100644
--- a/src/app/components/fragments/header/header.component.scss
+++ b/src/app/components/fragments/header/header.component.scss
@@ -0,0 +1,3 @@
+.app-title {
+  cursor: pointer;
+}
diff --git a/src/app/components/fragments/header/header.component.ts b/src/app/components/fragments/header/header.component.ts
index 557177d444db5557e0e48f82b83b9085eee2c894..222744b119fc8911eb8c7cf77a96195b03603114 100644
--- a/src/app/components/fragments/header/header.component.ts
+++ b/src/app/components/fragments/header/header.component.ts
@@ -3,6 +3,8 @@ import { AuthenticationService } from '../../../services/http/authentication.ser
 import { NotificationService } from '../../../services/util/notification.service';
 import { Router } from '@angular/router';
 import { User } from '../../../models/user';
+import { UserRole } from '../../../models/user-roles.enum';
+import { Location } from '@angular/common';
 
 @Component({
   selector: 'app-header',
@@ -12,13 +14,14 @@ import { User } from '../../../models/user';
 export class HeaderComponent implements OnInit {
   user: User;
 
-  constructor(private authenticationService: AuthenticationService,
+  constructor(public location: Location,
+              private authenticationService: AuthenticationService,
               private notification: NotificationService,
               public router: Router) {
   }
 
   ngOnInit() {
-    // Subscribe to user data
+    // Subscribe to user data (update component's user when user data changes: e.g. login, logout)
     this.authenticationService.watchUser.subscribe(newUser => this.user = newUser);
   }
 
@@ -27,4 +30,25 @@ export class HeaderComponent implements OnInit {
     this.notification.show(`Logged out`);
     this.router.navigate(['/']);
   }
+
+  goBack() {
+    this.location.back();
+  }
+
+  goToHomepage() {
+    const role: UserRole = this.user !== undefined ? this.user.role : undefined;
+    let route: string;
+
+    switch (role) {
+      case UserRole.PARTICIPANT:
+        route = '/participant';
+        break;
+      case UserRole.CREATOR:
+        route = '/creator';
+        break;
+      default:
+        route = '/';
+    }
+    this.router.navigate([route]);
+  }
 }