Index: src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -2,4 +2,5 @@
 import { Routes, RouterModule } from '@angular/router';
 import { AuthCallbackComponent } from './auth-callback/auth-callback.component';
+import { AuthorizedModeratorGuard } from './core/guards/authorized-moderator.guard';
 import { AuthorizedGuard } from './core/guards/authorized.guard';
 
@@ -9,4 +10,9 @@
     canActivate: [AuthorizedGuard],
     loadChildren: () => import('./modules/questioning/questioning.module').then((x) => x.QuestioningModule)
+  },
+  {
+    path: 'moderating',
+    canActivate: [AuthorizedGuard, AuthorizedModeratorGuard],
+    loadChildren: () => import('./modules/moderating/moderating.module').then((x) => x.ModeratingModule)
   },
   {
Index: src/Clients/Angular/finki-chattery/src/app/core/guards/authorized-moderator.guard.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/guards/authorized-moderator.guard.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/core/guards/authorized-moderator.guard.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,14 @@
+import { Injectable } from '@angular/core';
+import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
+import { AuthService } from '../services';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class AuthorizedModeratorGuard implements CanActivate {
+  constructor(private auth: AuthService) {}
+
+  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
+    return this.auth.isModerator();
+  }
+}
Index: src/Clients/Angular/finki-chattery/src/app/core/services/auth.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/services/auth.service.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/auth.service.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -64,4 +64,8 @@
   }
 
+  public isModerator(): boolean {
+    return this.user !== null && this.user.userType === ApplicationUserType.Moderator;
+  }
+
   public currentUser(): ApplicationUser | null {
     return this.user;
Index: src/Clients/Angular/finki-chattery/src/app/core/services/redirect.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/services/redirect.service.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/redirect.service.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -21,4 +21,7 @@
         case ApplicationUserType.Teacher:
           break;
+        case ApplicationUserType.Moderator:
+          this.router.navigateByUrl(`moderating/categories`);
+          break;
       }
     }
Index: src/Clients/Angular/finki-chattery/src/app/core/state/category-facade.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-facade.service.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/core/state/category-facade.service.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -6,5 +6,5 @@
 
 import { CategoryStateViewModel } from 'src/app/shared-app/models';
-import { EffectStartedWorking, GetCategoriesState } from './category-state/category.actions';
+import { AddCategory, EffectStartedWorking, GetCategoriesState } from './category-state/category.actions';
 import { categoriesStateQuery } from './category-state/category.selectors';
 import { CategoryState } from './category-state/category.state';
@@ -17,17 +17,5 @@
 
   constructor(private store: Store<CategoryState>) {
-    this.effectWorking$ = this.store.select(categoriesStateQuery.effectWorking).pipe(
-      filter((effect) => effect !== null),
-      map((effect) => {
-        if (effect instanceof HttpErrorResponse) {
-          throw effect;
-        } else {
-          return effect;
-        }
-      }),
-      catchError((err) => {
-        return throwError(err);
-      })
-    );
+    this.effectWorking$ = this.store.select(categoriesStateQuery.effectWorking).pipe(filter((effect) => effect !== null));
   }
 
@@ -38,4 +26,8 @@
   public fetchCategories(): void {
     this.dispatchEffect(new GetCategoriesState());
+  }
+
+  public addNewCategory(name: string): void {
+    this.dispatchEffect(new AddCategory(name));
   }
 
Index: src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category-state-request.models.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category-state-request.models.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category-state-request.models.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,3 @@
+export class CreateCategoryRequest {
+  constructor(public name: string) {}
+}
Index: src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.actions.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.actions.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.actions.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -2,9 +2,10 @@
 import { Action } from '@ngrx/store';
 import { CategoryStateViewModel } from 'src/app/shared-app/models';
-import { CategoryStateResponse } from './category-state.models';
 
 export enum CategoryActionTypes {
   GetCategoriesState = '[Category] Get state',
   GetCategoriesStateSuccess = '[Category] Get state success',
+  AddCategory = '[Category] AddCategory',
+  AddCategorySuccess = '[Category] AddCategorySuccess success',
   EffectStartedWorking = '[Category] Effect Started Working',
   EffectFinishedWorking = '[Category] Effect Finished Working',
@@ -22,4 +23,16 @@
 
   constructor(public payload: CategoryStateViewModel[]) {}
+}
+
+export class AddCategory implements Action {
+  readonly type = CategoryActionTypes.AddCategory;
+
+  constructor(public name: string) {}
+}
+
+export class AddCategorySuccess implements Action {
+  readonly type = CategoryActionTypes.AddCategorySuccess;
+
+  constructor(public payload: CategoryStateViewModel) {}
 }
 
@@ -42,3 +55,8 @@
 }
 
-export type CategoryAction = GetCategoriesStateSuccess | EffectStartedWorking | EffectFinishedWorking | EffectFinishedWorkingError;
+export type CategoryAction =
+  | GetCategoriesStateSuccess
+  | AddCategorySuccess
+  | EffectStartedWorking
+  | EffectFinishedWorking
+  | EffectFinishedWorkingError;
Index: src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.effects.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.effects.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.effects.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -1,10 +1,13 @@
 import { Injectable } from '@angular/core';
 import { Actions, createEffect, ofType } from '@ngrx/effects';
-import { catchError, switchMap } from 'rxjs/operators';
+import { catchError, mergeMap, switchMap } from 'rxjs/operators';
 import { TranslateFromJsonService } from 'src/app/shared-app/services';
 
 import { BaseApiService } from 'src/app/shared-app/services/base-api.service';
+import { CreateCategoryRequest } from './category-state-request.models';
 import { CategoryStateResponse } from './category-state.models';
 import {
+  AddCategory,
+  AddCategorySuccess,
   CategoryActionTypes,
   EffectFinishedWorking,
@@ -35,3 +38,18 @@
     );
   });
+
+  addCategory$ = createEffect(() => {
+    return this.actions$.pipe(
+      ofType<AddCategory>(CategoryActionTypes.AddCategory),
+      mergeMap((action) => {
+        return this.api.post<string>(`v1/categories`, new CreateCategoryRequest(action.name)).pipe(
+          switchMap((state) => [
+            new AddCategorySuccess(CategoriesMapper.ToCategoryStateViewModel(state, action.name, this.translate)),
+            new EffectFinishedWorking()
+          ]),
+          catchError((err) => [new EffectFinishedWorkingError(err)])
+        );
+      })
+    );
+  });
 }
Index: src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.mapper.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.mapper.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.mapper.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -10,3 +10,7 @@
     return categoriesResponse.map((x) => new CategoryStateViewModel(x.uid, x.name, translate.instant(x.name)));
   }
+
+  public static ToCategoryStateViewModel(uid: string, name: string, translate: TranslateFromJsonService): CategoryStateViewModel {
+    return new CategoryStateViewModel(uid, name, translate.instant(name));
+  }
 }
Index: src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.reducers.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.reducers.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.reducers.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -9,4 +9,10 @@
         categories: action.payload
       };
+    case CategoryActionTypes.AddCategorySuccess: {
+      return {
+        ...state,
+        categories: [action.payload, ...state.categories]
+      };
+    }
     case CategoryActionTypes.EffectStartedWorking: {
       return {
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.html	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.html	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,14 @@
+<div class="margin-xl">
+  <h1>Categories</h1>
+  <app-button [buttonType]="ButtonType.CallToAction" (action)="createNewCategory()">Create new category</app-button>
+  <hr />
+  <table mat-table [dataSource]="categories" class="mat-elevation-z8">
+    <ng-container matColumnDef="name">
+      <th mat-header-cell *matHeaderCellDef>Name</th>
+      <td mat-cell *matCellDef="let element">{{ element.translatedName }}</td>
+    </ng-container>
+
+    <tr mat-header-row *matHeaderRowDef="categoriesColumns"></tr>
+    <tr mat-row *matRowDef="let row; columns: categoriesColumns"></tr>
+  </table>
+</div>
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.spec.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.spec.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CategoriesMainComponent } from './categories-main.component';
+
+describe('CategoriesMainComponent', () => {
+  let component: CategoriesMainComponent;
+  let fixture: ComponentFixture<CategoriesMainComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [ CategoriesMainComponent ]
+    })
+    .compileComponents();
+  });
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(CategoriesMainComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/categories-main/categories-main.component.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,37 @@
+import { HttpErrorResponse } from '@angular/common/http';
+import { Component, OnInit } from '@angular/core';
+import { map } from 'rxjs/operators';
+import { NotificationService } from 'src/app/core/services/notification.service';
+import { CategoryFacadeService } from 'src/app/core/state/category-facade.service';
+import { ButtonType } from 'src/app/shared-app/components/generic/button/button.models';
+import { ModeratingDialogService } from '../../services/moderating-dialog.service';
+
+@Component({
+  selector: 'app-categories-main',
+  templateUrl: './categories-main.component.html',
+  styleUrls: ['./categories-main.component.scss']
+})
+export class CategoriesMainComponent implements OnInit {
+  public categories = this.categoriesFacade.getCategories().pipe(map((x) => (x !== null ? x : [])));
+  public categoriesColumns: string[] = ['name'];
+  public ButtonType = ButtonType;
+
+  constructor(
+    private categoriesFacade: CategoryFacadeService,
+    private dialog: ModeratingDialogService,
+    private notification: NotificationService
+  ) {}
+
+  ngOnInit(): void {
+    this.categoriesFacade.fetchCategories();
+    this.categoriesFacade.effectWorking$.subscribe((effect) => {
+      if (effect instanceof HttpErrorResponse) {
+        this.notification.handleErrorsNotification(effect.error);
+      }
+    });
+  }
+
+  createNewCategory(): void {
+    this.dialog.createNewCategory();
+  }
+}
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.html	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.html	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,17 @@
+<h1 mat-dialog-title>{{ 'create-new-category' | translate }}</h1>
+<mat-dialog-content>
+  <form [formGroup]="formGroup">
+    <mat-form-field class="full-width margin-bottom-sm" appearance="fill" appHandleInputFormErrors>
+      <mat-label>{{ 'category-title' | translate }}</mat-label>
+      <input matInput [formControl]="textField" />
+    </mat-form-field>
+  </form>
+</mat-dialog-content>
+<mat-dialog-actions>
+  <app-button class="margin-right-sm" [buttonType]="ButtonType.Basic" (action)="dialogRef.close()">
+    {{ 'close-button' | translate }}
+  </app-button>
+  <app-button [buttonType]="ButtonType.CallToAction" [disabled]="!formGroup.valid" (action)="submit()">
+    {{ 'submit-button' | translate }}
+  </app-button>
+</mat-dialog-actions>
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.spec.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.spec.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CreateCategoryDialogComponent } from './create-category-dialog.component';
+
+describe('CreateCategoryDialogComponent', () => {
+  let component: CreateCategoryDialogComponent;
+  let fixture: ComponentFixture<CreateCategoryDialogComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [ CreateCategoryDialogComponent ]
+    })
+    .compileComponents();
+  });
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(CreateCategoryDialogComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/create-category-dialog/create-category-dialog.component.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,29 @@
+import { Component, OnInit } from '@angular/core';
+import { FormControl, Validators, FormGroup } from '@angular/forms';
+import { MatDialogRef } from '@angular/material/dialog';
+import { CategoryFacadeService } from 'src/app/core/state/category-facade.service';
+import { ButtonType } from 'src/app/shared-app/components/generic/button/button.models';
+
+@Component({
+  selector: 'app-create-category-dialog',
+  templateUrl: './create-category-dialog.component.html',
+  styleUrls: ['./create-category-dialog.component.scss']
+})
+export class CreateCategoryDialogComponent implements OnInit {
+  public ButtonType = ButtonType;
+  public textField = new FormControl('', [Validators.required, Validators.maxLength(500)]);
+  public formGroup: FormGroup;
+
+  constructor(public dialogRef: MatDialogRef<CreateCategoryDialogComponent>, private categoryFacade: CategoryFacadeService) {
+    this.formGroup = new FormGroup({
+      text: this.textField
+    });
+  }
+
+  ngOnInit(): void {}
+
+  submit(): void {
+    this.categoryFacade.addNewCategory(this.textField.value);
+    this.dialogRef.close();
+  }
+}
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/moderating-components.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/moderating-components.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/components/moderating-components.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,4 @@
+import { CategoriesMainComponent } from './categories-main/categories-main.component';
+import { CreateCategoryDialogComponent } from './create-category-dialog/create-category-dialog.component';
+
+export const MODERATING_COMPONENTS: any[] = [CategoriesMainComponent, CreateCategoryDialogComponent];
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/moderating.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/moderating.module.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/moderating.module.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,10 @@
+import { NgModule } from '@angular/core';
+import { SharedAppModule } from 'src/app/shared-app/shared-app.module';
+import { MODERATING_COMPONENTS } from './components/moderating-components';
+import { ModeratingRoutingModule } from './moderating.routes';
+
+@NgModule({
+  declarations: [MODERATING_COMPONENTS],
+  imports: [SharedAppModule, ModeratingRoutingModule]
+})
+export class ModeratingModule {}
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/moderating.routes.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/moderating.routes.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/moderating.routes.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,16 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { CategoriesMainComponent } from './components/categories-main/categories-main.component';
+
+const routes: Routes = [
+  {
+    component: CategoriesMainComponent,
+    path: 'categories'
+  }
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule]
+})
+export class ModeratingRoutingModule {}
Index: src/Clients/Angular/finki-chattery/src/app/modules/moderating/services/moderating-dialog.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/moderating/services/moderating-dialog.service.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
+++ src/Clients/Angular/finki-chattery/src/app/modules/moderating/services/moderating-dialog.service.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -0,0 +1,21 @@
+import { Injectable } from '@angular/core';
+import { MatDialog, MatDialogRef } from '@angular/material/dialog';
+import { Observable } from 'rxjs';
+import { CreateCategoryDialogComponent } from '../components/create-category-dialog/create-category-dialog.component';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class ModeratingDialogService {
+  constructor(private dialog: MatDialog) {}
+
+  public createNewCategory(): Observable<any> {
+    let dialogRef: MatDialogRef<CreateCategoryDialogComponent>;
+    dialogRef = this.dialog.open(CreateCategoryDialogComponent, {
+      width: '650px',
+      height: 'auto'
+    });
+
+    return dialogRef.afterClosed();
+  }
+}
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.html	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.html	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -16,5 +16,5 @@
       'header-ask-question' | translate
     }}</app-button>
-    <app-button [matMenuTriggerFor]="menu" class="margin-y-xs" *ngIf="auth.isLoggedIn()" [buttonType]="ButtonType.Basic">{{
+    <app-button [matMenuTriggerFor]="menu" class="margin-y-xs" *ngIf="auth.isStudent()" [buttonType]="ButtonType.Basic">{{
       'header-student-questions' | translate
     }}</app-button>
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.ts	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.ts	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -28,4 +28,7 @@
       this.router.navigateByUrl('questioning/preview');
     }
+    if (this.auth.isModerator()) {
+      this.router.navigateByUrl('moderating/categories');
+    }
   }
 
Index: src/Clients/Angular/finki-chattery/src/assets/translations/en.json
===================================================================
--- src/Clients/Angular/finki-chattery/src/assets/translations/en.json	(revision fcc308081d20fa447cc6c3c173092078ab635664)
+++ src/Clients/Angular/finki-chattery/src/assets/translations/en.json	(revision f3c4950cc1a46557f6c15359e067de8c9e5e179a)
@@ -81,4 +81,7 @@
   "AnswerAlreadyUpvoted": "You have already upvoted this answer",
   "AnswerAlreadyDownvoted": "You have already downvoted this answer",
-  "StudentHasBadReputation": "You have bad reputation and can not vote"
+  "StudentHasBadReputation": "You have bad reputation and can not vote",
+  "CategoryNameAlreadyExists": "Category with that name already exists",
+  "category-title": "Category title",
+  "create-new-category": "Create new category"
 }
