Index: src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -6,11 +6,17 @@
 const routes: Routes = [
   {
+    path: 'questioning',
+    canActivate: [AuthorizedGuard],
+    loadChildren: () => import('./modules/questioning/questioning.module').then((x) => x.QuestioningModule)
+  },
+  {
     path: 'auth-callback',
+    pathMatch: 'full',
     component: AuthCallbackComponent
   },
   {
-    path: 'questioning',
-    canActivate: [AuthorizedGuard],
-    loadChildren: () => import('./modules/questioning/questioning.module').then((x) => x.QuestioningModule)
+    path: '',
+    pathMatch: 'full',
+    redirectTo: 'questioning/preview'
   },
   {
Index: src/Clients/Angular/finki-chattery/src/app/core/core.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/core.module.ts	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/core/core.module.ts	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -9,5 +9,4 @@
 import { SharedMaterialModule } from '../shared-material/shared-material.module';
 import { COMPONENTS } from './components/components';
-import { GUARDS } from './guards/guards';
 import { LoaderInterceptor } from './interceptors/loader.interceptor';
 import { reducers } from './state';
@@ -20,5 +19,4 @@
   declarations: [COMPONENTS],
   providers: [
-    GUARDS,
     { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },
     { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true }
Index: c/Clients/Angular/finki-chattery/src/app/core/guards/guards.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/guards/guards.ts	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ 	(revision )
@@ -1,1 +1,0 @@
-export const GUARDS: any[] = [];
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 d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/auth.service.ts	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -1,8 +1,8 @@
 import { Injectable } from '@angular/core';
-import { User, UserManager } from 'oidc-client';
+import { User, UserManager, WebStorageStateStore } from 'oidc-client';
 import { Observable, of } from 'rxjs';
 
 import { environment } from '@env/environment';
-import { ApplicationUser, SelfUserResponse } from 'src/app/shared-app/models';
+import { ApplicationUser, ApplicationUserType, SelfUserResponse } from 'src/app/shared-app/models';
 import { BaseApiService } from 'src/app/shared-app/services/base-api.service';
 
@@ -17,5 +17,8 @@
     response_type: 'id_token token',
     scope: 'openid app.api.finki-chattery profile',
-    post_logout_redirect_uri: window.location.origin
+    post_logout_redirect_uri: window.location.origin,
+    filterProtocolClaims: true,
+    loadUserInfo: true,
+    userStore: new WebStorageStateStore({ store: window.localStorage })
   });
 
@@ -23,5 +26,16 @@
   public oidcUser: User | null = null;
 
-  constructor(private baseApi: BaseApiService) {}
+  constructor(private baseApi: BaseApiService) {
+    this.userManager.getUser().then((user) => {
+      this.oidcUser = user;
+      this.user = new ApplicationUser(
+        user?.profile.id,
+        user?.profile.userType,
+        user?.profile.emailAddress,
+        user?.profile.username,
+        user?.profile.isVerified
+      );
+    });
+  }
 
   public login(): void {
@@ -38,4 +52,8 @@
     }
     return false;
+  }
+
+  public isStudent(): boolean {
+    return this.user?.userType === ApplicationUserType.Student;
   }
 
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.html	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.html	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -1,5 +1,5 @@
 <form class="example-container" [formGroup]="questionFormGroup">
-  <mat-form-field class="full-width" appearance="standard" appHandleInputFormErrors>
-    <mat-label>STAVI TRANSLATE</mat-label>
+  <mat-form-field class="full-width margin-bottom-sm" appearance="fill" appHandleInputFormErrors>
+    <mat-label>{{ 'ask-question-question-title' | translate }}</mat-label>
     <input matInput [formControl]="titleForm" />
   </mat-form-field>
@@ -7,6 +7,8 @@
   <editor
     matInput
+    class="margin-bottom-sm"
     [formControl]="textForm"
     [init]="{
+      apiKey: 'fx28x0d64jeufa35u7mcd80fgveayg5c4ap9gnr6posehzny',
       menubar: false,
       plugins: [
@@ -16,5 +18,5 @@
       ],
       toolbar:
-        'undo redo | formatselect | bold italic backcolor | \
+        'undo redo | formatselect | bold italic backcolor | code | \
         alignleft aligncenter alignright alignjustify | \
         bullist numlist outdent indent | removeformat | help'
@@ -22,15 +24,17 @@
   ></editor>
   <mat-error *ngIf="textForm?.touched && textForm?.errors?.required">{{ 'not-found' | translate }}</mat-error>
-  <mat-error *ngIf="textForm?.touched && textForm?.errors?.maxlength">STAVI TRANSL ATE MAX LENGTH</mat-error>
+  <mat-error *ngIf="textForm?.touched && textForm?.errors?.maxlength">{{
+    'error-message-max-length' | translate: { maxlength: textForm?.errors?.maxlength?.requiredLength }
+  }}</mat-error>
 
-  <mat-form-field class="full-width" appearance="standard" appHandleInputFormErrors>
-    <mat-label>STAVI TRANSLATE</mat-label>
+  <mat-form-field class="full-width margin-bottom-sm" appearance="fill" appHandleInputFormErrors>
+    <mat-label>{{ 'ask-question-categories' | translate }}</mat-label>
     <mat-select [formControl]="categoriesForm" multiple>
-      <mat-option *ngFor="let category of categoriesList" [value]="category.uid">{{ category.name }}</mat-option>
+      <mat-option *ngFor="let category of categoriesList$ | async" [value]="category.uid">{{ category.translatedName }}</mat-option>
     </mat-select>
   </mat-form-field>
 
   <app-button [disabled]="questionFormGroup.invalid" [buttonType]="ButtonType.CallToAction" (action)="askQuestion()">
-    {{ 'not-found' | translate }}
+    {{ 'ask-question-ask-button' | translate }}
   </app-button>
 </form>
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.scss
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.scss	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.scss	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -1,3 +1,0 @@
-.full-width {
-  width: 100%;
-}
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.ts	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.ts	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -1,7 +1,8 @@
 import { Component, OnInit } from '@angular/core';
 import { FormControl, FormGroup, Validators } from '@angular/forms';
+import { Router } from '@angular/router';
 
+import { CategoryFacadeService } from 'src/app/core/state/category-facade.service';
 import { ButtonType } from 'src/app/shared-app/components/generic/button/button.models';
-import { CategoryViewModel } from 'src/app/shared-app/models';
 import { AskQuestionRequest } from '../../models/questioning-request.models';
 import { QuestioningApiService } from '../../services/questioning-api.service';
@@ -16,18 +17,9 @@
   public textForm = new FormControl('', [Validators.required, Validators.maxLength(4000)]);
   public categoriesForm = new FormControl([]);
-
   public questionFormGroup: FormGroup;
   public ButtonType = ButtonType;
+  public categoriesList$ = this.categoriesFacade.getCategories();
 
-  // TODO: PULL FROM ENDPOINT OR FROM STORE (BETTER FROM STORE)
-  public categoriesList: CategoryViewModel[] = [
-    new CategoryViewModel('123', 'test'),
-    new CategoryViewModel('345', 'test 2'),
-    new CategoryViewModel('345', 'test 3'),
-    new CategoryViewModel('345', 'test 4'),
-    new CategoryViewModel('345', 'test 5')
-  ];
-
-  constructor(private api: QuestioningApiService) {
+  constructor(private api: QuestioningApiService, private categoriesFacade: CategoryFacadeService, private router: Router) {
     this.questionFormGroup = new FormGroup({
       title: this.titleForm,
@@ -41,5 +33,7 @@
   public askQuestion(): void {
     const body = new AskQuestionRequest(this.titleForm.value, this.textForm.value, this.categoriesForm.value);
-    this.api.askQuestion(body).subscribe(() => {});
+    this.api.askQuestion(body).subscribe((questionUid) => {
+      this.router.navigateByUrl(`questioning/${questionUid}`);
+    });
   }
 }
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-general/questioning-general.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-general/questioning-general.component.ts	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-general/questioning-general.component.ts	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -1,3 +1,4 @@
 import { Component, OnInit } from '@angular/core';
+import { CategoryFacadeService } from 'src/app/core/state/category-facade.service';
 
 @Component({
@@ -7,6 +8,8 @@
 })
 export class QuestioningGeneralComponent implements OnInit {
-  constructor() {}
+  constructor(private categoriesFacade: CategoryFacadeService) {}
 
-  ngOnInit(): void {}
+  ngOnInit(): void {
+    this.categoriesFacade.fetchCategories();
+  }
 }
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-preview-general/questions-preview-general.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-preview-general/questions-preview-general.component.ts	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-preview-general/questions-preview-general.component.ts	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -17,8 +17,7 @@
   questionsSortByForm = new FormControl(PreviewQuestionsOrderEnum.Latest);
 
-  constructor(private categoriesFacade: CategoryFacadeService, private questionFacade: QuestionFacadeService, private router: Router) {}
+  constructor(private questionFacade: QuestionFacadeService, private router: Router) {}
 
   ngOnInit(): void {
-    this.categoriesFacade.fetchCategories();
     this.questionFacade.fetchPreviewQuestions(PreviewQuestionsOrderEnum.Latest);
     this.questionsSortByForm.valueChanges.subscribe((value: PreviewQuestionsOrderEnum) => {
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/services/questioning-api.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/services/questioning-api.service.ts	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/services/questioning-api.service.ts	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -13,5 +13,5 @@
   }
 
-  askQuestion(body: AskQuestionRequest): Observable<void> {
+  askQuestion(body: AskQuestionRequest): Observable<string> {
     return this.post('v1/questions', body);
   }
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 d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.html	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -2,4 +2,9 @@
   <span>FinkiChattery</span>
   <span class="right"></span>
-  <app-button *ngIf="auth.isLoggedIn()" (action)="logout()" [buttonType]="ButtonType.CallToAction">Logout</app-button>
+  <app-button class="margin-y-xs" *ngIf="auth.isStudent()" (action)="askQuestion()" [buttonType]="ButtonType.CallToAction">{{
+    'header-ask-question' | translate
+  }}</app-button>
+  <app-button class="margin-y-xs" *ngIf="auth.isLoggedIn()" (action)="logout()" [buttonType]="ButtonType.Basic">{{
+    'header-logout' | translate
+  }}</app-button>
 </mat-toolbar>
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 d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.ts	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -1,3 +1,4 @@
 import { Component, OnInit } from '@angular/core';
+import { Router } from '@angular/router';
 import { AuthService } from 'src/app/core/services';
 import { ButtonType } from '../button/button.models';
@@ -11,5 +12,5 @@
   ButtonType = ButtonType;
 
-  constructor(public auth: AuthService) {}
+  constructor(public auth: AuthService, private router: Router) {}
 
   ngOnInit(): void {}
@@ -18,3 +19,7 @@
     this.auth.logout();
   }
+
+  askQuestion(): void {
+    this.router.navigateByUrl('questioning/ask');
+  }
 }
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.html	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.html	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -20,5 +20,15 @@
       </mat-chip-list>
 
-      <div class="margin-top-lg" [innerHTML]="question.text"></div>
+      <editor
+        class="margin-x-sm"
+        [init]="{
+          apiKey: 'fx28x0d64jeufa35u7mcd80fgveayg5c4ap9gnr6posehzny',
+          menubar: false,
+          plugins: ['autoresize'],
+          toolbar: ''
+        }"
+        [disabled]="true"
+        [initialValue]="question.text"
+      ></editor>
       <div class="align-right">
         <app-student-card
@@ -48,5 +58,15 @@
           <app-vote [voteCount]="answer.upvotesCount" [correct]="answer.correctAnswer" fxFlex="6%"></app-vote>
           <div fxFlex="92%">
-            <div [innerHTML]="answer.text"></div>
+            <editor
+              class="margin-x-sm"
+              [init]="{
+                apiKey: 'fx28x0d64jeufa35u7mcd80fgveayg5c4ap9gnr6posehzny',
+                menubar: false,
+                plugins: ['autoresize'],
+                toolbar: ''
+              }"
+              [disabled]="true"
+              [initialValue]="answer.text"
+            ></editor>
             <div class="align-right">
               <app-student-card
Index: src/Clients/Angular/finki-chattery/src/assets/translations/en.json
===================================================================
--- src/Clients/Angular/finki-chattery/src/assets/translations/en.json	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/Clients/Angular/finki-chattery/src/assets/translations/en.json	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -44,4 +44,9 @@
   "questions-preview-question-answers": "Answers",
   "questions-preview-question-views": "Views",
-  "questions-search-title": "Search results for: {{searchQuery}}"
+  "questions-search-title": "Search results for: {{searchQuery}}",
+  "ask-question-question-title": "Question title",
+  "ask-question-categories": "Add categories to question",
+  "ask-question-ask-button": "Ask question",
+  "header-logout": "Logout",
+  "header-ask-question": "Ask question"
 }
Index: src/FinkiChattery/FinkiChattery.Api/Controllers/v1/QuestionsController.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/Controllers/v1/QuestionsController.cs	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/FinkiChattery/FinkiChattery.Api/Controllers/v1/QuestionsController.cs	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -29,6 +29,6 @@
         public async Task<IActionResult> AskQuestion([FromBody] AskQuestionRequest request)
         {
-            await MediatorService.SendAsync(new AskQuestionCommand(request.Title, request.Text, request.Categories));
-            return Ok();
+            var questionUid = await MediatorService.SendAsync(new AskQuestionCommand(request.Title, request.Text, request.Categories));
+            return Ok(questionUid);
         }
 
Index: src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionConfig.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionConfig.cs	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionConfig.cs	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -24,5 +24,5 @@
             builder.Property(x => x.Views).HasColumnName(@"Views").HasColumnType("bigint").IsRequired().HasDefaultValue(0);
             builder.Property(x => x.LastActiveOn).HasColumnName(@"LastActiveOn").HasColumnType("smalldatetime").IsRequired();
-            builder.Property(x => x.Search).HasColumnType(@"Search").HasColumnType("nvarchar").HasMaxLength(4000).IsRequired();
+            builder.Property(x => x.Search).HasComputedColumnSql(@"Search").HasColumnType("nvarchar").ValueGeneratedOnAddOrUpdate().HasMaxLength(4000).IsRequired();
             builder.Property(x => x.AnswersCount).HasColumnType(@"AnswersCount").HasColumnType("bigint").IsRequired().HasDefaultValue(0);
 
Index: src/FinkiChattery/FinkiChattery.Persistence/Models/Question.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Models/Question.cs	(revision d2b1fa665fecfac0705616b004b9e3b44b313621)
+++ src/FinkiChattery/FinkiChattery.Persistence/Models/Question.cs	(revision c205cc4526552948b0429d20c44dd9d98602b24c)
@@ -1,4 +1,5 @@
 ﻿using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
 
 namespace FinkiChattery.Persistence.Models
@@ -32,4 +33,5 @@
         public DateTime LastActiveOn { get; set; }
 
+        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
         public string Search { get; set; }
 
