Index: src/Clients/Angular/finki-chattery/package-lock.json
===================================================================
--- src/Clients/Angular/finki-chattery/package-lock.json	(revision 78992098dd901f0b6b6394b8df600db773e3ba22)
+++ src/Clients/Angular/finki-chattery/package-lock.json	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -1746,4 +1746,19 @@
       }
     },
+    "@tinymce/tinymce-angular": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/@tinymce/tinymce-angular/-/tinymce-angular-4.0.0.tgz",
+      "integrity": "sha512-CmsKournkWWK5O7d8qgZQPvRC76z36GjeD3ZAHZEY/kUXKWAIXfbrHxxgQq9m7+wlfZq9QNgRx5ufN9y9N46DQ==",
+      "requires": {
+        "tslib": "^1.10.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "1.14.1",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+          "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+        }
+      }
+    },
     "@types/glob": {
       "version": "7.1.3",
Index: src/Clients/Angular/finki-chattery/package.json
===================================================================
--- src/Clients/Angular/finki-chattery/package.json	(revision 78992098dd901f0b6b6394b8df600db773e3ba22)
+++ src/Clients/Angular/finki-chattery/package.json	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -29,4 +29,5 @@
     "@ngrx/store-devtools": "^11.0.1",
     "@ngx-translate/core": "^13.0.0",
+    "@tinymce/tinymce-angular": "^4.0.0",
     "moment": "^2.29.1",
     "ng2-file-upload": "^1.4.0",
Index: src/Clients/Angular/finki-chattery/src/app/app.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app.component.ts	(revision 78992098dd901f0b6b6394b8df600db773e3ba22)
+++ src/Clients/Angular/finki-chattery/src/app/app.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -1,4 +1,4 @@
 import { Component, OnInit } from '@angular/core';
-import { LoaderService } from './core/services';
+import { LoaderService, RedirectService } from './core/services';
 
 @Component({
@@ -8,6 +8,8 @@
 })
 export class AppComponent implements OnInit {
-  constructor(public loader: LoaderService) {}
+  constructor(public loader: LoaderService, private redirect: RedirectService) {}
 
-  ngOnInit(): void {}
+  ngOnInit(): void {
+    this.redirect.redirectLoggedInUser();
+  }
 }
Index: src/Clients/Angular/finki-chattery/src/app/core/guards/authorized-student.guard.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/guards/authorized-student.guard.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/core/guards/authorized-student.guard.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,25 @@
+import { Injectable } from '@angular/core';
+import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';
+import { Observable } from 'rxjs';
+import { map } from 'rxjs/operators';
+import { ApplicationUserType } from 'src/app/shared-app/models';
+import { AuthService } from '../services';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class AuthorizedStudentGuard implements CanActivate {
+  constructor(private auth: AuthService) {}
+
+  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
+    return this.auth.currentUser().pipe(
+      map((user) => {
+        if (user?.userType === ApplicationUserType.Student) {
+          return true;
+        }
+        this.auth.login();
+        return false;
+      })
+    );
+  }
+}
Index: src/Clients/Angular/finki-chattery/src/app/modules/group-management/group-management.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/group-management/group-management.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/group-management/group-management.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,12 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+
+@NgModule({
+  declarations: [],
+  imports: [
+    CommonModule
+  ]
+})
+export class GroupManagementModule { }
Index: src/Clients/Angular/finki-chattery/src/app/modules/profile-management/profile-management.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/profile-management/profile-management.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/profile-management/profile-management.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,12 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+
+
+@NgModule({
+  declarations: [],
+  imports: [
+    CommonModule
+  ]
+})
+export class ProfileManagementModule { }
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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,36 @@
+<form class="example-container" [formGroup]="questionFormGroup">
+  <mat-form-field class="full-width" appearance="standard" appHandleInputFormErrors>
+    <mat-label>STAVI TRANSLATE</mat-label>
+    <input matInput [formControl]="titleForm" />
+  </mat-form-field>
+
+  <editor
+    matInput
+    [formControl]="textForm"
+    [init]="{
+      menubar: false,
+      plugins: [
+        'advlist autolink lists link image charmap print preview anchor',
+        'searchreplace visualblocks code fullscreen',
+        'insertdatetime media table paste code help wordcount'
+      ],
+      toolbar:
+        'undo redo | formatselect | bold italic backcolor | \
+        alignleft aligncenter alignright alignjustify | \
+        bullist numlist outdent indent | removeformat | help'
+    }"
+  ></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-form-field class="full-width" appearance="standard" appHandleInputFormErrors>
+    <mat-label>STAVI TRANSLATE</mat-label>
+    <mat-select [formControl]="categoriesForm" multiple>
+      <mat-option *ngFor="let category of categoriesList" [value]="category.uid">{{ category.name }}</mat-option>
+    </mat-select>
+  </mat-form-field>
+
+  <app-button [disabled]="questionFormGroup.invalid" [buttonType]="ButtonType.CallToAction" (action)="askQuestion()">
+    {{ 'not-found' | 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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.scss	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,3 @@
+.full-width {
+  width: 100%;
+}
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { AskQuestionComponent } from './ask-question.component';
+
+describe('AskQuestionComponent', () => {
+  let component: AskQuestionComponent;
+  let fixture: ComponentFixture<AskQuestionComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [ AskQuestionComponent ]
+    })
+    .compileComponents();
+  });
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(AskQuestionComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,45 @@
+import { Component, OnInit } from '@angular/core';
+import { FormControl, FormGroup, Validators } from '@angular/forms';
+
+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';
+
+@Component({
+  selector: 'app-ask-question',
+  templateUrl: './ask-question.component.html',
+  styleUrls: ['./ask-question.component.scss']
+})
+export class AskQuestionComponent implements OnInit {
+  public titleForm = new FormControl('', [Validators.required, Validators.maxLength(500)]);
+  public textForm = new FormControl('', [Validators.required, Validators.maxLength(4000)]);
+  public categoriesForm = new FormControl([]);
+
+  public questionFormGroup: FormGroup;
+  public ButtonType = ButtonType;
+
+  // 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) {
+    this.questionFormGroup = new FormGroup({
+      title: this.titleForm,
+      text: this.textForm,
+      categories: this.categoriesForm
+    });
+  }
+
+  ngOnInit(): void {}
+
+  public askQuestion(): void {
+    const body = new AskQuestionRequest(this.titleForm.value, this.textForm.value, this.categoriesForm.value);
+    this.api.askQuestion(body).subscribe(() => {});
+  }
+}
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-components.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-components.ts	(revision 78992098dd901f0b6b6394b8df600db773e3ba22)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-components.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -3,4 +3,5 @@
 import { QuestionsPreviewGeneralComponent } from './questions-preview-general/questions-preview-general.component';
 import { QuestionsSearchComponent } from './questions-search/questions-search.component';
+import { AskQuestionComponent } from './ask-question/ask-question.component';
 
 export const QUESTIONING_COMPONENTS: any[] = [
@@ -8,4 +9,5 @@
   QuestionsPreviewGeneralComponent,
   QuestioningGeneralComponent,
-  QuestionsSearchComponent
+  QuestionsSearchComponent,
+  AskQuestionComponent
 ];
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/models/questioning-request.models.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/models/questioning-request.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/models/questioning-request.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,3 @@
+export class AskQuestionRequest {
+  constructor(public title: string, public text: string, public categories: string[]) {}
+}
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/questioning.routes.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/questioning.routes.ts	(revision 78992098dd901f0b6b6394b8df600db773e3ba22)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/questioning.routes.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -5,4 +5,6 @@
 import { QuestionsPreviewGeneralComponent } from './components/questions-preview-general/questions-preview-general.component';
 import { QuestionsSearchComponent } from './components/questions-search/questions-search.component';
+import { AuthorizedStudentGuard } from 'src/app/core/guards/authorized-student.guard';
+import { AskQuestionComponent } from './components/ask-question/ask-question.component';
 
 const routes: Routes = [
@@ -22,4 +24,10 @@
       },
       {
+        path: 'ask',
+        pathMatch: 'full',
+        component: AskQuestionComponent,
+        canActivate: [AuthorizedStudentGuard]
+      }
+      {
         path: ':questionUid',
         component: QuestionPreviewGeneralComponent
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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/services/questioning-api.service.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,18 @@
+import { HttpClient } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Observable } from 'rxjs';
+import { BaseApiService } from 'src/app/shared-app/services/base-api.service';
+import { AskQuestionRequest } from '../models/questioning-request.models';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class QuestioningApiService extends BaseApiService {
+  constructor(protected http: HttpClient) {
+    super(http);
+  }
+
+  askQuestion(body: AskQuestionRequest): Observable<void> {
+    return this.post('v1/questions', body);
+  }
+}
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/models/categories.models.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/models/categories.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/models/categories.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -0,0 +1,3 @@
+export class CategoryViewModel {
+  constructor(public uid: string, public name: string) {}
+}
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/models/index.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/models/index.ts	(revision 78992098dd901f0b6b6394b8df600db773e3ba22)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/models/index.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -4,2 +4,3 @@
 export * from './category-state-view-models.models';
 export * from './question-state-enums.models';
+export * from './categories.models';
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/shared-app.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/shared-app.module.ts	(revision 78992098dd901f0b6b6394b8df600db773e3ba22)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/shared-app.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
@@ -7,4 +7,5 @@
 import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';
 import { FileUploadModule } from 'ng2-file-upload';
+import { EditorModule } from '@tinymce/tinymce-angular';
 
 import { COMPONENTS } from './components/components';
@@ -25,5 +26,6 @@
     FlexLayoutModule,
     FileUploadModule,
-    NgxMaterialTimepickerModule
+    NgxMaterialTimepickerModule,
+    EditorModule
   ],
   exports: [
@@ -38,5 +40,6 @@
     DIRECTIVES,
     PIPES,
-    SharedMaterialModule
+    SharedMaterialModule,
+    EditorModule
   ]
 })
