Index: .gitignore
===================================================================
--- .gitignore	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ .gitignore	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -284,5 +284,2 @@
 *.xsd.cs
 .terraform
-
-# mac os
-*.DS_Store
Index: c/Clients/Angular/finki-chattery/.vscode/launch.json
===================================================================
--- src/Clients/Angular/finki-chattery/.vscode/launch.json	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,15 +1,0 @@
-{
-    // Use IntelliSense to learn about possible attributes.
-    // Hover to view descriptions of existing attributes.
-    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
-    "version": "0.2.0",
-    "configurations": [
-        {
-            "type": "pwa-chrome",
-            "request": "launch",
-            "name": "Launch Chrome against localhost",
-            "url": "http://localhost:8080",
-            "webRoot": "${workspaceFolder}"
-        }
-    ]
-}
Index: src/Clients/Angular/finki-chattery/angular.json
===================================================================
--- src/Clients/Angular/finki-chattery/angular.json	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/angular.json	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -98,12 +98,6 @@
             "tsConfig": "tsconfig.spec.json",
             "karmaConfig": "karma.conf.js",
-            "assets": [
-              "src/favicon.ico",
-              "src/assets"
-            ],
-            "styles": [
-              "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
-              "src/styles.scss"
-            ],
+            "assets": ["src/favicon.ico", "src/assets"],
+            "styles": ["./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss"],
             "scripts": []
           }
@@ -112,12 +106,6 @@
           "builder": "@angular-devkit/build-angular:tslint",
           "options": {
-            "tsConfig": [
-              "tsconfig.app.json",
-              "tsconfig.spec.json",
-              "e2e/tsconfig.json"
-            ],
-            "exclude": [
-              "**/node_modules/**"
-            ]
+            "tsConfig": ["tsconfig.app.json", "tsconfig.spec.json", "e2e/tsconfig.json"],
+            "exclude": ["**/node_modules/**"]
           }
         },
@@ -137,7 +125,4 @@
     }
   },
-  "defaultProject": "finki-chattery",
-  "cli": {
-    "analytics": false
-  }
+  "defaultProject": "finki-chattery"
 }
Index: src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,20 +1,13 @@
 import { NgModule } from '@angular/core';
 import { Routes, RouterModule } from '@angular/router';
-import { AuthCallbackComponent } from './auth-callback/auth-callback.component';
-import { AuthorizedGuard } from './core/guards/authorized.guard';
 
 const routes: Routes = [
   {
-    path: 'auth-callback',
-    component: AuthCallbackComponent
+    path: '**',
+    redirectTo: 'public/home'
   },
   {
-    path: 'questioning',
-    canActivate: [AuthorizedGuard],
+    path: 'questions',
     loadChildren: () => import('./modules/questioning/questioning.module').then((x) => x.QuestioningModule)
-  },
-  {
-    path: '**',
-    redirectTo: 'questioning/preview'
   }
 ];
Index: src/Clients/Angular/finki-chattery/src/app/app.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/app.component.html	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,5 +1,4 @@
 <main>
   <mat-progress-bar class="global-loader" [class.hidden]="!(loader.isLoading | async)" mode="indeterminate"></mat-progress-bar>
-  <app-header></app-header>
   <router-outlet></router-outlet>
 </main>
Index: src/Clients/Angular/finki-chattery/src/app/app.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/app.module.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -10,12 +10,13 @@
 import { CoreModule } from './core/core.module';
 import { translateConfiguration, TranslateFromJsonService } from './shared-app/services';
-import { AuthCallbackComponent } from './auth-callback/auth-callback.component';
+import { SharedMaterialModule } from './shared-material/shared-material.module';
 
 @NgModule({
-  declarations: [AppComponent, AuthCallbackComponent],
+  declarations: [AppComponent],
   imports: [
     BrowserModule,
     AppRoutingModule,
     CoreModule,
+    SharedMaterialModule,
     BrowserAnimationsModule,
     ToastrModule.forRoot(),
Index: c/Clients/Angular/finki-chattery/src/app/auth-callback/auth-callback.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/auth-callback/auth-callback.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { Component, OnInit } from '@angular/core';
-import { AuthService, RedirectService } from '../core/services';
-
-@Component({
-  selector: 'app-auth-callback',
-  template: ''
-})
-export class AuthCallbackComponent implements OnInit {
-  constructor(private redirect: RedirectService, private auth: AuthService) {}
-
-  async ngOnInit(): Promise<void> {
-    await this.auth.completeAuthentication();
-    this.redirect.redirectLoggedInUser();
-  }
-}
Index: src/Clients/Angular/finki-chattery/src/app/core/core.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/core.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/core/core.module.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -11,13 +11,12 @@
 import { GUARDS } from './guards/guards';
 import { LoaderInterceptor } from './interceptors/loader.interceptor';
+import { SERVICES } from './services/services';
 import { reducers } from './state';
 import { TokenInterceptor } from './interceptors/token.interceptor';
-import { EffectsModule } from '@ngrx/effects';
-import { QuestionEffects } from './state/question-state/question.effects';
-import { CategoriesEffects } from './state/category-state/category.effects';
 
 @NgModule({
   declarations: [COMPONENTS],
   providers: [
+    SERVICES,
     GUARDS,
     { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },
@@ -34,8 +33,7 @@
       maxAge: 25,
       logOnly: !environment.production
-    }),
-    EffectsModule.forRoot([QuestionEffects, CategoriesEffects])
+    })
   ],
-  exports: [HttpClientModule, SharedAppModule, COMPONENTS]
+  exports: [HttpClientModule, COMPONENTS]
 })
 export class CoreModule {}
Index: c/Clients/Angular/finki-chattery/src/app/core/guards/authorized.guard.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/guards/authorized.guard.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { Injectable } from '@angular/core';
-import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
-
-import { AuthService } from '../services';
-
-@Injectable({
-  providedIn: 'root'
-})
-export class AuthorizedGuard implements CanActivate {
-  constructor(private auth: AuthService) {}
-
-  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
-    if (this.auth.isLoggedIn()) {
-      return true;
-    }
-
-    this.auth.login();
-    return false;
-  }
-}
Index: src/Clients/Angular/finki-chattery/src/app/core/interceptors/token.interceptor.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/interceptors/token.interceptor.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/core/interceptors/token.interceptor.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -2,4 +2,5 @@
 import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
 import { Observable } from 'rxjs';
+import { switchMap } from 'rxjs/operators';
 
 import { AuthService } from '../services';
@@ -15,9 +16,12 @@
     }
 
-    const requestToForward = request.clone({
-      setHeaders: { Authorization: `Bearer ${this.auth.currentUserToken()}` }
-    });
-
-    return next.handle(requestToForward);
+    return this.auth.currentUserToken().pipe(
+      switchMap((token) => {
+        const requestToForward = request.clone({
+          setHeaders: { Authorization: `Bearer ${token}` }
+        });
+        return next.handle(requestToForward);
+      })
+    );
   }
 }
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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/auth.service.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,5 +1,6 @@
 import { Injectable } from '@angular/core';
-import { User, UserManager } from 'oidc-client';
-import { Observable, of } from 'rxjs';
+import { UserManager } from 'oidc-client';
+import { Observable, from, of } from 'rxjs';
+import { map, switchMap } from 'rxjs/operators';
 
 import { environment } from '@env/environment';
@@ -14,12 +15,9 @@
     authority: environment.identityRoute,
     client_id: environment.identityClientId,
-    redirect_uri: `${window.location.origin}/auth-callback`,
+    redirect_uri: `${window.location.origin}`,
     response_type: 'id_token token',
     scope: 'openid app.api.finki-chattery profile',
     post_logout_redirect_uri: window.location.origin
   });
-
-  public user: ApplicationUser | null = null;
-  public oidcUser: User | null = null;
 
   constructor(private baseApi: BaseApiService) {}
@@ -33,41 +31,59 @@
   }
 
-  public isLoggedIn(): boolean {
-    if (this.oidcUser) {
-      return !this.oidcUser.expired;
-    }
-    return false;
+  public isLoggedIn(): Observable<boolean> {
+    return from(this.userManager.getUser()).pipe(
+      map((user) => {
+        if (user) {
+          return true;
+        }
+
+        return false;
+      })
+    );
   }
 
-  public currentUser(): ApplicationUser | null {
-    return this.user;
+  public currentUser(): Observable<ApplicationUser | null> {
+    return from(this.userManager.getUser()).pipe(
+      map((user) => {
+        if (!user) {
+          return null;
+        }
+
+        return new ApplicationUser(
+          user.profile.id,
+          user.profile.userType,
+          user.profile.emailAddress,
+          user.profile.username,
+          user.profile.isVerified
+        );
+      })
+    );
   }
 
-  public currentUserToken(): string {
-    if (this.oidcUser) {
-      return this.oidcUser.access_token;
-    }
+  public currentUserToken(): Observable<string> {
+    return from(this.userManager.getUser()).pipe(
+      map((user) => {
+        if (user?.access_token) {
+          return user.access_token;
+        }
 
-    return '';
+        return '';
+      })
+    );
   }
 
   public selfUserDto(): Observable<SelfUserResponse | null> {
-    if (this.isLoggedIn()) {
-      return this.baseApi.getSelfUser();
-    }
-    return of(null);
+    return this.isLoggedIn().pipe(
+      switchMap((loggedIn) => {
+        if (loggedIn) {
+          return this.baseApi.getSelfUser();
+        }
+        return of(null);
+      })
+    );
   }
 
-  public async completeAuthentication(): Promise<void> {
-    return await this.userManager.signinRedirectCallback().then((user: User) => {
-      this.oidcUser = user;
-      this.user = new ApplicationUser(
-        user.profile.id,
-        user.profile.userType,
-        user.profile.emailAddress,
-        user.profile.username,
-        user.profile.isVerified
-      );
-    });
+  public signupCallback(): Observable<boolean> {
+    return from(this.userManager.signinRedirectCallback()).pipe(map((user) => user !== null));
   }
 }
Index: src/Clients/Angular/finki-chattery/src/app/core/services/notification.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/services/notification.service.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/notification.service.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -22,8 +22,5 @@
 
   public successNotification(title: string, description?: string): void {
-    if (description) {
-      this.toastr.success(this.translate.instant(description), this.translate.instant(title));
-    }
-    this.toastr.success(this.translate.instant(title));
+    this.toastr.success(this.translate.instant(description), this.translate.instant(title));
   }
 }
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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/redirect.service.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,4 +1,5 @@
 import { Injectable } from '@angular/core';
 import { Router } from '@angular/router';
+import { switchMap } from 'rxjs/operators';
 
 import { ApplicationUserType } from 'src/app/shared-app/models';
@@ -12,15 +13,17 @@
 
   public redirectLoggedInUser(): void {
-    const currentUser = this.auth.user;
-
-    if (currentUser) {
-      switch (currentUser.userType) {
-        case ApplicationUserType.Student:
-          this.router.navigateByUrl(`questioning/preview`);
-          break;
-        case ApplicationUserType.Teacher:
-          break;
-      }
-    }
+    this.auth
+      .signupCallback()
+      .pipe(switchMap(() => this.auth.currentUser()))
+      .subscribe((currentUser) => {
+        if (currentUser) {
+          switch (currentUser.userType) {
+            case ApplicationUserType.Student:
+              break;
+            case ApplicationUserType.Teacher:
+              break;
+          }
+        }
+      });
   }
 }
Index: src/Clients/Angular/finki-chattery/src/app/core/services/services.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/services/services.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/services.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -0,0 +1,1 @@
+export const SERVICES: any[] = [];
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,50 +1,0 @@
-import { HttpErrorResponse } from '@angular/common/http';
-import { Injectable } from '@angular/core';
-import { Action, Store } from '@ngrx/store';
-import { Observable, throwError } from 'rxjs';
-import { catchError, filter, map } from 'rxjs/operators';
-
-import { CategoryStateViewModel } from 'src/app/shared-app/models';
-import { EffectStartedWorking, GetCategoriesState } from './category-state/category.actions';
-import { categoriesStateQuery } from './category-state/category.selectors';
-import { CategoryState } from './category-state/category.state';
-
-@Injectable({
-  providedIn: 'root'
-})
-export class CategoryFacadeService {
-  effectWorking$: Observable<boolean | HttpErrorResponse>;
-
-  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);
-      })
-    );
-  }
-
-  public getCategories(): Observable<CategoryStateViewModel[]> {
-    return this.store.select(categoriesStateQuery.getCategories);
-  }
-
-  public fetchCategories(): void {
-    this.dispatchEffect(new GetCategoriesState());
-  }
-
-  private dispatch(action: Action): void {
-    this.store.dispatch(action);
-  }
-
-  private dispatchEffect(action: Action): void {
-    this.dispatch(new EffectStartedWorking());
-    this.dispatch(action);
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/core/state/category-state/category-state.models.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category-state.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export class CategoryStateResponse {
-  public uid!: string;
-  public name!: string;
-}
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,44 +1,0 @@
-import { HttpErrorResponse } from '@angular/common/http';
-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',
-  EffectStartedWorking = '[Category] Effect Started Working',
-  EffectFinishedWorking = '[Category] Effect Finished Working',
-  EffectFinishedWorkingError = '[Category] Effect Finished Working error'
-}
-
-export class GetCategoriesState implements Action {
-  readonly type = CategoryActionTypes.GetCategoriesState;
-
-  constructor() {}
-}
-
-export class GetCategoriesStateSuccess implements Action {
-  readonly type = CategoryActionTypes.GetCategoriesStateSuccess;
-
-  constructor(public payload: CategoryStateViewModel[]) {}
-}
-
-export class EffectStartedWorking implements Action {
-  readonly type = CategoryActionTypes.EffectStartedWorking;
-
-  constructor() {}
-}
-
-export class EffectFinishedWorking implements Action {
-  readonly type = CategoryActionTypes.EffectFinishedWorking;
-
-  constructor() {}
-}
-
-export class EffectFinishedWorkingError implements Action {
-  readonly type = CategoryActionTypes.EffectFinishedWorkingError;
-
-  constructor(public payload: HttpErrorResponse) {}
-}
-
-export type CategoryAction = GetCategoriesStateSuccess | EffectStartedWorking | EffectFinishedWorking | EffectFinishedWorkingError;
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,37 +1,0 @@
-import { Injectable } from '@angular/core';
-import { Actions, createEffect, ofType } from '@ngrx/effects';
-import { catchError, switchMap } from 'rxjs/operators';
-import { TranslateFromJsonService } from 'src/app/shared-app/services';
-
-import { BaseApiService } from 'src/app/shared-app/services/base-api.service';
-import { CategoryStateResponse } from './category-state.models';
-import {
-  CategoryActionTypes,
-  EffectFinishedWorking,
-  EffectFinishedWorkingError,
-  GetCategoriesState,
-  GetCategoriesStateSuccess
-} from './category.actions';
-import { CategoriesMapper } from './category.mapper';
-
-@Injectable({
-  providedIn: 'root'
-})
-export class CategoriesEffects {
-  constructor(private actions$: Actions, private api: BaseApiService, private translate: TranslateFromJsonService) {}
-
-  getCategoriesState$ = createEffect(() => {
-    return this.actions$.pipe(
-      ofType<GetCategoriesState>(CategoryActionTypes.GetCategoriesState),
-      switchMap((action) => {
-        return this.api.get<CategoryStateResponse[]>(`v1/categories`).pipe(
-          switchMap((state) => [
-            new GetCategoriesStateSuccess(CategoriesMapper.ToCategoriesStateViewModel(state, this.translate)),
-            new EffectFinishedWorking()
-          ]),
-          catchError((err) => [new EffectFinishedWorkingError(err)])
-        );
-      })
-    );
-  });
-}
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { CategoryStateViewModel } from 'src/app/shared-app/models';
-import { TranslateFromJsonService } from 'src/app/shared-app/services';
-import { CategoryStateResponse } from './category-state.models';
-
-export class CategoriesMapper {
-  public static ToCategoriesStateViewModel(
-    categoriesResponse: CategoryStateResponse[],
-    translate: TranslateFromJsonService
-  ): CategoryStateViewModel[] {
-    return categoriesResponse.map((x) => new CategoryStateViewModel(x.uid, x.name, translate.instant(x.name)));
-  }
-}
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,38 +1,0 @@
-import { CategoryAction, CategoryActionTypes } from './category.actions';
-import { CategoryState, initialState } from './category.state';
-
-export function reducer(state = initialState, action: CategoryAction): CategoryState {
-  switch (action.type) {
-    case CategoryActionTypes.GetCategoriesStateSuccess:
-      return {
-        ...state,
-        categories: action.payload
-      };
-    case CategoryActionTypes.EffectStartedWorking: {
-      return {
-        ...state,
-        effectWorking: true
-      };
-    }
-
-    case CategoryActionTypes.EffectFinishedWorking: {
-      return {
-        ...state,
-        effectWorking: false
-      };
-    }
-
-    case CategoryActionTypes.EffectFinishedWorkingError: {
-      return {
-        ...state,
-        effectWorking: action.payload
-      };
-    }
-
-    default: {
-      return {
-        ...state
-      };
-    }
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.selectors.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.selectors.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { createFeatureSelector, createSelector } from '@ngrx/store';
-import { CategoryState, categoryStateKey } from './category.state';
-
-export const getCategoriesState = createFeatureSelector<CategoryState>(categoryStateKey);
-
-const getCategories = createSelector(getCategoriesState, (state) => state.categories);
-const effectWorking = createSelector(getCategoriesState, (state) => state.effectWorking);
-
-export const categoriesStateQuery = {
-  effectWorking,
-  getCategories
-};
Index: c/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.state.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/category-state/category.state.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,14 +1,0 @@
-import { HttpErrorResponse } from '@angular/common/http';
-import { CategoryStateViewModel } from 'src/app/shared-app/models';
-
-export const categoryStateKey = 'category';
-
-export interface CategoryState {
-  categories: CategoryStateViewModel[];
-  effectWorking: boolean | HttpErrorResponse;
-}
-
-export const initialState: CategoryState = {
-  categories: [],
-  effectWorking: false
-};
Index: src/Clients/Angular/finki-chattery/src/app/core/state/index.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/index.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/core/state/index.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,15 +1,5 @@
 import { ActionReducerMap } from '@ngrx/store';
-import { QuestionState } from './question-state/question.state';
-import { reducer as questionReducer } from './question-state/question.reducers';
-import { CategoryState } from './category-state/category.state';
-import { reducer as categoryReducer } from './category-state/category.reducers';
 
-export interface State {
-  question: QuestionState;
-  category: CategoryState;
-}
+export interface State {}
 
-export const reducers: ActionReducerMap<State, any> = {
-  question: questionReducer,
-  category: categoryReducer
-};
+export const reducers: ActionReducerMap<State, any> = {};
Index: c/Clients/Angular/finki-chattery/src/app/core/state/question-facade.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/question-facade.service.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,101 +1,0 @@
-import { HttpErrorResponse } from '@angular/common/http';
-import { Injectable } from '@angular/core';
-import { Action, Store } from '@ngrx/store';
-import { Observable, throwError } from 'rxjs';
-import { catchError, filter, map } from 'rxjs/operators';
-
-import {
-  PreviewQuestionsOrderEnum,
-  PreviewQuestionViewModel,
-  QuestionStateViewModel,
-  SearchQuestionsQueryViewModel
-} from 'src/app/shared-app/models';
-import {
-  EffectStartedWorking,
-  GetPreviewQuestionsLatest,
-  GetPreviewQuestionsPopular,
-  GetQuestionState,
-  GetSearchQuestions
-} from './question-state/question.actions';
-import { questionStateQuery } from './question-state/question.selectors';
-import { QuestionState } from './question-state/question.state';
-
-@Injectable({
-  providedIn: 'root'
-})
-export class QuestionFacadeService {
-  effectWorking$: Observable<boolean | HttpErrorResponse>;
-
-  constructor(private store: Store<QuestionState>) {
-    this.effectWorking$ = this.store.select(questionStateQuery.effectWorking).pipe(
-      filter((effect) => effect !== null),
-      map((effect) => {
-        if (effect instanceof HttpErrorResponse) {
-          throw effect;
-        } else {
-          return effect;
-        }
-      }),
-      catchError((err) => {
-        return throwError(err);
-      })
-    );
-  }
-
-  public getQuestion(): Observable<QuestionStateViewModel> {
-    return this.store
-      .select(questionStateQuery.getQuestion)
-      .pipe(filter((x: QuestionStateViewModel | null): x is QuestionStateViewModel => x !== null));
-  }
-
-  public getSearchQuestions(): Observable<PreviewQuestionViewModel[]> {
-    return this.store.select(questionStateQuery.getSearchQuestions);
-  }
-
-  public getSearchQuestionsQuery(): Observable<SearchQuestionsQueryViewModel> {
-    return this.store
-      .select(questionStateQuery.getSearchQuestionsQuery)
-      .pipe(filter((x: SearchQuestionsQueryViewModel | null): x is SearchQuestionsQueryViewModel => x !== null));
-  }
-
-  public getPreviewQuestionsLatest(): Observable<PreviewQuestionViewModel[]> {
-    return this.store.select(questionStateQuery.getPreviewQuestionsLatest);
-  }
-
-  public getPreviewQuestionsPopular(): Observable<PreviewQuestionViewModel[]> {
-    return this.store.select(questionStateQuery.getPreviewQuestionsPopular);
-  }
-
-  public fetchPreviewQuestions(orderBy: PreviewQuestionsOrderEnum): void {
-    if (orderBy === PreviewQuestionsOrderEnum.Latest) {
-      this.fetchPreviewQuestionsLatest();
-    } else if (orderBy === PreviewQuestionsOrderEnum.Popular) {
-      this.fetchPreviewQuestionsPopular();
-    }
-  }
-
-  public fetchQuestion(questionUid: string): void {
-    this.dispatchEffect(new GetQuestionState(questionUid));
-  }
-
-  public searchQuestions(searchText: string, categories: string[]): void {
-    this.dispatchEffect(new GetSearchQuestions(searchText, categories));
-  }
-
-  private fetchPreviewQuestionsLatest(): void {
-    this.dispatchEffect(new GetPreviewQuestionsLatest());
-  }
-
-  private fetchPreviewQuestionsPopular(): void {
-    this.dispatchEffect(new GetPreviewQuestionsPopular());
-  }
-
-  private dispatch(action: Action): void {
-    this.store.dispatch(action);
-  }
-
-  private dispatchEffect(action: Action): void {
-    this.dispatch(new EffectStartedWorking());
-    this.dispatch(action);
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/core/state/question-state/question-state.models.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/question-state/question-state.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,74 +1,0 @@
-export class QuestionStateResponse {
-  public uid!: string;
-  public title!: string;
-  public text!: string;
-  public createdOn!: moment.Moment;
-  public views!: number;
-  public lastActiveOn!: moment.Moment;
-  public studentResponse!: StudentQuestionStateResponse;
-  public answersResponse!: AnswerQuestionStateResponse[];
-  public categoriesResponse!: QuestionCategoryQuestionStateResponse[];
-  public teamResponse!: TeamQuestionStateResponse | null;
-}
-
-export class StudentQuestionStateResponse {
-  public uid!: string;
-  public index!: string;
-  public imageUrl!: string;
-  public reputation!: number;
-}
-
-export class TeamQuestionStateResponse {
-  public uid!: string;
-  public name!: string;
-}
-
-export class QuestionCategoryQuestionStateResponse {
-  public uid!: string;
-  public name!: string;
-}
-
-export class AnswerQuestionStateResponse {
-  public uid!: string;
-  public text!: string;
-  public correctAnswer!: boolean;
-  public createdOn!: moment.Moment;
-  public upvotesCount!: number;
-  public studentResponse!: AnswerStudentQuestionStateResponse;
-  public answerResponsesResponse!: AnswerResponseQuestionStateResponse[];
-}
-
-export class AnswerStudentQuestionStateResponse {
-  public uid!: string;
-  public index!: string;
-  public imageUrl!: string;
-  public reputation!: number;
-}
-
-export class AnswerResponseQuestionStateResponse {
-  public uid!: string;
-  public text!: string;
-  public createdOn!: moment.Moment;
-  public studentResponse!: AnswerResponseStudentQuestionStateResponse;
-}
-
-export class AnswerResponseStudentQuestionStateResponse {
-  public uid!: string;
-  public index!: string;
-  public imageUrl!: string;
-  public reputation!: number;
-}
-
-export class PreviewQuestionResponse {
-  public uid!: string;
-  public title!: string;
-  public createdOn!: moment.Moment;
-  public views!: number;
-  public answersCount!: number;
-  public categories!: PreviewQuestionCategoryResponse[];
-}
-
-export class PreviewQuestionCategoryResponse {
-  public uid!: string;
-  public text!: string;
-}
Index: c/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.actions.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.actions.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,93 +1,0 @@
-import { HttpErrorResponse } from '@angular/common/http';
-import { Action } from '@ngrx/store';
-
-import { PreviewQuestionViewModel, QuestionStateViewModel, SearchQuestionsQueryViewModel } from 'src/app/shared-app/models';
-
-export enum QuestionActionTypes {
-  GetQuestionState = '[Question] Get state',
-  GetQuestionStateSuccess = '[Question] Get state success',
-  GetPreviewQuestionsLatest = '[Question] Get preview questions Latest',
-  GetPreviewQuestionsLatestSuccess = '[Question] Get preview questions Latest Success',
-  GetPreviewQuestionsPopular = '[Question] Get preview questions Popular',
-  GetPreviewQuestionsPopularSuccess = '[Question] Get preview questions Popular Success',
-  GetSearchQuestions = '[Question] Get search questions',
-  GetSearchQuestionsSuccess = '[Question] Get search questions Success',
-  EffectStartedWorking = '[Question] Effect Started Working',
-  EffectFinishedWorking = '[Question] Effect Finished Working',
-  EffectFinishedWorkingError = '[Question] Effect Finished Working error'
-}
-
-export class GetQuestionState implements Action {
-  readonly type = QuestionActionTypes.GetQuestionState;
-
-  constructor(public questionUid: string) {}
-}
-
-export class GetQuestionStateSuccess implements Action {
-  readonly type = QuestionActionTypes.GetQuestionStateSuccess;
-
-  constructor(public payload: QuestionStateViewModel) {}
-}
-
-export class GetPreviewQuestionsLatest implements Action {
-  readonly type = QuestionActionTypes.GetPreviewQuestionsLatest;
-
-  constructor() {}
-}
-
-export class GetPreviewQuestionsLatestSuccess implements Action {
-  readonly type = QuestionActionTypes.GetPreviewQuestionsLatestSuccess;
-
-  constructor(public payload: PreviewQuestionViewModel[]) {}
-}
-
-export class GetPreviewQuestionsPopular implements Action {
-  readonly type = QuestionActionTypes.GetPreviewQuestionsPopular;
-
-  constructor() {}
-}
-
-export class GetPreviewQuestionsPopularSuccess implements Action {
-  readonly type = QuestionActionTypes.GetPreviewQuestionsPopularSuccess;
-
-  constructor(public payload: PreviewQuestionViewModel[]) {}
-}
-
-export class GetSearchQuestions implements Action {
-  readonly type = QuestionActionTypes.GetSearchQuestions;
-
-  constructor(public searchText: string, public categories: string[]) {}
-}
-
-export class GetSearchQuestionsSuccess implements Action {
-  readonly type = QuestionActionTypes.GetSearchQuestionsSuccess;
-
-  constructor(public payload: PreviewQuestionViewModel[], public query: SearchQuestionsQueryViewModel) {}
-}
-
-export class EffectStartedWorking implements Action {
-  readonly type = QuestionActionTypes.EffectStartedWorking;
-
-  constructor() {}
-}
-
-export class EffectFinishedWorking implements Action {
-  readonly type = QuestionActionTypes.EffectFinishedWorking;
-
-  constructor() {}
-}
-
-export class EffectFinishedWorkingError implements Action {
-  readonly type = QuestionActionTypes.EffectFinishedWorkingError;
-
-  constructor(public payload: HttpErrorResponse) {}
-}
-
-export type QuestionAction =
-  | GetQuestionStateSuccess
-  | GetPreviewQuestionsLatestSuccess
-  | GetPreviewQuestionsPopularSuccess
-  | GetSearchQuestionsSuccess
-  | EffectStartedWorking
-  | EffectFinishedWorking
-  | EffectFinishedWorkingError;
Index: c/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.effects.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.effects.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,102 +1,0 @@
-import { Injectable } from '@angular/core';
-import { act, Actions, createEffect, ofType } from '@ngrx/effects';
-import { catchError, filter, mergeMap, switchMap, withLatestFrom } from 'rxjs/operators';
-import { PreviewQuestionsOrderEnum, SearchQuestionsQueryViewModel } from 'src/app/shared-app/models';
-import { TranslateFromJsonService } from 'src/app/shared-app/services';
-
-import { BaseApiService } from 'src/app/shared-app/services/base-api.service';
-import { QuestionFacadeService } from '../question-facade.service';
-import { PreviewQuestionResponse, QuestionStateResponse } from './question-state.models';
-import {
-  EffectFinishedWorking,
-  EffectFinishedWorkingError,
-  GetPreviewQuestionsLatest,
-  GetPreviewQuestionsLatestSuccess,
-  GetPreviewQuestionsPopular,
-  GetPreviewQuestionsPopularSuccess,
-  GetQuestionState,
-  GetQuestionStateSuccess,
-  GetSearchQuestions,
-  GetSearchQuestionsSuccess,
-  QuestionActionTypes
-} from './question.actions';
-import { QuestionMapper } from './question.mapper';
-
-@Injectable({
-  providedIn: 'root'
-})
-export class QuestionEffects {
-  constructor(
-    private actions$: Actions,
-    private api: BaseApiService,
-    private translate: TranslateFromJsonService,
-    private facade: QuestionFacadeService
-  ) {}
-
-  getQuestionState$ = createEffect(() => {
-    return this.actions$.pipe(
-      ofType<GetQuestionState>(QuestionActionTypes.GetQuestionState),
-      switchMap((action) => {
-        return this.api.get<QuestionStateResponse>(`v1/questions/${action.questionUid}`).pipe(
-          switchMap((state) => [new GetQuestionStateSuccess(QuestionMapper.ToQuestionStateViewModel(state)), new EffectFinishedWorking()]),
-          catchError((err) => [new EffectFinishedWorkingError(err)])
-        );
-      })
-    );
-  });
-
-  getPreviewQuestionsLatest$ = createEffect(() => {
-    return this.actions$.pipe(
-      ofType<GetPreviewQuestionsLatest>(QuestionActionTypes.GetPreviewQuestionsLatest),
-      withLatestFrom(this.facade.getPreviewQuestionsLatest()),
-      filter(([action, questions]) => questions.length === 0),
-      switchMap((action) => {
-        return this.api.get<PreviewQuestionResponse[]>(`v1/questions/preview?order=${PreviewQuestionsOrderEnum.Latest}`).pipe(
-          switchMap((state) => [
-            new GetPreviewQuestionsLatestSuccess(QuestionMapper.ToPreviwQuestionsViewModel(state, this.translate)),
-            new EffectFinishedWorking()
-          ]),
-          catchError((err) => [new EffectFinishedWorkingError(err)])
-        );
-      })
-    );
-  });
-
-  getPreviewQuestionsPopular$ = createEffect(() => {
-    return this.actions$.pipe(
-      ofType<GetPreviewQuestionsPopular>(QuestionActionTypes.GetPreviewQuestionsPopular),
-      withLatestFrom(this.facade.getPreviewQuestionsPopular()),
-      filter(([action, questions]) => questions.length === 0),
-      switchMap((action) => {
-        return this.api.get<PreviewQuestionResponse[]>(`v1/questions/preview?order=${PreviewQuestionsOrderEnum.Popular}`).pipe(
-          switchMap((state) => [
-            new GetPreviewQuestionsPopularSuccess(QuestionMapper.ToPreviwQuestionsViewModel(state, this.translate)),
-            new EffectFinishedWorking()
-          ]),
-          catchError((err) => [new EffectFinishedWorkingError(err)])
-        );
-      })
-    );
-  });
-
-  getSearchQuestions$ = createEffect(() => {
-    return this.actions$.pipe(
-      ofType<GetSearchQuestions>(QuestionActionTypes.GetSearchQuestions),
-      mergeMap((action) => {
-        const categoriesAsString = action.categories !== null ? action.categories.join(',') : '';
-        return this.api
-          .get<PreviewQuestionResponse[]>(`v1/questions/search?searchText=${action.searchText}&categories=${categoriesAsString}`)
-          .pipe(
-            switchMap((state) => [
-              new GetSearchQuestionsSuccess(
-                QuestionMapper.ToPreviwQuestionsViewModel(state, this.translate),
-                new SearchQuestionsQueryViewModel(action.searchText)
-              ),
-              new EffectFinishedWorking()
-            ]),
-            catchError((err) => [new EffectFinishedWorkingError(err)])
-          );
-      })
-    );
-  });
-}
Index: c/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.mapper.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.mapper.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,110 +1,0 @@
-import * as moment from 'moment';
-import {
-  AnswerQuestionStateViewModel,
-  AnswerResponseQuestionStateViewModel,
-  AnswerResponseStudentQuestionStateViewModel,
-  AnswerStudentQuestionStateViewModel,
-  PreviewQuestionCategoryViewModel,
-  PreviewQuestionViewModel,
-  QuestionCategoryQuestionStateViewModel,
-  QuestionStateViewModel,
-  StudentQuestionStateViewModel,
-  TeamQuestionStateViewModel
-} from 'src/app/shared-app/models';
-import { TranslateFromJsonService } from 'src/app/shared-app/services';
-import { PreviewQuestionCategoryResponse, PreviewQuestionResponse, QuestionStateResponse } from './question-state.models';
-
-export class QuestionMapper {
-  public static ToQuestionStateViewModel(questionStateResponse: QuestionStateResponse): QuestionStateViewModel {
-    let answers: AnswerQuestionStateViewModel[] = [];
-
-    if (questionStateResponse.answersResponse.length > 0) {
-      answers = questionStateResponse.answersResponse.map((x) => {
-        let answerResponses: AnswerResponseQuestionStateViewModel[] = [];
-
-        if (x.answerResponsesResponse.length > 0) {
-          answerResponses = x.answerResponsesResponse.map((y) => {
-            const answerResponseStudent = new AnswerResponseStudentQuestionStateViewModel(
-              y.studentResponse.uid,
-              y.studentResponse.index,
-              y.studentResponse.imageUrl,
-              y.studentResponse.reputation
-            );
-
-            return new AnswerResponseQuestionStateViewModel(y.uid, y.text, moment(y.createdOn), answerResponseStudent);
-          });
-        }
-
-        const answerStudent = new AnswerStudentQuestionStateViewModel(
-          x.studentResponse.uid,
-          x.studentResponse.index,
-          x.studentResponse.imageUrl,
-          x.studentResponse.reputation
-        );
-
-        return new AnswerQuestionStateViewModel(
-          x.uid,
-          x.text,
-          x.correctAnswer,
-          moment(x.createdOn),
-          x.upvotesCount,
-          answerStudent,
-          answerResponses
-        );
-      });
-    }
-
-    let categories: QuestionCategoryQuestionStateViewModel[] = [];
-
-    if (questionStateResponse.categoriesResponse.length > 0) {
-      categories = questionStateResponse.categoriesResponse.map((x) => new QuestionCategoryQuestionStateViewModel(x.uid, x.name));
-    }
-
-    let team: TeamQuestionStateViewModel | null = null;
-
-    if (questionStateResponse.teamResponse) {
-      team = new TeamQuestionStateViewModel(questionStateResponse.teamResponse.uid, questionStateResponse.teamResponse.name);
-    }
-
-    const student = new StudentQuestionStateViewModel(
-      questionStateResponse.studentResponse.uid,
-      questionStateResponse.studentResponse.index,
-      questionStateResponse.studentResponse.imageUrl,
-      questionStateResponse.studentResponse.reputation
-    );
-
-    return new QuestionStateViewModel(
-      questionStateResponse.uid,
-      questionStateResponse.title,
-      questionStateResponse.text,
-      moment(questionStateResponse.createdOn),
-      questionStateResponse.views,
-      moment(questionStateResponse.lastActiveOn),
-      student,
-      answers,
-      categories,
-      team
-    );
-  }
-
-  public static ToPreviwQuestionsViewModel(
-    previewQuestionsResponse: PreviewQuestionResponse[],
-    translate: TranslateFromJsonService
-  ): PreviewQuestionViewModel[] {
-    let questions = new Array<PreviewQuestionViewModel>();
-
-    if (previewQuestionsResponse.length > 0) {
-      questions = previewQuestionsResponse.map((x) => {
-        let categories = new Array<PreviewQuestionCategoryViewModel>();
-
-        if (x.categories.length > 0) {
-          categories = x.categories.map((y) => new PreviewQuestionCategoryViewModel(y.uid, y.text, translate.instant(y.text)));
-        }
-
-        return new PreviewQuestionViewModel(x.uid, x.title, moment(x.createdOn), x.views, x.answersCount, categories);
-      });
-    }
-
-    return questions;
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.reducers.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.reducers.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,54 +1,0 @@
-import { QuestionAction, QuestionActionTypes } from './question.actions';
-import { initialState, QuestionState } from './question.state';
-
-export function reducer(state = initialState, action: QuestionAction): QuestionState {
-  switch (action.type) {
-    case QuestionActionTypes.GetQuestionStateSuccess:
-      return {
-        ...state,
-        question: action.payload
-      };
-    case QuestionActionTypes.GetPreviewQuestionsLatestSuccess:
-      return {
-        ...state,
-        previewQuestionsLatest: action.payload
-      };
-    case QuestionActionTypes.GetPreviewQuestionsPopularSuccess:
-      return {
-        ...state,
-        previewQuestionsPopular: action.payload
-      };
-    case QuestionActionTypes.GetSearchQuestionsSuccess:
-      return {
-        ...state,
-        searchQuestions: action.payload,
-        searchQuestionsQuery: action.query
-      };
-    case QuestionActionTypes.EffectStartedWorking: {
-      return {
-        ...state,
-        effectWorking: true
-      };
-    }
-
-    case QuestionActionTypes.EffectFinishedWorking: {
-      return {
-        ...state,
-        effectWorking: false
-      };
-    }
-
-    case QuestionActionTypes.EffectFinishedWorkingError: {
-      return {
-        ...state,
-        effectWorking: action.payload
-      };
-    }
-
-    default: {
-      return {
-        ...state
-      };
-    }
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.selectors.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.selectors.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { createFeatureSelector, createSelector } from '@ngrx/store';
-import { QuestionState, questionStateKey } from './question.state';
-
-export const getQuestionState = createFeatureSelector<QuestionState>(questionStateKey);
-
-const getQuestion = createSelector(getQuestionState, (state) => state.question);
-const getPreviewQuestionsLatest = createSelector(getQuestionState, (state) => state.previewQuestionsLatest);
-const getPreviewQuestionsPopular = createSelector(getQuestionState, (state) => state.previewQuestionsPopular);
-const getSearchQuestions = createSelector(getQuestionState, (state) => state.searchQuestions);
-const getSearchQuestionsQuery = createSelector(getQuestionState, (state) => state.searchQuestionsQuery);
-const effectWorking = createSelector(getQuestionState, (state) => state.effectWorking);
-
-export const questionStateQuery = {
-  effectWorking,
-  getQuestion,
-  getPreviewQuestionsLatest,
-  getPreviewQuestionsPopular,
-  getSearchQuestions,
-  getSearchQuestionsQuery
-};
Index: c/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.state.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/state/question-state/question.state.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { HttpErrorResponse } from '@angular/common/http';
-import { PreviewQuestionViewModel, QuestionStateViewModel, SearchQuestionsQueryViewModel } from 'src/app/shared-app/models';
-
-export const questionStateKey = 'question';
-
-export interface QuestionState {
-  question: QuestionStateViewModel | null;
-  previewQuestionsLatest: PreviewQuestionViewModel[];
-  previewQuestionsPopular: PreviewQuestionViewModel[];
-  effectWorking: boolean | HttpErrorResponse;
-  searchQuestions: PreviewQuestionViewModel[];
-  searchQuestionsQuery: SearchQuestionsQueryViewModel | null;
-}
-
-export const initialState: QuestionState = {
-  question: null,
-  previewQuestionsLatest: [],
-  previewQuestionsPopular: [],
-  searchQuestions: [],
-  effectWorking: false,
-  searchQuestionsQuery: null
-};
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/question-preview-general/question-preview-general.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/question-preview-general/question-preview-general.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,3 +1,0 @@
-<div>
-  <app-question-preview> </app-question-preview>
-</div>
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/question-preview-general/question-preview-general.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/question-preview-general/question-preview-general.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { QuestionPreviewGeneralComponent } from './question-preview-general.component';
-
-describe('QuestionPreviewGeneralComponent', () => {
-  let component: QuestionPreviewGeneralComponent;
-  let fixture: ComponentFixture<QuestionPreviewGeneralComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ QuestionPreviewGeneralComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(QuestionPreviewGeneralComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/question-preview-general/question-preview-general.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/question-preview-general/question-preview-general.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { Component, OnInit } from '@angular/core';
-import { ActivatedRoute } from '@angular/router';
-import { QuestionFacadeService } from 'src/app/core/state/question-facade.service';
-import { ButtonType } from 'src/app/shared-app/components/generic/button/button.models';
-
-@Component({
-  selector: 'app-question-preview-general',
-  templateUrl: './question-preview-general.component.html',
-  styleUrls: ['./question-preview-general.component.scss']
-})
-export class QuestionPreviewGeneralComponent implements OnInit {
-  ButtonType = ButtonType;
-
-  constructor(private questionFacade: QuestionFacadeService, private route: ActivatedRoute) {}
-
-  ngOnInit(): void {
-    this.route.params.subscribe((params) => {
-      this.questionFacade.fetchQuestion(params.questionUid);
-    });
-  }
-}
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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-components.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,13 +1,3 @@
-import { QuestionPreviewGeneralComponent } from './question-preview-general/question-preview-general.component';
-import { QuestioningGeneralComponent } from './questioning-general/questioning-general.component';
-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[] = [
-  QuestionPreviewGeneralComponent,
-  QuestionsPreviewGeneralComponent,
-  QuestioningGeneralComponent,
-  QuestionsSearchComponent,
-  AskQuestionComponent
-];
+export const QUESTIONING_COMPONENTS: any[] = [AskQuestionComponent];
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-general/questioning-general.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-general/questioning-general.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,7 +1,0 @@
-<div class="padding-md" fxLayout="row" fxLayout.sm="column" fxLayout.xs="column" fxL fxLayoutAlign="space-around center">
-  <div fxFlex="20%"></div>
-  <div class="margin-top-md" fxFlex="80%">
-    <router-outlet></router-outlet>
-  </div>
-  <div fxFlex="20%"></div>
-</div>
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-general/questioning-general.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-general/questioning-general.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { QuestioningGeneralComponent } from './questioning-general.component';
-
-describe('QuestioningGeneralComponent', () => {
-  let component: QuestioningGeneralComponent;
-  let fixture: ComponentFixture<QuestioningGeneralComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ QuestioningGeneralComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(QuestioningGeneralComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,12 +1,0 @@
-import { Component, OnInit } from '@angular/core';
-
-@Component({
-  selector: 'app-questioning-general',
-  templateUrl: './questioning-general.component.html',
-  styleUrls: ['./questioning-general.component.scss']
-})
-export class QuestioningGeneralComponent implements OnInit {
-  constructor() {}
-
-  ngOnInit(): void {}
-}
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-preview-general/questions-preview-general.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-preview-general/questions-preview-general.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,13 +1,0 @@
-<app-search-question (searched)="routeToSearch()"></app-search-question>
-<div class="margin-x-lg">
-  <h1 class="mat-headline">{{ 'questions-preview' | translate }}</h1>
-  <mat-button-toggle-group [formControl]="questionsSortByForm">
-    <mat-button-toggle [value]="QuestionsSortBy.Latest">{{ 'question-sort-newest' | translate }}</mat-button-toggle>
-    <mat-button-toggle [value]="QuestionsSortBy.Popular">{{ 'question-sort-popular' | translate }}</mat-button-toggle>
-  </mat-button-toggle-group>
-</div>
-<app-preview-question-display
-  *ngFor="let question of previewQuestions$ | async"
-  [question]="question"
-  (questionClicked)="goToQuestion(question.uid)"
-></app-preview-question-display>
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-preview-general/questions-preview-general.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-preview-general/questions-preview-general.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { QuestionsPreviewGeneralComponent } from './questions-preview-general.component';
-
-describe('QuestionsPreviewGeneralComponent', () => {
-  let component: QuestionsPreviewGeneralComponent;
-  let fixture: ComponentFixture<QuestionsPreviewGeneralComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ QuestionsPreviewGeneralComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(QuestionsPreviewGeneralComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,42 +1,0 @@
-import { Component, OnInit } from '@angular/core';
-import { FormControl } from '@angular/forms';
-import { Router } from '@angular/router';
-import { CategoryFacadeService } from 'src/app/core/state/category-facade.service';
-import { QuestionFacadeService } from 'src/app/core/state/question-facade.service';
-import { CategoryStateViewModel, PreviewQuestionsOrderEnum } from 'src/app/shared-app/models';
-
-@Component({
-  selector: 'app-questions-preview-general',
-  templateUrl: './questions-preview-general.component.html',
-  styleUrls: ['./questions-preview-general.component.scss']
-})
-export class QuestionsPreviewGeneralComponent implements OnInit {
-  categories?: CategoryStateViewModel[];
-  previewQuestions$ = this.questionFacade.getPreviewQuestionsLatest();
-  QuestionsSortBy = PreviewQuestionsOrderEnum;
-  questionsSortByForm = new FormControl(PreviewQuestionsOrderEnum.Latest);
-
-  constructor(private categoriesFacade: CategoryFacadeService, private questionFacade: QuestionFacadeService, private router: Router) {}
-
-  ngOnInit(): void {
-    this.categoriesFacade.fetchCategories();
-    this.questionFacade.fetchPreviewQuestions(PreviewQuestionsOrderEnum.Latest);
-    this.questionsSortByForm.valueChanges.subscribe((value: PreviewQuestionsOrderEnum) => {
-      this.questionFacade.fetchPreviewQuestions(value);
-
-      if (value === PreviewQuestionsOrderEnum.Latest) {
-        this.previewQuestions$ = this.questionFacade.getPreviewQuestionsLatest();
-      } else if (value === PreviewQuestionsOrderEnum.Popular) {
-        this.previewQuestions$ = this.questionFacade.getPreviewQuestionsPopular();
-      }
-    });
-  }
-
-  goToQuestion(uid: string): void {
-    this.router.navigateByUrl(`questioning/${uid}`);
-  }
-
-  routeToSearch(): void {
-    this.router.navigateByUrl(`questioning/search`);
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-search/questions-search.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-search/questions-search.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,9 +1,0 @@
-<app-search-question></app-search-question>
-<div class="margin-x-lg">
-  <h1 class="mat-headline">{{ 'questions-search-title' | translate: { searchQuery: (searchQuestionsQuery$ | async)?.text } }}</h1>
-</div>
-<app-preview-question-display
-  *ngFor="let question of searchQuestions$ | async"
-  [question]="question"
-  (questionClicked)="goToQuestion(question.uid)"
-></app-preview-question-display>
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-search/questions-search.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-search/questions-search.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { QuestionsSearchComponent } from './questions-search.component';
-
-describe('QuestionsSearchComponent', () => {
-  let component: QuestionsSearchComponent;
-  let fixture: ComponentFixture<QuestionsSearchComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ QuestionsSearchComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(QuestionsSearchComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-search/questions-search.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-search/questions-search.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,22 +1,0 @@
-import { Component, OnInit } from '@angular/core';
-import { Router } from '@angular/router';
-
-import { QuestionFacadeService } from 'src/app/core/state/question-facade.service';
-
-@Component({
-  selector: 'app-questions-search',
-  templateUrl: './questions-search.component.html',
-  styleUrls: ['./questions-search.component.scss']
-})
-export class QuestionsSearchComponent implements OnInit {
-  searchQuestions$ = this.questionFacade.getSearchQuestions();
-  searchQuestionsQuery$ = this.questionFacade.getSearchQuestionsQuery();
-
-  constructor(private questionFacade: QuestionFacadeService, private router: Router) {}
-
-  ngOnInit(): void {}
-
-  goToQuestion(uid: string): void {
-    this.router.navigateByUrl(`questioning/${uid}`);
-  }
-}
Index: src/Clients/Angular/finki-chattery/src/app/modules/questioning/questioning.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/modules/questioning/questioning.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/questioning.module.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,7 +1,8 @@
 import { NgModule } from '@angular/core';
 
-import { QuestioningRoutingModule } from './questioning.routes';
 import { QUESTIONING_COMPONENTS } from './components/questioning-components';
 import { SharedAppModule } from 'src/app/shared-app/shared-app.module';
+import { QuestioningRoutingModule } from './questioning.routes';
+
 @NgModule({
   declarations: [QUESTIONING_COMPONENTS],
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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/modules/questioning/questioning.routes.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,8 +1,4 @@
 import { NgModule } from '@angular/core';
 import { Routes, RouterModule } from '@angular/router';
-import { QuestionPreviewGeneralComponent } from './components/question-preview-general/question-preview-general.component';
-import { QuestioningGeneralComponent } from './components/questioning-general/questioning-general.component';
-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';
@@ -10,28 +6,7 @@
 const routes: Routes = [
   {
-    component: QuestioningGeneralComponent,
-    path: '',
-    children: [
-      {
-        path: 'preview',
-        pathMatch: 'full',
-        component: QuestionsPreviewGeneralComponent
-      },
-      {
-        path: 'search',
-        pathMatch: 'full',
-        component: QuestionsSearchComponent
-      },
-      {
-        path: 'ask',
-        pathMatch: 'full',
-        component: AskQuestionComponent,
-        canActivate: [AuthorizedStudentGuard]
-      }
-      {
-        path: ':questionUid',
-        component: QuestionPreviewGeneralComponent
-      }
-    ]
+    path: 'ask',
+    component: AskQuestionComponent,
+    canActivate: [AuthorizedStudentGuard]
   }
 ];
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/components.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/components.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,21 +1,0 @@
-import { ButtonComponent } from './generic/button/button.component';
-import { FileUploadComponent } from './generic/file-upload/file-upload.component';
-import { FormErrorComponent } from './generic/form-error/form-error.component';
-import { HeaderComponent } from './generic/header/header.component';
-import { VoteComponent } from './generic/vote/vote.component';
-import { PreviewQuestionDisplayComponent } from './question/preview-question-display/preview-question-display.component';
-import { QuestionPreviewComponent } from './question/question-preview/question-preview.component';
-import { SearchQuestionComponent } from './question/search-question/search-question.component';
-import { StudentCardComponent } from './question/student-card/student-card.component';
-
-export const COMPONENTS: any[] = [
-  ButtonComponent,
-  FormErrorComponent,
-  FileUploadComponent,
-  QuestionPreviewComponent,
-  VoteComponent,
-  StudentCardComponent,
-  HeaderComponent,
-  SearchQuestionComponent,
-  PreviewQuestionDisplayComponent
-];
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/components.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/components.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/components.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -0,0 +1,5 @@
+import { ButtonComponent } from './button/button.component';
+import { FileUploadComponent } from './file-upload/file-upload.component';
+import { FormErrorComponent } from './form-error/form-error.component';
+
+export const COMPONENTS: any[] = [ButtonComponent, FormErrorComponent, FileUploadComponent];
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,5 +1,0 @@
-<mat-toolbar>
-  <span>FinkiChattery</span>
-  <span class="right"></span>
-  <app-button *ngIf="auth.isLoggedIn()" (action)="logout()" [buttonType]="ButtonType.CallToAction">Logout</app-button>
-</mat-toolbar>
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.scss
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.scss	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,3 +1,0 @@
-.right {
-  flex: 1 1 auto;
-}
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,20 +1,0 @@
-import { Component, OnInit } from '@angular/core';
-import { AuthService } from 'src/app/core/services';
-import { ButtonType } from '../button/button.models';
-
-@Component({
-  selector: 'app-header',
-  templateUrl: './header.component.html',
-  styleUrls: ['./header.component.scss']
-})
-export class HeaderComponent implements OnInit {
-  ButtonType = ButtonType;
-
-  constructor(public auth: AuthService) {}
-
-  ngOnInit(): void {}
-
-  logout(): void {
-    this.auth.logout();
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/vote/vote.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/vote/vote.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,10 +1,0 @@
-<div>
-  <div class="vote-icons" fxLayout="column" fxLayoutAlign="center center">
-    <mat-icon class="vote-icon" (click)="voted(VoteType.Upvote)" [inline]="true">arrow_drop_up</mat-icon>
-    <div class="text-bold text-center">{{ voteCount }}</div>
-    <mat-icon class="vote-icon margin-bottom-xs" (click)="voted(VoteType.Downvote)" [inline]="true">arrow_drop_down</mat-icon>
-    <mat-icon [inline]="true" matTooltip="{{ 'vote-correct-answer' | translate }}" class="text-center text-bold green" *ngIf="correct"
-      >check</mat-icon
-    >
-  </div>
-</div>
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/vote/vote.component.scss
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/vote/vote.component.scss	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,15 +1,0 @@
-.green {
-  color: green;
-}
-
-.vote-icons mat-icon {
-  font-size: 50px;
-}
-
-.vote-icon {
-  font-size: 70px !important;
-}
-
-mat-icon:hover {
-  cursor: pointer;
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/vote/vote.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/vote/vote.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { VoteComponent } from './vote.component';
-
-describe('VoteComponent', () => {
-  let component: VoteComponent;
-  let fixture: ComponentFixture<VoteComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ VoteComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(VoteComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/vote/vote.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/vote/vote.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { ButtonType } from '../button/button.models';
-
-export enum VoteType {
-  Upvote,
-  Downvote
-}
-
-@Component({
-  selector: 'app-vote',
-  templateUrl: './vote.component.html',
-  styleUrls: ['./vote.component.scss']
-})
-export class VoteComponent implements OnInit {
-  @Input() voteCount: number | undefined;
-  @Input() correct = false;
-  @Output() voteClicked = new EventEmitter<VoteType>();
-
-  VoteType = VoteType;
-  ButtonType = ButtonType;
-
-  constructor() {}
-
-  ngOnInit(): void {}
-
-  public voted(voteType: VoteType): void {
-    this.voteClicked.emit(voteType);
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/preview-question-display/preview-question-display.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/preview-question-display/preview-question-display.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,24 +1,0 @@
-<mat-card class="margin-bottom-md cursor" appHoverElevation (click)="handleQuestionCardClicked()">
-  <mat-card-title>{{ question?.title }}</mat-card-title>
-  <mat-card-subtitle>{{
-    'questions-preview-question-subtitle' | translate: { date: question?.createdOn | momentDate: 'LLLL' }
-  }}</mat-card-subtitle>
-
-  <mat-card-content>
-    <div fxLayout="row" fxLayoutGap="15px" fxLayoutAlign="start center">
-      <mat-chip-list>
-        <mat-chip *ngFor="let category of question?.categories">
-          {{ category.nameTranslated }}
-        </mat-chip>
-      </mat-chip-list>
-      <div class="text-center push-end">
-        <mat-icon matBadge="{{ question?.answersCount }}" matBadgeColor="primary">question_answer</mat-icon>
-        <p>{{ 'questions-preview-question-answers' | translate }}</p>
-      </div>
-      <div class="text-center">
-        <mat-icon matBadge="{{ question?.views }}" matBadgeColor="primary">visibility</mat-icon>
-        <p>{{ 'questions-preview-question-views' | translate }}</p>
-      </div>
-    </div>
-  </mat-card-content>
-</mat-card>
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/preview-question-display/preview-question-display.component.scss
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/preview-question-display/preview-question-display.component.scss	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,11 +1,0 @@
-mat-card-subtitle {
-  margin-bottom: 0;
-}
-
-p {
-  margin-bottom: 0;
-}
-
-.push-end {
-  margin-left: auto;
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/preview-question-display/preview-question-display.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/preview-question-display/preview-question-display.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PreviewQuestionDisplayComponent } from './preview-question-display.component';
-
-describe('PreviewQuestionDisplayComponent', () => {
-  let component: PreviewQuestionDisplayComponent;
-  let fixture: ComponentFixture<PreviewQuestionDisplayComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ PreviewQuestionDisplayComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(PreviewQuestionDisplayComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/preview-question-display/preview-question-display.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/preview-question-display/preview-question-display.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { PreviewQuestionViewModel } from 'src/app/shared-app/models';
-
-@Component({
-  selector: 'app-preview-question-display',
-  templateUrl: './preview-question-display.component.html',
-  styleUrls: ['./preview-question-display.component.scss']
-})
-export class PreviewQuestionDisplayComponent implements OnInit {
-  @Input() question?: PreviewQuestionViewModel;
-  @Output() questionClicked = new EventEmitter();
-  constructor() {}
-
-  ngOnInit(): void {}
-
-  handleQuestionCardClicked(): void {
-    this.questionClicked.emit();
-  }
-}
Index: c/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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,74 +1,0 @@
-<div *ngIf="!working">
-  <mat-card appHoverElevation class="margin-bottom-xl">
-    <mat-card-title>{{ question.title }}</mat-card-title>
-    <mat-card-subtitle
-      [innerHTML]="
-        'question-preview-subtitle'
-          | translate
-            : {
-                createdOn: question.createdOn | momentDate: 'LLLL',
-                lastActive: question.lastActiveOn | momentDate: 'LLLL',
-                views: question.views
-              }
-      "
-    ></mat-card-subtitle>
-    <mat-card-content>
-      <mat-chip-list>
-        <mat-chip *ngFor="let category of question.categories">
-          {{ category.name }}
-        </mat-chip>
-      </mat-chip-list>
-
-      <div class="margin-top-lg" [innerHTML]="question.text"></div>
-      <div class="align-right">
-        <app-student-card
-          [indexNumber]="question.student.index"
-          [imageUrl]="question.student.imageUrl"
-          [uid]="question.student.uid"
-          [reputation]="question.student.reputation"
-          [subtitle]="'question-asked-by-subtitle' | translate: { date: question.createdOn | momentDate: 'LL' }"
-        ></app-student-card>
-      </div>
-    </mat-card-content>
-    <mat-card-actions>
-      <app-button appShareLink [buttonType]="ButtonType.Basic">{{ 'share-link' | translate }}</app-button>
-    </mat-card-actions>
-  </mat-card>
-
-  <h1 class="mat-headline">{{ 'question-answers' | translate: { answerCount: question.answers.length } }}</h1>
-  <mat-button-toggle-group>
-    <mat-button-toggle>{{ 'answer-sort-oldest' | translate }}</mat-button-toggle>
-    <mat-button-toggle>{{ 'answer-sort-votes' | translate }}</mat-button-toggle>
-  </mat-button-toggle-group>
-
-  <ng-container *ngFor="let answer of question.answers">
-    <mat-card appHoverElevation class="margin-x-md">
-      <mat-card-content>
-        <div fxLayout="row wrap" fxLayoutAlign="space-around none">
-          <app-vote [voteCount]="answer.upvotesCount" [correct]="answer.correctAnswer" fxFlex="6%"></app-vote>
-          <div fxFlex="92%">
-            <div [innerHTML]="answer.text"></div>
-            <div class="align-right">
-              <app-student-card
-                [indexNumber]="answer.student.index"
-                [imageUrl]="answer.student.imageUrl"
-                [uid]="answer.student.uid"
-                [reputation]="answer.student.reputation"
-                [subtitle]="'question-answered-by-subtitle' | translate: { date: answer.createdOn | momentDate: 'LL' }"
-              ></app-student-card>
-            </div>
-
-            <hr />
-            <div *ngFor="let answerResponse of answer.answerResponses">
-              {{ answerResponse.text }}
-              <mat-chip class="cursor" selected>{{ answerResponse.student.index }}</mat-chip> -
-              {{ answerResponse.createdOn | momentDate: 'LL' }}
-              <hr />
-            </div>
-          </div>
-        </div>
-      </mat-card-content>
-      <mat-card-actions> </mat-card-actions>
-    </mat-card>
-  </ng-container>
-</div>
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.scss
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.scss	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,8 +1,0 @@
-.align-right {
-  display: flex;
-  justify-content: right;
-}
-
-mat-card-content {
-  margin-bottom: 0;
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { QuestionPreviewComponent } from './question-preview.component';
-
-describe('QuestionPreviewComponent', () => {
-  let component: QuestionPreviewComponent;
-  let fixture: ComponentFixture<QuestionPreviewComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ QuestionPreviewComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(QuestionPreviewComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/question-preview/question-preview.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,24 +1,0 @@
-import { Component, OnInit } from '@angular/core';
-import { QuestionFacadeService } from 'src/app/core/state/question-facade.service';
-
-import { QuestionStateViewModel } from 'src/app/shared-app/models';
-import { ButtonType } from '../../generic/button/button.models';
-
-@Component({
-  selector: 'app-question-preview',
-  templateUrl: './question-preview.component.html',
-  styleUrls: ['./question-preview.component.scss']
-})
-export class QuestionPreviewComponent implements OnInit {
-  question!: QuestionStateViewModel;
-  working = true;
-  ButtonType = ButtonType;
-  constructor(private questionFacade: QuestionFacadeService) {}
-
-  ngOnInit(): void {
-    this.questionFacade.getQuestion().subscribe((question) => {
-      this.question = question;
-      this.working = false;
-    });
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/search-question/search-question.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/search-question/search-question.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,28 +1,0 @@
-<mat-card>
-  <mat-card-content>
-    <mat-form-field class="full-width" appearance="fill" appHandleInputFormErrors>
-      <input
-        [placeholder]="'questions-preview-find-question' | translate"
-        matInput
-        autocomplete="off"
-        [formControl]="questionSearchFormContor"
-        (keydown)="searchQuestionsKeyboard($event)"
-      />
-      <mat-icon matSuffix>search</mat-icon>
-    </mat-form-field>
-    <mat-form-field class="full-width" appearance="fill">
-      <mat-select
-        [formControl]="questionCategoriesFormContor"
-        multiple
-        [placeholder]="'questions-preview-find-question-categories' | translate"
-      >
-        <mat-option *ngFor="let category of categories$ | async" [value]="category.uid">{{ category.translatedName }}</mat-option>
-      </mat-select>
-    </mat-form-field>
-  </mat-card-content>
-  <mat-card-actions>
-    <app-button [buttonType]="ButtonType.CallToAction" [disabled]="questionSearchFormContor.invalid" (action)="searchQuestions()">{{
-      'questions-search' | translate
-    }}</app-button>
-  </mat-card-actions>
-</mat-card>
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/search-question/search-question.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/search-question/search-question.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { SearchQuestionComponent } from './search-question.component';
-
-describe('SearchQuestionComponent', () => {
-  let component: SearchQuestionComponent;
-  let fixture: ComponentFixture<SearchQuestionComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ SearchQuestionComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(SearchQuestionComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/search-question/search-question.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/search-question/search-question.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,35 +1,0 @@
-import { Component, EventEmitter, OnInit, Output } from '@angular/core';
-import { FormControl, Validators } from '@angular/forms';
-
-import { CategoryFacadeService } from 'src/app/core/state/category-facade.service';
-import { QuestionFacadeService } from 'src/app/core/state/question-facade.service';
-import { ButtonType } from '../../generic/button/button.models';
-
-@Component({
-  selector: 'app-search-question',
-  templateUrl: './search-question.component.html',
-  styleUrls: ['./search-question.component.scss']
-})
-export class SearchQuestionComponent implements OnInit {
-  @Output() searched = new EventEmitter();
-
-  ButtonType = ButtonType;
-  questionSearchFormContor = new FormControl('', [Validators.required, Validators.maxLength(250)]);
-  questionCategoriesFormContor = new FormControl();
-  categories$ = this.categoriesFacade.getCategories();
-
-  constructor(private categoriesFacade: CategoryFacadeService, private questionsFacade: QuestionFacadeService) {}
-
-  ngOnInit(): void {}
-
-  public searchQuestionsKeyboard(event: KeyboardEvent): void {
-    if (event.code === 'enter') {
-      this.searchQuestions();
-    }
-  }
-
-  public searchQuestions(): void {
-    this.questionsFacade.searchQuestions(this.questionSearchFormContor.value, this.questionCategoriesFormContor.value);
-    this.searched.emit();
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/student-card/student-card.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/student-card/student-card.component.html	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,8 +1,0 @@
-<mat-card (click)="cardClicked()">
-  <mat-card-subtitle class="student-subtitle">{{ subtitle }}</mat-card-subtitle>
-  <mat-card-header>
-    <img mat-card-avatar src="{{ imageUrl }}" />
-    <mat-card-title>{{ indexNumber }}</mat-card-title>
-    <mat-card-subtitle>{{ 'student-reputation' | translate: { reputation: reputation } }}</mat-card-subtitle>
-  </mat-card-header>
-</mat-card>
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/student-card/student-card.component.scss
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/student-card/student-card.component.scss	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,13 +1,0 @@
-mat-card {
-  width: fit-content;
-  padding: 0;
-  box-shadow: none !important;
-}
-
-mat-card:hover {
-  cursor: pointer;
-}
-
-.student-subtitle {
-  margin: 0;
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/student-card/student-card.component.spec.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/student-card/student-card.component.spec.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,25 +1,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { StudentCardComponent } from './student-card.component';
-
-describe('StudentCardComponent', () => {
-  let component: StudentCardComponent;
-  let fixture: ComponentFixture<StudentCardComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [ StudentCardComponent ]
-    })
-    .compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(StudentCardComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/components/question/student-card/student-card.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/question/student-card/student-card.component.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,23 +1,0 @@
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-
-@Component({
-  selector: 'app-student-card',
-  templateUrl: './student-card.component.html',
-  styleUrls: ['./student-card.component.scss']
-})
-export class StudentCardComponent implements OnInit {
-  @Input() imageUrl: string | undefined;
-  @Input() indexNumber: string | undefined;
-  @Input() uid!: string;
-  @Input() reputation: number | undefined;
-  @Input() subtitle: string | undefined;
-  @Output() studentCardClicked = new EventEmitter<string>();
-
-  constructor() {}
-
-  ngOnInit(): void {}
-
-  cardClicked(): void {
-    this.studentCardClicked.emit(this.uid);
-  }
-}
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/directives/directives.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/directives/directives.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/directives/directives.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,9 +1,3 @@
-import {
-  HandleInputFormErrorsDirective,
-  HoverElevationDirective,
-  LoaderDirective,
-  HandleSelectFormErrorsDirective,
-  ShareLinkDirective
-} from '.';
+import { HandleInputFormErrorsDirective, HoverElevationDirective, LoaderDirective, HandleSelectFormErrorsDirective } from '.';
 
 export const DIRECTIVES: any[] = [
@@ -11,5 +5,4 @@
   LoaderDirective,
   HoverElevationDirective,
-  HandleSelectFormErrorsDirective,
-  ShareLinkDirective
+  HandleSelectFormErrorsDirective
 ];
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/directives/index.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/directives/index.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/directives/index.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -3,3 +3,2 @@
 export * from './hover-elevation.directive';
 export * from './handle-select-form-errors.directive';
-export * from './share-link.directive';
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/directives/share-link.directive.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/directives/share-link.directive.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,32 +1,0 @@
-import { Directive, ElementRef, HostListener, Input } from '@angular/core';
-
-import { NotificationService } from 'src/app/core/services/notification.service';
-
-@Directive({
-  selector: '[appShareLink]'
-})
-export class ShareLinkDirective {
-  @Input() link: string | null | undefined;
-
-  el: ElementRef;
-
-  constructor(el: ElementRef, private notification: NotificationService) {
-    this.el = el;
-  }
-
-  @HostListener('click', ['$event']) onClick($event: any): void {
-    let contentToCopy = window.location.href;
-    if (this.link) {
-      contentToCopy = this.link;
-    }
-
-    const copyFromElement = document.createElement('input');
-    copyFromElement.style.display = 'hide';
-    copyFromElement.value = contentToCopy;
-    document.body.appendChild(copyFromElement);
-    copyFromElement.select();
-    document.execCommand('copy');
-    document.body.removeChild(copyFromElement);
-    this.notification.successNotification('share-link-success');
-  }
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/models/category-state-view-models.models.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/models/category-state-view-models.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,3 +1,0 @@
-export class CategoryStateViewModel {
-  constructor(public uid: string, public name: string, public translatedName: 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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/models/index.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,6 +1,3 @@
 export * from './error.models';
 export * from './user.models';
-export * from './question-state-view-models.models';
-export * from './category-state-view-models.models';
-export * from './question-state-enums.models';
 export * from './categories.models';
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/models/question-state-enums.models.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/models/question-state-enums.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,4 +1,0 @@
-export enum PreviewQuestionsOrderEnum {
-  Latest,
-  Popular
-}
Index: c/Clients/Angular/finki-chattery/src/app/shared-app/models/question-state-view-models.models.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/models/question-state-view-models.models.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,74 +1,0 @@
-export class QuestionStateViewModel {
-  constructor(
-    public uid: string,
-    public title: string,
-    public text: string,
-    public createdOn: moment.Moment,
-    public views: number,
-    public lastActiveOn: moment.Moment,
-    public student: StudentQuestionStateViewModel,
-    public answers: AnswerQuestionStateViewModel[],
-    public categories: QuestionCategoryQuestionStateViewModel[],
-    public team: TeamQuestionStateViewModel | null
-  ) {}
-}
-
-export class StudentQuestionStateViewModel {
-  constructor(public uid: string, public index: string, public imageUrl: string, public reputation: number) {}
-}
-
-export class TeamQuestionStateViewModel {
-  constructor(public uid: string, public name: string) {}
-}
-
-export class QuestionCategoryQuestionStateViewModel {
-  constructor(public uid: string, public name: string) {}
-}
-
-export class AnswerQuestionStateViewModel {
-  constructor(
-    public uid: string,
-    public text: string,
-    public correctAnswer: boolean,
-    public createdOn: moment.Moment,
-    public upvotesCount: number,
-    public student: AnswerStudentQuestionStateViewModel,
-    public answerResponses: AnswerResponseQuestionStateViewModel[]
-  ) {}
-}
-
-export class AnswerStudentQuestionStateViewModel {
-  constructor(public uid: string, public index: string, public imageUrl: string, public reputation: number) {}
-}
-
-export class AnswerResponseQuestionStateViewModel {
-  constructor(
-    public uid: string,
-    public text: string,
-    public createdOn: moment.Moment,
-    public student: AnswerResponseStudentQuestionStateViewModel
-  ) {}
-}
-
-export class AnswerResponseStudentQuestionStateViewModel {
-  constructor(public uid: string, public index: string, public imageUrl: string, public reputation: number) {}
-}
-
-export class PreviewQuestionViewModel {
-  constructor(
-    public uid: string,
-    public title: string,
-    public createdOn: moment.Moment,
-    public views: number,
-    public answersCount: number,
-    public categories: PreviewQuestionCategoryViewModel[]
-  ) {}
-}
-
-export class PreviewQuestionCategoryViewModel {
-  constructor(public uid: string, public text: string, public nameTranslated: string) {}
-}
-
-export class SearchQuestionsQueryViewModel {
-  constructor(public text: string) {}
-}
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/pipes/moment-date.pipe.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/pipes/moment-date.pipe.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/pipes/moment-date.pipe.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -6,5 +6,5 @@
 })
 export class MomentDatePipe implements PipeTransform {
-  transform(value: moment.Moment | undefined | null, dateFormat: string): any {
+  transform(value: moment.Moment, dateFormat: string): any {
     return moment(value).format(dateFormat);
   }
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/services/translate-from-json.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/services/translate-from-json.service.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/services/translate-from-json.service.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -43,6 +43,9 @@
   }
 
-  public instant(key: string): string {
-    return this.translateService.instant(key);
+  public instant(key?: string): string | undefined {
+    if (key) {
+      return this.translateService.instant(key);
+    }
+    return undefined;
   }
 }
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 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/shared-app.module.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -9,12 +9,14 @@
 import { EditorModule } from '@tinymce/tinymce-angular';
 
-import { COMPONENTS } from './components/components';
+import { COMPONENTS } from './components/generic/components';
 import { SharedMaterialModule } from '../shared-material/shared-material.module';
 import { DIRECTIVES } from './directives/directives';
 import { SERVICES } from './services/services';
 import { PIPES } from './pipes/pipes';
+import { FileUploadComponent } from './components/generic/file-upload/file-upload.component';
+import { HandleSelectFormErrorsDirective } from './directives/handle-select-form-errors.directive';
 
 @NgModule({
-  declarations: [COMPONENTS, DIRECTIVES, PIPES],
+  declarations: [COMPONENTS, DIRECTIVES, PIPES, FileUploadComponent, HandleSelectFormErrorsDirective],
   providers: [SERVICES],
   imports: [
Index: src/Clients/Angular/finki-chattery/src/app/shared-material/shared-material.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-material/shared-material.module.ts	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/app/shared-material/shared-material.module.ts	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -20,9 +20,4 @@
 import { MatDatepickerModule } from '@angular/material/datepicker';
 import { MatNativeDateModule } from '@angular/material/core';
-import { MatChipsModule } from '@angular/material/chips';
-import { MatTooltipModule } from '@angular/material/tooltip';
-import { MatButtonToggleModule } from '@angular/material/button-toggle';
-import { MatBadgeModule } from '@angular/material/badge';
-
 @NgModule({
   imports: [
@@ -45,9 +40,5 @@
     MatTableModule,
     MatDatepickerModule,
-    MatNativeDateModule,
-    MatChipsModule,
-    MatTooltipModule,
-    MatButtonToggleModule,
-    MatBadgeModule
+    MatNativeDateModule
   ],
   exports: [
@@ -69,9 +60,5 @@
     MatTableModule,
     MatDatepickerModule,
-    MatNativeDateModule,
-    MatChipsModule,
-    MatTooltipModule,
-    MatButtonToggleModule,
-    MatBadgeModule
+    MatNativeDateModule
   ]
 })
Index: src/Clients/Angular/finki-chattery/src/assets/translations/en.json
===================================================================
--- src/Clients/Angular/finki-chattery/src/assets/translations/en.json	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/assets/translations/en.json	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -14,34 +14,4 @@
   "password-not-match": "Passwords don't match",
   "code-date-passed": "The code date has passed",
-  "not-found": "Not found",
-  "question-preview-subtitle": "Asked <b>{{createdOn}}</b>, Last active <b>{{lastActive}}</b>, Viewed <b>{{views}}</b> times",
-  "share-link": "Share",
-  "share-link-success": "Successfully copied link for sharing",
-  "question-asked-by-subtitle": "Asked on: {{date}}",
-  "question-answers": "{{answerCount}} Answers",
-  "question-answered-by-subtitle": "Answered on: {{date}}",
-  "student-reputation": "{{reputation}} reputation",
-  "vote-correct-answer": "This has been accepted as the correct answer by the owner of the question",
-  "answer-sort-oldest": "Oldest",
-  "answer-sort-votes": "Votes",
-  "internet-techologies": "Internet technologies",
-  "software-engineering": "Software engineering",
-  "visual-programming": "Visual programming",
-  "operating-systems": "Operating systems",
-  "internet-programming": "Internet programming",
-  "object-oriented-programming": "Object oriented programming",
-  "calculus": "Calculus",
-  "discrete-mathematics": "Discrete mathematics",
-  "web-programming": "Web programming",
-  "advanced-programming": "Advanced programming",
-  "questions-preview-find-question": "Search for a question",
-  "questions-preview-find-question-categories": "Search in categories",
-  "questions-search": "Search",
-  "questions-preview": "Preview questions",
-  "question-sort-newest": "Newest",
-  "question-sort-popular": "Most popular",
-  "questions-preview-question-subtitle": "Asked on: {{date}}",
-  "questions-preview-question-answers": "Answers",
-  "questions-preview-question-views": "Views",
-  "questions-search-title": "Search results for: {{searchQuery}}"
+  "not-found": "Not found"
 }
Index: src/Clients/Angular/finki-chattery/src/styles.scss
===================================================================
--- src/Clients/Angular/finki-chattery/src/styles.scss	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/Clients/Angular/finki-chattery/src/styles.scss	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -264,6 +264,6 @@
 
 .avatar-image {
-  width: 80px;
-  height: 80px;
+  width: 100px;
+  height: 100px;
   display: block;
   border-radius: 50%;
@@ -285,6 +285,2 @@
   z-index: 1100 !important;
 }
-
-.full-width {
-  width: 100%;
-}
Index: c/FinkiChattery/FinkiChattery.Api/ApplicationServices/Questioning/Mapper/CategoryMapper.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/ApplicationServices/Questioning/Mapper/CategoryMapper.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,22 +1,0 @@
-﻿using FinkiChattery.Contracts.Questioning;
-using FinkiChattery.Persistence.Models;
-using System.Collections.Generic;
-using System.Linq;
-
-namespace FinkiChattery.Api.ApplicationServices.Questioning
-{
-    public static class CategoryMapper
-    {
-        public static List<CategoryResponse> ToCategoryDtos(this IEnumerable<Category> categories)
-        {
-            var categoryDtos = new List<CategoryResponse>();
-
-            if (categories.Any())
-            {
-                categoryDtos = categories.Select(x => new CategoryResponse(x.Uid, x.Name)).ToList();
-            }
-
-            return categoryDtos;
-        }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Api/ApplicationServices/Questioning/Mapper/QuestionMapper.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/ApplicationServices/Questioning/Mapper/QuestionMapper.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,79 +1,0 @@
-﻿#nullable enable
-
-using FinkiChattery.Contracts.Questioning;
-using FinkiChattery.Persistence.Repositories.Contracts;
-using System.Collections.Generic;
-using System.Linq;
-
-namespace FinkiChattery.Api.ApplicationServices.Questioning
-{
-    public static class QuestionMapper
-    {
-        public static List<PreviewQuestionResponse> ToPreviewQuestionsResponse(this IEnumerable<QuestionPreviewDto> questions)
-        {
-            var questionsResponse = new List<PreviewQuestionResponse>();
-
-            if (questions.Any())
-            {
-                questionsResponse = questions.Select(x =>
-                {
-                    var questionCategoriesResponse = new List<PreviewQuestionCategoryResponse>();
-
-                    if (x.Categories.Any())
-                    {
-                        questionCategoriesResponse = x.Categories.Select(y => new PreviewQuestionCategoryResponse(y.Id, y.Uid, y.Text)).ToList();
-                    }
-
-                    return new PreviewQuestionResponse(x.Id, x.Uid, x.Title, x.Views, x.AnswersCount, x.CreatedOn, questionCategoriesResponse);
-                }).ToList();
-            }
-
-            return questionsResponse;
-        }
-
-        public static QuestionStateResponse ToQuestionStateResponse(this QuestionStateDto questionState)
-        {
-            IEnumerable<AnswerQuestionStateResponse> answers = Enumerable.Empty<AnswerQuestionStateResponse>();
-
-            if (questionState.AnswersDto.Any())
-            {
-                answers = questionState.AnswersDto.Select(x =>
-                {
-                    IEnumerable<AnswerResponseQuestionStateResponse> answerResponses = Enumerable.Empty<AnswerResponseQuestionStateResponse>();
-
-                    if (x.AnswerResponsesDto.Any())
-                    {
-                        answerResponses = x.AnswerResponsesDto.Select(y =>
-                        {
-                            var answerResponseStudent = new AnswerResponseStudentQuestionStateResponse(y.StudentDto.Id, y.StudentDto.Uid, y.StudentDto.Index, y.StudentDto.ImageUrl, y.StudentDto.Reputation);
-
-                            return new AnswerResponseQuestionStateResponse(y.Id, y.Uid, y.Text, y.CreatedOn, answerResponseStudent);
-                        });
-                    }
-
-                    var answerStudent = new AnswerStudentQuestionStateResponse(x.StudentDto.Id, x.StudentDto.Uid, x.StudentDto.Index, x.StudentDto.ImageUrl, x.StudentDto.Reputation);
-
-                    return new AnswerQuestionStateResponse(x.Id, x.Uid, x.Text, x.CorrectAnswer, x.CreatedOn, x.UpvotesCount, answerStudent, answerResponses);
-                });
-            }
-
-            IEnumerable<QuestionCategoryQuestionStateResponse> questionCategories = Enumerable.Empty<QuestionCategoryQuestionStateResponse>();
-
-            if (questionState.CategoriesDto.Any())
-            {
-                questionCategories = questionState.CategoriesDto.Select(x => new QuestionCategoryQuestionStateResponse(x.Id, x.Uid, x.Name));
-            }
-
-            TeamQuestionStateResponse? team = null;
-
-            if (questionState.TeamDto != null)
-            {
-                team = new TeamQuestionStateResponse(questionState.TeamDto.Id, questionState.TeamDto.Uid, questionState.TeamDto.Name);
-            }
-
-            var student = new StudentQuestionStateResponse(questionState.StudentDto.Id, questionState.StudentDto.Uid, questionState.StudentDto.Index, questionState.StudentDto.ImageUrl, questionState.StudentDto.Reputation);
-
-            return new QuestionStateResponse(questionState.Id, questionState.Uid, questionState.Title, questionState.Text, questionState.CreatedOn, questionState.Views, questionState.LastActiveOn, student, answers, questionCategories, team);
-        }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Api/Controllers/v1/CategoriesController.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/Controllers/v1/CategoriesController.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,30 +1,0 @@
-﻿using FinkiChattery.Api.ApplicationServices.Questioning;
-using FinkiChattery.Common.Mediator.Interfaces;
-using FinkiChattery.Queries.Questioning;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Mvc;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Api.Controllers.v1
-{
-    [ApiVersion(ApiVersions.ApiVersion1)]
-    [Route("api/v{version:apiVersion}/[controller]")]
-    [ApiController]
-    public class CategoriesController : ControllerBase
-    {
-        public CategoriesController(IMediatorService mediatorService)
-        {
-            MediatorService = mediatorService;
-        }
-
-        public IMediatorService MediatorService { get; }
-
-        [HttpGet]
-        [Authorize]
-        public async Task<IActionResult> GetCategories()
-        {
-            var categoriesList = await MediatorService.SendQueryAsync(new GetCategoriesQuery());
-            return Ok(categoriesList.ToCategoryDtos());
-        }
-    }
-}
Index: src/FinkiChattery/FinkiChattery.Api/Controllers/v1/QuestionsController.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/Controllers/v1/QuestionsController.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Api/Controllers/v1/QuestionsController.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,12 +1,9 @@
 ﻿using FinkiChattery.Api.ApplicationServices.Authentication;
-using FinkiChattery.Api.ApplicationServices.Questioning;
 using FinkiChattery.Commands.Questioning;
 using FinkiChattery.Common.Mediator.Interfaces;
 using FinkiChattery.Contracts.Questioning;
-using FinkiChattery.Queries.Questioning;
 using IdentityServer4.AccessTokenValidation;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using System;
 using System.Threading.Tasks;
 
@@ -32,28 +29,4 @@
             return Ok();
         }
-
-        [HttpGet("{questionUid:Guid}")]
-        [Authorize]
-        public async Task<IActionResult> GetQuestionState([FromRoute] Guid questionUid)
-        {
-            var questionDto = await MediatorService.SendQueryAsync(new GetQuestionStateQuery(questionUid));
-            return Ok(questionDto.ToQuestionStateResponse());
-        }
-
-        [HttpGet("preview")]
-        [Authorize]
-        public async Task<IActionResult> PreviewQuestions([FromQuery] GetPreviewQuestionsOrderEnum order)
-        {
-            var questions = await MediatorService.SendQueryAsync(new GetPreviewQuestionsQuery(order));
-            return Ok(questions.ToPreviewQuestionsResponse());
-        }
-
-        [HttpGet("search")]
-        [Authorize(AuthenticationSchemes = IdentityServerAuthenticationDefaults.AuthenticationScheme, Policy = AuthenticationPolicy.Student)]
-        public async Task<IActionResult> SearchQuestions([FromQuery] string searchText, [FromQuery] string categories)
-        {
-            var questions = await MediatorService.SendQueryAsync(new SearchQuestionsQuery(searchText, categories));
-            return Ok(questions.ToPreviewQuestionsResponse());
-        }
     }
 }
Index: src/FinkiChattery/FinkiChattery.Api/FinkiChattery.Api.csproj
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/FinkiChattery.Api.csproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Api/FinkiChattery.Api.csproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -3,5 +3,4 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
-    <Configurations>Debug;Release;Debug_Docker</Configurations>
   </PropertyGroup>
 
@@ -27,5 +26,4 @@
     <ProjectReference Include="..\FinkiChattery.Contracts\FinkiChattery.Contracts.csproj" />
     <ProjectReference Include="..\FinkiChattery.Persistence\FinkiChattery.Persistence.csproj" />
-    <ProjectReference Include="..\FinkiChattery.Queries\FinkiChattery.Queries.csproj" />
   </ItemGroup>
 
Index: src/FinkiChattery/FinkiChattery.Api/Services/RegisterServices.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/Services/RegisterServices.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Api/Services/RegisterServices.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -9,6 +9,4 @@
 using FinkiChattery.Persistence.Models;
 using FinkiChattery.Persistence.Repositories;
-using FinkiChattery.Persistence.UnitOfWork;
-using FinkiChattery.Queries.Questioning;
 using Hangfire;
 using Hangfire.SqlServer;
@@ -31,17 +29,12 @@
             services.AddScoped<IEventService, EventService>();
             services.AddTransient(typeof(IPipelineBehavior<,>), typeof(ValidationBehavior<,>));
-            services.AddMediatR(typeof(AskQuestionCommand), typeof(GetQuestionStateQuery));
+            services.AddMediatR(typeof(AskQuestionCommand));
         }
 
         public static void AddHangfireService(this IServiceCollection services, IConfiguration configuration)
         {
-            string connectionString = "HangfireConnection";
-#if DEBUG_DOCKER
-            connectionString = "HangfireConnectionDocker";
-#endif
-
             services.AddHangfire(x =>
             {
-                x.UseSqlServerStorage(configuration.GetConnectionString(connectionString), new SqlServerStorageOptions
+                x.UseSqlServerStorage(configuration.GetConnectionString("HangfireConnection"), new SqlServerStorageOptions
                 {
                     CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
@@ -107,7 +100,10 @@
         }
 
-        public static void AddUnitOfWork(this IServiceCollection services)
+        public static void AddRepos(this IServiceCollection services)
         {
-            services.AddScoped<IUnitOfWork, UnitOfWork>();
+            services.AddScoped<ICategoriesRepo, CategoriesRepo>();
+            services.AddScoped<ITeamRepo, TeamRepo>();
+            services.AddScoped<IQuestionRepo, QuestionRepo>();
+            services.AddScoped<IStudentRepo, StudentRepo>();
         }
 
@@ -147,4 +143,6 @@
                         services.AddScoped<IStorageService, AwsStorageService>();*/
         }
+
+        // TODO: ADD HANGFIRE AND SCAFOLD DB IN HANGFIREDB
     }
 
Index: src/FinkiChattery/FinkiChattery.Api/Startup.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/Startup.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Api/Startup.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -35,15 +35,10 @@
             services.AddOriginUrlSettings();
             services.AddCurrentUser();
-            services.AddUnitOfWork();
+            services.AddRepos();
             services.AddAwsClient(Configuration);
             services.AddHangfireService(Configuration);
 
-            string connectionString = "DefaultConnection";
-#if DEBUG_DOCKER
-            connectionString = "DefaultConnectionDocker";
-#endif
-
             services.AddDbContext<ApplicationDbContext>(options =>
-                options.UseSqlServer(Configuration.GetConnectionString(connectionString)));
+                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
 
             services.AddControllers()
Index: src/FinkiChattery/FinkiChattery.Api/appsettings.Development.json
===================================================================
--- src/FinkiChattery/FinkiChattery.Api/appsettings.Development.json	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Api/appsettings.Development.json	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -25,12 +25,12 @@
     },
     "corsSettings": {
-      "allowedCorsOrigins": ["http://localhost:4200"]
+      "allowedCorsOrigins": [
+        "http://localhost:4200"
+      ]
     }
   },
   "ConnectionStrings": {
     "DefaultConnection": "data source=.;initial catalog=FinkiChattery;integrated security=True;application name=FinkiChattery Base App;Pooling=true;Min Pool Size=5;Max Pool Size=30;",
-    "HangfireConnection": "data source=.;initial catalog=FinkiChatteryHangfire;integrated security=True;application name=FinkiChattery Hangfire App;Pooling=true;Min Pool Size=5;Max Pool Size=30;",
-    "DefaultConnectionDocker": "Data Source=localhost;Initial Catalog=FinkiChattery;User ID=sa;Password=Asfa+032;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Pooling=true;Min Pool Size=5;Max Pool Size=30;",
-    "HangfireConnectionDocker": "Data Source=localhost;Initial Catalog=FinkiChatteryHangfire;User ID=sa;Password=Asfa+032;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Pooling=true;Min Pool Size=5;Max Pool Size=30;"
+    "HangfireConnection": "data source=.;initial catalog=FinkiChatteryHangfire;integrated security=True;application name=FinkiChattery Hangfire App;Pooling=true;Min Pool Size=5;Max Pool Size=30;"
   }
 }
Index: src/FinkiChattery/FinkiChattery.Commands/FinkiChattery.Commands.csproj
===================================================================
--- src/FinkiChattery/FinkiChattery.Commands/FinkiChattery.Commands.csproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Commands/FinkiChattery.Commands.csproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -3,5 +3,4 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
-    <Configurations>Debug;Release;Debug_Docker</Configurations>
   </PropertyGroup>
 
Index: src/FinkiChattery/FinkiChattery.Commands/Questioning/AskQuestion/AskQuestionCommand.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Commands/Questioning/AskQuestion/AskQuestionCommand.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Commands/Questioning/AskQuestion/AskQuestionCommand.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,6 +1,7 @@
 ﻿using FinkiChattery.Common.Mediator.Contracs;
 using FinkiChattery.Common.User;
+using FinkiChattery.Persistence.Context;
 using FinkiChattery.Persistence.Models;
-using FinkiChattery.Persistence.UnitOfWork;
+using FinkiChattery.Persistence.Repositories;
 using System;
 using System.Collections.Generic;
@@ -26,17 +27,21 @@
     public class AskQuestionHandler : ICommandHandler<AskQuestionCommand, Guid>
     {
-        public AskQuestionHandler(IUnitOfWork unitOfWork, ICurrentUser currentUser)
+        public AskQuestionHandler(ApplicationDbContext dbContext, ICategoriesRepo categoriesRepo, IStudentRepo studentRepo, ICurrentUser currentUser)
         {
-            UnitOfWork = unitOfWork;
+            DbContext = dbContext;
+            CategoriesRepo = categoriesRepo;
+            StudentRepo = studentRepo;
             CurrentUser = currentUser;
         }
 
-        public IUnitOfWork UnitOfWork { get; }
+        public ApplicationDbContext DbContext { get; }
+        public ICategoriesRepo CategoriesRepo { get; }
+        public IStudentRepo StudentRepo { get; }
         public ICurrentUser CurrentUser { get; }
 
         public async Task<Guid> Handle(AskQuestionCommand request, CancellationToken cancellationToken)
         {
-            var questionCategories = await UnitOfWork.Categories.GetCategories(request.Categories);
-            var currentStudent = await UnitOfWork.Students.GetStudent(CurrentUser.Id);
+            var questionCategories = await CategoriesRepo.GetCategories(request.Categories);
+            var currentStudent = await StudentRepo.GetStudent(CurrentUser.Id);
 
             var questionDatabaseEntity = new Question()
@@ -55,6 +60,6 @@
             }
 
-            UnitOfWork.Questions.Add(questionDatabaseEntity);
-            await UnitOfWork.SaveAsync();
+            DbContext.Questions.Add(questionDatabaseEntity);
+            await DbContext.SaveChangesAsync();
             return questionDatabaseEntity.Uid;
         }
Index: src/FinkiChattery/FinkiChattery.Commands/Questioning/AskQuestion/AskQuestionValidator.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Commands/Questioning/AskQuestion/AskQuestionValidator.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Commands/Questioning/AskQuestion/AskQuestionValidator.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,4 +1,4 @@
 ﻿using FinkiChattery.Commands.Questioning.Validators;
-using FinkiChattery.Persistence.UnitOfWork;
+using FinkiChattery.Persistence.Repositories;
 using FluentValidation;
 
@@ -7,9 +7,9 @@
     public class AskQuestionValidator : AbstractValidator<AskQuestionCommand>
     {
-        public AskQuestionValidator(IUnitOfWork unitOfWork)
+        public AskQuestionValidator(ICategoriesRepo categoriesRepo)
         {
             RuleFor(x => x.Title).QuestionTitleValidate();
             RuleFor(x => x.Text).QuestionTextValidate();
-            RuleFor(x => x.Categories).Cascade(CascadeMode.Stop).ListNotNull().SetValidator(new CategoriesUidsExist(unitOfWork));
+            RuleFor(x => x.Categories).Cascade(CascadeMode.Stop).ListNotNull().SetValidator(new CategoriesUidsExist(categoriesRepo));
         }
     }
Index: src/FinkiChattery/FinkiChattery.Commands/Questioning/Validators/CategoriesUidsExist.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Commands/Questioning/Validators/CategoriesUidsExist.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Commands/Questioning/Validators/CategoriesUidsExist.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,4 +1,3 @@
 ﻿using FinkiChattery.Persistence.Repositories;
-using FinkiChattery.Persistence.UnitOfWork;
 using FluentValidation.Validators;
 using System;
@@ -11,10 +10,10 @@
     public class CategoriesUidsExist : AsyncValidatorBase
     {
-        public CategoriesUidsExist(IUnitOfWork unitOfWork)
+        public CategoriesUidsExist(ICategoriesRepo categoriesRepo)
         {
-            UnitOfWork = unitOfWork;
+            CategoriesRepo = categoriesRepo;
         }
 
-        public IUnitOfWork UnitOfWork { get; }
+        public ICategoriesRepo CategoriesRepo { get; }
 
         protected override async Task<bool> IsValidAsync(PropertyValidatorContext context, CancellationToken cancellation)
@@ -22,5 +21,5 @@
             var categoriesUids = (IEnumerable<Guid>)context.PropertyValue;
 
-            return await UnitOfWork.Categories.CategoriesExist(categoriesUids);
+            return await CategoriesRepo.CategoriesExist(categoriesUids);
         }
 
Index: src/FinkiChattery/FinkiChattery.Commands/Questioning/Validators/TeamWithUidExist.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Commands/Questioning/Validators/TeamWithUidExist.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Commands/Questioning/Validators/TeamWithUidExist.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,3 +1,3 @@
-﻿using FinkiChattery.Persistence.UnitOfWork;
+﻿using FinkiChattery.Persistence.Repositories;
 using FluentValidation.Validators;
 using System;
@@ -9,15 +9,15 @@
     public class TeamWithUidExist : AsyncValidatorBase
     {
-        public TeamWithUidExist(IUnitOfWork unitOfWork)
+        public TeamWithUidExist(ITeamRepo teamRepo)
         {
-            UnitOfWork = unitOfWork;
+            TeamRepo = teamRepo;
         }
 
-        public IUnitOfWork UnitOfWork { get; }
+        public ITeamRepo TeamRepo { get; }
 
         protected override async Task<bool> IsValidAsync(PropertyValidatorContext context, CancellationToken cancellation)
         {
             var teamUid = (Guid)context.PropertyValue;
-            return await UnitOfWork.Teams.TeamWithUidExists(teamUid);
+            return await TeamRepo.TeamWithUidExists(teamUid);        
         }
 
Index: src/FinkiChattery/FinkiChattery.Common/FinkiChattery.Common.csproj
===================================================================
--- src/FinkiChattery/FinkiChattery.Common/FinkiChattery.Common.csproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Common/FinkiChattery.Common.csproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -3,5 +3,4 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
-    <Configurations>Debug;Release;Debug_Docker</Configurations>
   </PropertyGroup>
 
Index: c/FinkiChattery/FinkiChattery.Common/Mediator/Contracs/IQuery.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Common/Mediator/Contracs/IQuery.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,8 +1,0 @@
-﻿using MediatR;
-
-namespace FinkiChattery.Common.Mediator.Contracs
-{
-    public interface IQuery<TResult> : IRequest<TResult>
-    {
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Common/Mediator/Contracs/IQueryHandler.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Common/Mediator/Contracs/IQueryHandler.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,9 +1,0 @@
-﻿using MediatR;
-
-namespace FinkiChattery.Common.Mediator.Contracs
-{
-    public interface IQueryHandler<TQuery, TResult> : IRequestHandler<TQuery, TResult>
-        where TQuery : IQuery<TResult>
-    {
-    }
-}
Index: src/FinkiChattery/FinkiChattery.Common/Mediator/Interfaces/IMediatorService.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Common/Mediator/Interfaces/IMediatorService.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Common/Mediator/Interfaces/IMediatorService.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -11,8 +11,4 @@
         Task<TResponse> SendAsync<TResponse>(ICommand<TResponse> request);
 
-        Task<TResponse> SendQueryAsync<TResponse>(IQuery<TResponse> request, CancellationToken cancellationToken);
-
-        Task<TResponse> SendQueryAsync<TResponse>(IQuery<TResponse> request);
-
         Task PublishAsync<TNotification>(TNotification notification) where TNotification : IEvent;
 
Index: src/FinkiChattery/FinkiChattery.Common/Mediator/MediatorService.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Common/Mediator/MediatorService.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Common/Mediator/MediatorService.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -37,14 +37,4 @@
             await mediator.Publish(notification, default);
         }
-
-        public async Task<TResponse> SendQueryAsync<TResponse>(IQuery<TResponse> request, CancellationToken cancellationToken)
-        {
-            return await mediator.Send(request, cancellationToken);
-        }
-
-        public async Task<TResponse> SendQueryAsync<TResponse>(IQuery<TResponse> request)
-        {
-            return await mediator.Send(request);
-        }
     }
 }
Index: c/FinkiChattery/FinkiChattery.Contracts/Base/Response.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Contracts/Base/Response.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,18 +1,0 @@
-﻿using System;
-using System.Text.Json.Serialization;
-
-namespace FinkiChattery.Contracts.Base
-{
-    public abstract class Response
-    {
-        public Response(long id, Guid uid)
-        {
-            Id = id;
-            Uid = uid;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-    }
-}
Index: src/FinkiChattery/FinkiChattery.Contracts/FinkiChattery.Contracts.csproj
===================================================================
--- src/FinkiChattery/FinkiChattery.Contracts/FinkiChattery.Contracts.csproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Contracts/FinkiChattery.Contracts.csproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -3,5 +3,4 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
-    <Configurations>Debug;Release;Debug_Docker</Configurations>
   </PropertyGroup>
 
Index: c/FinkiChattery/FinkiChattery.Contracts/Questioning/GetCategories/CategoryResponse.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Contracts/Questioning/GetCategories/CategoryResponse.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,16 +1,0 @@
-﻿using System;
-
-namespace FinkiChattery.Contracts.Questioning
-{
-    public class CategoryResponse
-    {
-        public CategoryResponse(Guid uid, string name)
-        {
-            Uid = uid;
-            Name = name;
-        }
-
-        public Guid Uid { get; }
-        public string Name { get; }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Contracts/Questioning/GetPreviewQuestions/PreviewQuestionResponse.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Contracts/Questioning/GetPreviewQuestions/PreviewQuestionResponse.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,34 +1,0 @@
-﻿using FinkiChattery.Contracts.Base;
-using System;
-using System.Collections.Generic;
-
-namespace FinkiChattery.Contracts.Questioning
-{
-    public class PreviewQuestionResponse : Response
-    {
-        public PreviewQuestionResponse(long id, Guid uid, string title, long views, long answersCount, DateTime createdOn, IEnumerable<PreviewQuestionCategoryResponse> categories) : base(id, uid)
-        {
-            Title = title;
-            Views = views;
-            AnswersCount = answersCount;
-            CreatedOn = createdOn;
-            Categories = categories;
-        }
-
-        public string Title { get; }
-        public long Views { get; }
-        public long AnswersCount { get; }
-        public DateTime CreatedOn { get; }
-        public IEnumerable<PreviewQuestionCategoryResponse> Categories { get; }
-    }
-
-    public class PreviewQuestionCategoryResponse : Response
-    {
-        public PreviewQuestionCategoryResponse(long id, Guid uid, string text) : base(id, uid)
-        {
-            Text = text;
-        }
-
-        public string Text { get; }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Contracts/Questioning/GetQuestionState/QuestionStateResponse.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Contracts/Questioning/GetQuestionState/QuestionStateResponse.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,170 +1,0 @@
-﻿#nullable enable
-
-using System;
-using System.Collections.Generic;
-using System.Text.Json.Serialization;
-
-namespace FinkiChattery.Contracts.Questioning
-{
-    public class QuestionStateResponse
-    {
-        public QuestionStateResponse(long id, Guid uid, string title, string text, DateTime createdOn, long views, DateTime lastActiveOn, StudentQuestionStateResponse studentResponse, IEnumerable<AnswerQuestionStateResponse> answersResponse, IEnumerable<QuestionCategoryQuestionStateResponse> categoriesResponse, TeamQuestionStateResponse? teamResponse)
-        {
-            Id = id;
-            Uid = uid;
-            Title = title;
-            Text = text;
-            CreatedOn = createdOn;
-            Views = views;
-            LastActiveOn = lastActiveOn;
-            StudentResponse = studentResponse;
-            AnswersResponse = answersResponse;
-            CategoriesResponse = categoriesResponse;
-            TeamResponse = teamResponse;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Title { get; }
-        public string Text { get; }
-        public DateTime CreatedOn { get; }
-        public long Views { get; }
-        public DateTime LastActiveOn { get; }
-        public StudentQuestionStateResponse StudentResponse { get; }
-        public IEnumerable<AnswerQuestionStateResponse> AnswersResponse { get; }
-        public IEnumerable<QuestionCategoryQuestionStateResponse> CategoriesResponse { get; }
-        public TeamQuestionStateResponse? TeamResponse { get; }
-    }
-
-    public class StudentQuestionStateResponse
-    {
-        public StudentQuestionStateResponse(long id, Guid uid, string index, string imageUrl, long reputation)
-        {
-            Id = id;
-            Uid = uid;
-            Index = index;
-            ImageUrl = imageUrl;
-            Reputation = reputation;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Index { get; }
-        public string ImageUrl { get; }
-        public long Reputation { get; }
-    }
-
-    public class TeamQuestionStateResponse
-    {
-        public TeamQuestionStateResponse(long id, Guid uid, string name)
-        {
-            Id = id;
-            Uid = uid;
-            Name = name;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Name { get; }
-    }
-
-    public class QuestionCategoryQuestionStateResponse
-    {
-        public QuestionCategoryQuestionStateResponse(long id, Guid uid, string name)
-        {
-            Id = id;
-            Uid = uid;
-            Name = name;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Name { get; }
-    }
-
-    public class AnswerQuestionStateResponse
-    {
-        public AnswerQuestionStateResponse(long id, Guid uid, string text, bool correctAnswer, DateTime createdOn, long upvotesCount, AnswerStudentQuestionStateResponse studentResponse, IEnumerable<AnswerResponseQuestionStateResponse> answerResponsesResponse)
-        {
-            Id = id;
-            Uid = uid;
-            Text = text;
-            CorrectAnswer = correctAnswer;
-            CreatedOn = createdOn;
-            UpvotesCount = upvotesCount;
-            StudentResponse = studentResponse;
-            AnswerResponsesResponse = answerResponsesResponse;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Text { get; }
-        public bool CorrectAnswer { get; }
-        public DateTime CreatedOn { get; }
-        public long UpvotesCount { get; }
-        public AnswerStudentQuestionStateResponse StudentResponse { get; }
-        public IEnumerable<AnswerResponseQuestionStateResponse> AnswerResponsesResponse { get; }
-    }
-
-    public class AnswerStudentQuestionStateResponse
-    {
-        public AnswerStudentQuestionStateResponse(long id, Guid uid, string index, string imageUrl, long reputation)
-        {
-            Id = id;
-            Uid = uid;
-            Index = index;
-            ImageUrl = imageUrl;
-            Reputation = reputation;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Index { get; }
-        public string ImageUrl { get; }
-        public long Reputation { get; }
-    }
-
-    public class AnswerResponseQuestionStateResponse
-    {
-        public AnswerResponseQuestionStateResponse(long id, Guid uid, string text, DateTime createdOn, AnswerResponseStudentQuestionStateResponse studentResponse)
-        {
-            Id = id;
-            Uid = uid;
-            Text = text;
-            CreatedOn = createdOn;
-            StudentResponse = studentResponse;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Text { get; }
-        public DateTime CreatedOn { get; }
-        public AnswerResponseStudentQuestionStateResponse StudentResponse { get; }
-    }
-
-    public class AnswerResponseStudentQuestionStateResponse
-    {
-        public AnswerResponseStudentQuestionStateResponse(long id, Guid uid, string index, string imageUrl, long reputation)
-        {
-            Id = id;
-            Uid = uid;
-            Index = index;
-            ImageUrl = imageUrl;
-            Reputation = reputation;
-        }
-
-        [JsonIgnore]
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Index { get; }
-        public string ImageUrl { get; }
-        public long Reputation { get; }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Database/FinkiChattery.Database.refactorlog
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/FinkiChattery.Database.refactorlog	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,1 +1,0 @@
-﻿
Index: src/FinkiChattery/FinkiChattery.Database/FinkiChattery.Database.sqlproj
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/FinkiChattery.Database.sqlproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Database/FinkiChattery.Database.sqlproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,3 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
+﻿<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
   <PropertyGroup>
@@ -55,6 +55,6 @@
     <VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
   </PropertyGroup>
-  <Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
-  <Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
+  <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
+  <Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
   <ItemGroup>
     <Folder Include="Properties" />
@@ -70,15 +70,14 @@
     <Folder Include="dbo\Tables\Student" />
     <Folder Include="FullTextSearch" />
-    <Folder Include="dbo\Tables\Answer" />
-    <Folder Include="dbo\Tables\AnswerResponse" />
-    <Folder Include="dbo\Tables\Question" />
-    <Folder Include="dbo\Tables\QuestionCategory" />
-    <Folder Include="Snapshots" />
   </ItemGroup>
   <ItemGroup>
     <Build Include="dbo\Tables\Moderator.sql" />
     <Build Include="dbo\Tables\Teacher.sql" />
+    <Build Include="dbo\Tables\Question.sql" />
     <Build Include="dbo\Tables\StudentTeam.sql" />
     <Build Include="dbo\Tables\TeacherTeam.sql" />
+    <Build Include="dbo\Tables\Answer.sql" />
+    <Build Include="dbo\Tables\QuestionCategory.sql" />
+    <Build Include="dbo\Tables\AnswerResponse.sql" />
     <Build Include="dbo\Tables\Upvote.sql" />
     <Build Include="dbo\Tables\User\AspNetRoleClaims.sql" />
@@ -92,12 +91,4 @@
     <Build Include="FullTextSearch\FullTextIndexQuestion.sql" />
     <Build Include="FullTextSearch\QuestionFullTextCatalog.sql" />
-    <Build Include="dbo\Tables\Question\Question.sql" />
-    <None Include="dbo\Tables\Question\Question.Debug.Seed.sql" />
-    <Build Include="dbo\Tables\Answer\Answer.sql" />
-    <None Include="dbo\Tables\Answer\Answer.Debug.Seed.sql" />
-    <Build Include="dbo\Tables\AnswerResponse\AnswerResponse.sql" />
-    <None Include="dbo\Tables\AnswerResponse\AnswerResponse.Debug.Seed.sql" />
-    <Build Include="dbo\Tables\QuestionCategory\QuestionCategory.sql" />
-    <None Include="dbo\Tables\QuestionCategory\QuestionCategory.Debug.Seed.sql" />
   </ItemGroup>
   <ItemGroup>
@@ -106,5 +97,4 @@
     <PreDeploy Include="dbo\Scripts\Script.PreDeployment.sql" />
     <None Include="FinkiChattery.Database.publish.xml" />
-    <None Include="Snapshots\FinkiChattery.Database_20210922_17-47-58.dacpac" />
   </ItemGroup>
   <ItemGroup>
@@ -130,6 +120,3 @@
     </SqlCmdVariable>
   </ItemGroup>
-  <ItemGroup>
-    <RefactorLog Include="FinkiChattery.Database.refactorlog" />
-  </ItemGroup>
 </Project>
Index: c/FinkiChattery/FinkiChattery.Database/FinkiChattery.Database.sqlproj_backup
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/FinkiChattery.Database.sqlproj_backup	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,122 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <Name>FinkiChattery.Database</Name>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectVersion>4.1</ProjectVersion>
-    <ProjectGuid>{5e1219f5-fc7d-4138-811d-26934e946d30}</ProjectGuid>
-    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql150DatabaseSchemaProvider</DSP>
-    <OutputType>Database</OutputType>
-    <RootPath>
-    </RootPath>
-    <RootNamespace>FinkiChattery.Database</RootNamespace>
-    <AssemblyName>FinkiChattery.Database</AssemblyName>
-    <ModelCollation>1033,CI</ModelCollation>
-    <DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
-    <DeployToDatabase>True</DeployToDatabase>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <TargetLanguage>CS</TargetLanguage>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <SqlServerVerification>False</SqlServerVerification>
-    <IncludeCompositeObjects>True</IncludeCompositeObjects>
-    <TargetDatabaseSet>True</TargetDatabaseSet>
-    <DefaultCollation>SQL_Latin1_General_CP1_CI_AS</DefaultCollation>
-    <DefaultFilegroup>PRIMARY</DefaultFilegroup>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <OutputPath>bin\Release\</OutputPath>
-    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
-    <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <DefineDebug>false</DefineDebug>
-    <DefineTrace>true</DefineTrace>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <OutputPath>bin\Debug\</OutputPath>
-    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
-    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <DefineDebug>true</DefineDebug>
-    <DefineTrace>true</DefineTrace>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
-    <!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
-    <SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
-    <VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
-  </PropertyGroup>
-  <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
-  <Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
-  <ItemGroup>
-    <Folder Include="Properties" />
-    <Folder Include="dbo\" />
-    <Folder Include="dbo\Tables\" />
-    <Folder Include="dbo\Scripts" />
-    <Folder Include="dbo\Scripts\PreDeploymentScripts" />
-    <Folder Include="dbo\Scripts\PostDeploymentScripts" />
-    <Folder Include="dbo\Tables\User" />
-    <Folder Include="dbo\Tables\User\Seed" />
-    <Folder Include="dbo\Tables\Category" />
-    <Folder Include="dbo\Tables\Team" />
-    <Folder Include="dbo\Tables\Student" />
-    <Folder Include="FullTextSearch" />
-  </ItemGroup>
-  <ItemGroup>
-    <Build Include="dbo\Tables\Moderator.sql" />
-    <Build Include="dbo\Tables\Teacher.sql" />
-    <Build Include="dbo\Tables\Question.sql" />
-    <Build Include="dbo\Tables\StudentTeam.sql" />
-    <Build Include="dbo\Tables\TeacherTeam.sql" />
-    <Build Include="dbo\Tables\Answer.sql" />
-    <Build Include="dbo\Tables\QuestionCategory.sql" />
-    <Build Include="dbo\Tables\AnswerResponse.sql" />
-    <Build Include="dbo\Tables\Upvote.sql" />
-    <Build Include="dbo\Tables\User\AspNetRoleClaims.sql" />
-    <Build Include="dbo\Tables\User\AspNetRoles.sql" />
-    <None Include="dbo\Tables\User\Seed\Users.Debug.Seed.sql" />
-    <Build Include="dbo\Tables\Category\Category.sql" />
-    <None Include="dbo\Tables\Category\Category.Seed.sql" />
-    <Build Include="dbo\Tables\Team\Team.sql" />
-    <Build Include="dbo\Tables\Student\Student.sql" />
-    <None Include="dbo\Tables\Student\Student.Debug.Seed.sql" />
-    <Build Include="FullTextSearch\FullTextIndexQuestion.sql" />
-    <Build Include="FullTextSearch\QuestionFullTextCatalog.sql" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="dbo\Scripts\PreDeploymentScripts\Debug.PreDeployment.sql" />
-    <None Include="dbo\Scripts\PreDeploymentScripts\Production.PreDeployment.sql" />
-    <PreDeploy Include="dbo\Scripts\Script.PreDeployment.sql" />
-    <None Include="FinkiChattery.Database.publish.xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <PostDeploy Include="dbo\Scripts\Script.PostDeployment.sql" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="dbo\Scripts\PostDeploymentScripts\Debug.PostDeployment.sql" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="dbo\Scripts\PostDeploymentScripts\Production.PostDeployment.sql" />
-  </ItemGroup>
-  <ItemGroup>
-    <Build Include="dbo\Tables\User\AspNetUserClaims.sql" />
-    <Build Include="dbo\Tables\User\AspNetUserLogins.sql" />
-    <Build Include="dbo\Tables\User\AspNetUserRoles.sql" />
-    <Build Include="dbo\Tables\User\AspNetUsers.sql" />
-    <Build Include="dbo\Tables\User\AspNetUserTokens.sql" />
-  </ItemGroup>
-  <ItemGroup>
-    <SqlCmdVariable Include="BuildConfiguration">
-      <DefaultValue>Debug</DefaultValue>
-      <Value>$(SqlCmdVar__1)</Value>
-    </SqlCmdVariable>
-  </ItemGroup>
-</Project>
Index: src/FinkiChattery/FinkiChattery.Database/FullTextSearch/FullTextIndexQuestion.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/FullTextSearch/FullTextIndexQuestion.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Database/FullTextSearch/FullTextIndexQuestion.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,3 +1,3 @@
-﻿CREATE FULLTEXT INDEX ON [dbo].[Question] ([Search])
+﻿CREATE FULLTEXT INDEX ON [dbo].[Question] ([Title], [Text])
 KEY INDEX [PK_Question] ON [QuestionFullTextCatalog]
 WITH (CHANGE_TRACKING AUTO, STOPLIST OFF)
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/PostDeploymentScripts/Debug.PostDeployment.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/PostDeploymentScripts/Debug.PostDeployment.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/PostDeploymentScripts/Debug.PostDeployment.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,7 +1,3 @@
-﻿:r ./../../Tables/User/Seed/Users.Debug.Seed.sql
-:r ./../../Tables/Category/Category.Seed.sql
-:r ./../../Tables/Student/Student.Debug.Seed.sql
-:r ./../../Tables/Question/Question.Debug.Seed.sql
-:r ./../../Tables/Answer/Answer.Debug.Seed.sql
-:r ./../../Tables/AnswerResponse/AnswerResponse.Debug.Seed.sql
-:r ./../../Tables/QuestionCategory/QuestionCategory.Debug.Seed.sql
+﻿:r .\..\..\Tables\User\Seed\Users.Debug.Seed.sql
+:r .\..\..\Tables\Category\Category.Seed.sql
+:r .\..\..\Tables\Student\Student.Debug.Seed.sql
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/PostDeploymentScripts/Production.PostDeployment.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/PostDeploymentScripts/Production.PostDeployment.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/PostDeploymentScripts/Production.PostDeployment.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,1 +1,1 @@
-﻿:r ./../../Tables/Category/Category.Seed.sql
+﻿:r .\..\..\Tables\Category\Category.Seed.sql
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/Script.PostDeployment.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/Script.PostDeployment.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/Script.PostDeployment.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -4,5 +4,5 @@
 		PRINT 'Deploying DEBUG scripts';
 	END
-	:r ./PostDeploymentScripts/Debug.PostDeployment.sql
+	:r .\PostDeploymentScripts\Debug.PostDeployment.sql
 	BEGIN --Run scripts 
 		PRINT 'End deploying DEBUG scripts';
@@ -15,5 +15,5 @@
 		PRINT 'Deploying PRODUCTION scripts' 
 	END
-		:r ./PostDeploymentScripts/Production.PostDeployment.sql
+		:r .\PostDeploymentScripts\Production.PostDeployment.sql
 		BEGIN --Run scripts 
 		PRINT 'End deploying PRODUCTION scripts' 
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/Script.PreDeployment.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/Script.PreDeployment.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Scripts/Script.PreDeployment.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -4,5 +4,5 @@
 		PRINT 'Deploying DEBUG pre deployment scripts';
 	END
-	:r ./PreDeploymentScripts/Debug.PreDeployment.sql
+	:r .\PreDeploymentScripts\Debug.PreDeployment.sql
 	BEGIN --Run scripts 
 		PRINT 'End deploying DEBUG pre deployment scripts';
@@ -15,5 +15,5 @@
 		PRINT 'Deploying PRODUCTION pre deployment scripts' 
 	END
-	:r ./PreDeploymentScripts/Production.PreDeployment.sql
+	:r .\PreDeploymentScripts\Production.PreDeployment.sql
 	BEGIN --Run scripts 
 		PRINT 'End deploying PRODUCTION pre deployment scripts' 
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Answer.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Answer.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Answer.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -0,0 +1,23 @@
+﻿CREATE TABLE [dbo].[Answer] (
+    [Id]            BIGINT           IDENTITY (1, 1) NOT NULL,
+    [Uid]           UNIQUEIDENTIFIER NOT NULL,
+    [Text]          NVARCHAR (4000)  NOT NULL,
+    [QuestionFk]    BIGINT           NOT NULL,
+    [StudentFk]     BIGINT           NOT NULL,
+    [CorrectAnswer] BIT              NOT NULL,
+    [CreatedOn]     SMALLDATETIME    NOT NULL,
+    CONSTRAINT [PK_Answer] PRIMARY KEY CLUSTERED ([Id] ASC),
+    CONSTRAINT [FK_Answer_Question_QuestionFk] FOREIGN KEY ([QuestionFk]) REFERENCES [dbo].[Question] ([Id]),
+    CONSTRAINT [FK_Answer_Student_StudentFk] FOREIGN KEY ([StudentFk]) REFERENCES [dbo].[Student] ([Id])
+);
+
+
+GO
+CREATE NONCLUSTERED INDEX [IX_Answer_QuestionFk]
+    ON [dbo].[Answer]([QuestionFk] ASC);
+
+
+GO
+CREATE NONCLUSTERED INDEX [IX_Answer_StudentFk]
+    ON [dbo].[Answer]([StudentFk] ASC);
+
Index: c/FinkiChattery/FinkiChattery.Database/dbo/Tables/Answer/Answer.Debug.Seed.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Answer/Answer.Debug.Seed.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,39 +1,0 @@
-﻿BEGIN
-    SET IDENTITY_INSERT [dbo].[Answer] ON
-    MERGE [dbo].[Answer] AS T
-    USING
-    (
-        SELECT *
-        FROM
-    (
-        VALUES
-            (1, N'aee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Answer 1', 1, 1, 1, GETUTCDATE(), 5),
-            (2, N'bee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Answer 2', 1, 1, 0, GETUTCDATE(), 5),
-            (3, N'cee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Answer 3', 2, 1, 1, GETUTCDATE(), 5),
-            (4, N'dee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Answer 4', 2, 1, 0, GETUTCDATE(), 5)
-    ) AS temp ([Id], [Uid], [Text], [QuestionFk], [StudentFk], [CorrectAnswer], [CreatedOn], [UpvotesCount])
-    ) AS S
-    ON T.[ID] = S.[ID]
-    WHEN MATCHED THEN
-        UPDATE SET T.[Uid] = S.[Uid],
-                   T.[Text] = S.[Text],
-                   T.[QuestionFk] = S.[QuestionFk],
-                   T.[StudentFk] = S.[StudentFk],
-                   T.[CorrectAnswer] = S.[CorrectAnswer],
-                   T.[UpvotesCount] = S.[UpvotesCount]
-    WHEN NOT MATCHED THEN
-        INSERT
-        (
-            [Id],
-            [Uid],
-            [Text],
-            [QuestionFk],
-            [StudentFk],
-            [CorrectAnswer],
-            [CreatedOn],
-            [UpvotesCount]
-        )
-        VALUES
-        (S.[Id], S.[Uid], S.[Text], S.[QuestionFk], S.[StudentFk], S.[CorrectAnswer], S.[CreatedOn], S.[UpvotesCount]);
-    SET IDENTITY_INSERT [dbo].[Answer] OFF
-END
Index: c/FinkiChattery/FinkiChattery.Database/dbo/Tables/Answer/Answer.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Answer/Answer.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,24 +1,0 @@
-﻿CREATE TABLE [dbo].[Answer] (
-    [Id]            BIGINT           IDENTITY (1, 1) NOT NULL,
-    [Uid]           UNIQUEIDENTIFIER NOT NULL,
-    [Text]          NVARCHAR (4000)  NOT NULL,
-    [QuestionFk]    BIGINT           NOT NULL,
-    [StudentFk]     BIGINT           NOT NULL,
-    [CorrectAnswer] BIT              NOT NULL,
-    [CreatedOn]     SMALLDATETIME    NOT NULL,
-    [UpvotesCount] BIGINT NOT NULL DEFAULT 0, 
-    CONSTRAINT [PK_Answer] PRIMARY KEY CLUSTERED ([Id] ASC),
-    CONSTRAINT [FK_Answer_Question_QuestionFk] FOREIGN KEY ([QuestionFk]) REFERENCES [dbo].[Question] ([Id]),
-    CONSTRAINT [FK_Answer_Student_StudentFk] FOREIGN KEY ([StudentFk]) REFERENCES [dbo].[Student] ([Id])
-);
-
-
-GO
-CREATE NONCLUSTERED INDEX [IX_Answer_QuestionFk]
-    ON [dbo].[Answer]([QuestionFk] ASC);
-
-
-GO
-CREATE NONCLUSTERED INDEX [IX_Answer_StudentFk]
-    ON [dbo].[Answer]([StudentFk] ASC);
-
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Tables/AnswerResponse.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/AnswerResponse.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Tables/AnswerResponse.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -0,0 +1,17 @@
+﻿CREATE TABLE [dbo].[AnswerResponse] (
+    [Id]        BIGINT           IDENTITY (1, 1) NOT NULL,
+    [Uid]       UNIQUEIDENTIFIER NOT NULL,
+    [Text]      NVARCHAR (4000)  NOT NULL,
+    [AnswerFk]  BIGINT           NOT NULL,
+    [StudentFk] BIGINT           NOT NULL,
+    [CreatedOn] SMALLDATETIME    NOT NULL,
+    CONSTRAINT [PK_AnswerResponse] PRIMARY KEY CLUSTERED ([Id] ASC),
+    CONSTRAINT [FK_AnswerResponse_Answer_AnswerFk] FOREIGN KEY ([AnswerFk]) REFERENCES [dbo].[Answer] ([Id]),
+    CONSTRAINT [FK_AnswerResponse_Student_AnswerFk] FOREIGN KEY ([AnswerFk]) REFERENCES [dbo].[Student] ([Id])
+);
+
+
+GO
+CREATE NONCLUSTERED INDEX [IX_AnswerResponse_AnswerFk]
+    ON [dbo].[AnswerResponse]([AnswerFk] ASC);
+
Index: c/FinkiChattery/FinkiChattery.Database/dbo/Tables/AnswerResponse/AnswerResponse.Debug.Seed.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/AnswerResponse/AnswerResponse.Debug.Seed.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,40 +1,0 @@
-﻿BEGIN
-    SET IDENTITY_INSERT [dbo].[AnswerResponse] ON
-    MERGE [dbo].[AnswerResponse] AS T
-    USING
-    (
-        SELECT *
-        FROM
-    (
-        VALUES
-            (1, N'aee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Answer response 1', 1, 1, GETUTCDATE()),
-            (2, N'bee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Answer response 2', 1, 1, GETUTCDATE()),
-            (3, N'cee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Answer response 3', 2, 1, GETUTCDATE()),
-            (4, N'dee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Answer response 4', 2, 1, GETUTCDATE()),
-            (5, N'f0486b3e-39d0-4350-81dc-7583c7a6be28', N'Answer response 5', 3, 1, GETUTCDATE()),
-            (6, N'378bcf7e-012a-413a-9493-aa2dc590ca65', N'Answer response 6', 3, 1, GETUTCDATE()),
-            (7, N'a8f5a8bb-3c35-4866-a981-44bb4200873b', N'Answer response 7', 4, 1, GETUTCDATE()),
-            (8, N'8b1b8b78-2baa-4112-99c4-af3c9991c47d', N'Answer response 8', 4, 1, GETUTCDATE())
-    ) AS temp ([Id], [Uid], [Text], [AnswerFk], [StudentFk], [CreatedOn])
-    ) AS S
-    ON T.[ID] = S.[ID]
-    WHEN MATCHED THEN
-        UPDATE SET T.[Uid] = S.[Uid],
-                   T.[Text] = S.[Text],
-                   T.[AnswerFk] = S.[AnswerFk],
-                   T.[StudentFk] = S.[StudentFk],
-                   T.[CreatedOn] = S.[CreatedOn]
-    WHEN NOT MATCHED THEN
-        INSERT
-        (
-            [Id],
-            [Uid],
-            [Text],
-            [AnswerFk],
-            [StudentFk],
-            [CreatedOn]
-        )
-        VALUES
-        (S.[Id], S.[Uid], S.[Text], S.[AnswerFk], S.[StudentFk], S.[CreatedOn]);
-    SET IDENTITY_INSERT [dbo].[AnswerResponse] OFF
-END
Index: c/FinkiChattery/FinkiChattery.Database/dbo/Tables/AnswerResponse/AnswerResponse.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/AnswerResponse/AnswerResponse.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,17 +1,0 @@
-﻿CREATE TABLE [dbo].[AnswerResponse] (
-    [Id]        BIGINT           IDENTITY (1, 1) NOT NULL,
-    [Uid]       UNIQUEIDENTIFIER NOT NULL,
-    [Text]      NVARCHAR (4000)  NOT NULL,
-    [AnswerFk]  BIGINT           NOT NULL,
-    [StudentFk] BIGINT           NOT NULL,
-    [CreatedOn] SMALLDATETIME    NOT NULL,
-    CONSTRAINT [PK_AnswerResponse] PRIMARY KEY CLUSTERED ([Id] ASC),
-    CONSTRAINT [FK_AnswerResponse_Answer_AnswerFk] FOREIGN KEY ([AnswerFk]) REFERENCES [dbo].[Answer] ([Id]),
-    CONSTRAINT [FK_AnswerResponse_Student_AnswerFk] FOREIGN KEY ([StudentFk]) REFERENCES [dbo].[Student] ([Id])
-);
-
-
-GO
-CREATE NONCLUSTERED INDEX [IX_AnswerResponse_AnswerFk]
-    ON [dbo].[AnswerResponse]([AnswerFk] ASC);
-
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Category/Category.Seed.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Category/Category.Seed.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Category/Category.Seed.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -10,11 +10,5 @@
 		(2, N'7d19a33f-d4a9-4498-8beb-07a5ce75d638',  N'software-engineering'),
 		(3, N'8317013c-7eb8-4ca9-83c5-0342895e4061',  N'visual-programming'),
-		(4, N'11d42b97-a343-499e-b3c6-13fbfd3785f4',  N'internet-programming'),
-		(5, N'b2e4f54d-664e-4301-9642-9a6e9ef8df84',  N'object-oriented-programming'),
-		(6, N'77146a56-48b3-4e29-910a-54b7449f8c2b',  N'calculus'),
-		(7, N'c1a7bc19-34b5-4434-ad6b-f6e0fa90c946',  N'discrete-mathematics'),
-		(8, N'9f324879-0e63-4d3d-a945-e88d290a23f1',  N'advanced-programming'),
-		(9, N'6dd8f274-32ba-4b4b-8270-fea799e9b2e2',  N'web-programming'),
-		(10, N'a4493d42-e01f-4092-a700-47a0847c8c4e',  N'operating-systems')
+		(4, N'a4493d42-e01f-4092-a700-47a0847c8c4e',  N'operating-systems')
 		)
 		AS temp ([ID], [Uid], [Name])
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Question.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Question.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Question.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -0,0 +1,25 @@
+﻿CREATE TABLE [dbo].[Question] (
+    [Id]           BIGINT           IDENTITY (1, 1) NOT NULL,
+    [Uid]          UNIQUEIDENTIFIER NOT NULL,
+    [Title]        NVARCHAR (500)   NOT NULL,
+    [Text]         NVARCHAR (MAX)   NULL,
+    [StudentFk]    BIGINT           NOT NULL,
+    [CreatedOn]    SMALLDATETIME    NOT NULL,
+    [TeamFk]       BIGINT           NULL,
+    [Views]        BIGINT           DEFAULT (CONVERT([bigint],(0))) NOT NULL,
+    [LastActiveOn] SMALLDATETIME    NOT NULL,
+    CONSTRAINT [PK_Question] PRIMARY KEY CLUSTERED ([Id] ASC),
+    CONSTRAINT [FK_Question_Student_StudentFk] FOREIGN KEY ([StudentFk]) REFERENCES [dbo].[Student] ([Id]),
+    CONSTRAINT [FK_Question_Team_TeamFk] FOREIGN KEY ([TeamFk]) REFERENCES [dbo].[Team] ([Id])
+);
+
+
+GO
+CREATE NONCLUSTERED INDEX [IX_Question_StudentFk]
+    ON [dbo].[Question]([StudentFk] ASC);
+
+
+GO
+CREATE NONCLUSTERED INDEX [IX_Question_TeamFk]
+    ON [dbo].[Question]([TeamFk] ASC);
+
Index: c/FinkiChattery/FinkiChattery.Database/dbo/Tables/Question/Question.Debug.Seed.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Question/Question.Debug.Seed.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,46 +1,0 @@
-﻿BEGIN
-    SET IDENTITY_INSERT [dbo].[Question] ON
-    MERGE [dbo].[Question] AS T
-    USING
-    (
-        SELECT *
-        FROM
-    (
-        VALUES
-            (1, N'aee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Question 1', 'Question 1 text', 1, GETUTCDATE(), NULL, 0,
-             GETUTCDATE(), 2
-            ),
-            (2, N'bee193c3-9d36-4ed8-81b2-15eb4ff305f1', N'Question 2', 'Question 2 text', 1, GETUTCDATE(), NULL, 0,
-             GETUTCDATE(), 2
-            )
-    ) AS temp ([ID], [Uid], [Title], [Text], [StudentFk], [CreatedOn], [TeamFk], [Views], [LastActiveOn], [AnswersCount])
-    ) AS S
-    ON T.[ID] = S.[ID]
-    WHEN MATCHED THEN
-        UPDATE SET T.[Uid] = S.[Uid],
-                   T.[Title] = S.[Title],
-                   T.[Text] = S.[Text],
-                   T.[StudentFk] = S.[StudentFk],
-                   T.[CreatedOn] = S.[CreatedOn],
-                   T.[TeamFk] = S.[TeamFk],
-                   T.[Views] = S.[Views],
-                   T.[LastActiveOn] = S.[LastActiveOn],
-                   T.[AnswersCount] = S.[AnswersCount]
-    WHEN NOT MATCHED THEN
-        INSERT
-        (
-            [ID],
-            [Uid],
-            [Title],
-            [Text],
-            [StudentFk],
-            [CreatedOn],
-            [TeamFk],
-            [Views],
-            [LastActiveOn],
-            [AnswersCount]
-        )
-        VALUES
-        (S.[ID], S.[Uid], S.[Title], S.[Text], S.[StudentFk], S.[CreatedOn], S.[TeamFk], S.[Views], S.[LastActiveOn], S.[AnswersCount]);
-    SET IDENTITY_INSERT [dbo].[Question] OFF
-END
Index: c/FinkiChattery/FinkiChattery.Database/dbo/Tables/Question/Question.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Question/Question.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,27 +1,0 @@
-﻿CREATE TABLE [dbo].[Question] (
-    [Id]           BIGINT           IDENTITY (1, 1) NOT NULL,
-    [Uid]          UNIQUEIDENTIFIER NOT NULL,
-    [Title]        NVARCHAR (500)   NOT NULL,
-    [Text]         NVARCHAR (MAX)   NULL,
-    [StudentFk]    BIGINT           NOT NULL,
-    [CreatedOn]    SMALLDATETIME    NOT NULL,
-    [TeamFk]       BIGINT           NULL,
-    [Views]        BIGINT           DEFAULT (CONVERT([bigint],(0))) NOT NULL,
-    [LastActiveOn] SMALLDATETIME    NOT NULL,
-    [Search]       AS ([Title] + ' ' + [Text]), 
-    [AnswersCount] BIGINT           NOT NULL DEFAULT 0, 
-    CONSTRAINT [PK_Question] PRIMARY KEY CLUSTERED ([Id] ASC),
-    CONSTRAINT [FK_Question_Student_StudentFk] FOREIGN KEY ([StudentFk]) REFERENCES [dbo].[Student] ([Id]),
-    CONSTRAINT [FK_Question_Team_TeamFk] FOREIGN KEY ([TeamFk]) REFERENCES [dbo].[Team] ([Id])
-);
-
-
-GO
-CREATE NONCLUSTERED INDEX [IX_Question_StudentFk]
-    ON [dbo].[Question]([StudentFk] ASC);
-
-
-GO
-CREATE NONCLUSTERED INDEX [IX_Question_TeamFk]
-    ON [dbo].[Question]([TeamFk] ASC);
-
Index: src/FinkiChattery/FinkiChattery.Database/dbo/Tables/QuestionCategory.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/QuestionCategory.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
+++ src/FinkiChattery/FinkiChattery.Database/dbo/Tables/QuestionCategory.sql	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -0,0 +1,15 @@
+﻿CREATE TABLE [dbo].[QuestionCategory] (
+    [Id]         BIGINT           IDENTITY (1, 1) NOT NULL,
+    [Uid]        UNIQUEIDENTIFIER NOT NULL,
+    [QuestionFk] BIGINT           NOT NULL,
+    [CategoryFk] BIGINT           NOT NULL,
+    CONSTRAINT [PK_QuestionCategory] PRIMARY KEY CLUSTERED ([Id] ASC),
+    CONSTRAINT [FK_QuestionCategory_Category_QuestionFk] FOREIGN KEY ([QuestionFk]) REFERENCES [dbo].[Category] ([Id]),
+    CONSTRAINT [FK_QuestionCategory_Question_QuestionFk] FOREIGN KEY ([QuestionFk]) REFERENCES [dbo].[Question] ([Id])
+);
+
+
+GO
+CREATE NONCLUSTERED INDEX [IX_QuestionCategory_QuestionFk]
+    ON [dbo].[QuestionCategory]([QuestionFk] ASC);
+
Index: c/FinkiChattery/FinkiChattery.Database/dbo/Tables/QuestionCategory/QuestionCategory.Debug.Seed.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/QuestionCategory/QuestionCategory.Debug.Seed.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,31 +1,0 @@
-﻿BEGIN
-    SET IDENTITY_INSERT [dbo].[QuestionCategory] ON
-    MERGE [dbo].[QuestionCategory] AS T
-    USING
-    (
-        SELECT *
-        FROM
-    (
-        VALUES
-            (1, N'aee193c3-9d36-4ed8-81b2-15eb4ff305f1', 1, 1),
-            (2, N'bee193c3-9d36-4ed8-81b2-15eb4ff305f1', 1, 2),
-            (3, N'cee193c3-9d36-4ed8-81b2-15eb4ff305f1', 1, 3)
-    ) AS temp ([Id], [Uid], [QuestionFk], [CategoryFk])
-    ) AS S
-    ON T.[ID] = S.[ID]
-    WHEN MATCHED THEN
-        UPDATE SET T.[Uid] = S.[Uid],
-                   T.[QuestionFk] = S.[QuestionFk],
-                   T.[CategoryFk] = S.[CategoryFk]
-    WHEN NOT MATCHED THEN
-        INSERT
-        (
-            [Id],
-            [Uid],
-            [QuestionFk],
-            [CategoryFk]
-        )
-        VALUES
-        (S.[Id], S.[Uid], S.[QuestionFk], S.[CategoryFk]);
-    SET IDENTITY_INSERT [dbo].[QuestionCategory] OFF
-END
Index: c/FinkiChattery/FinkiChattery.Database/dbo/Tables/QuestionCategory/QuestionCategory.sql
===================================================================
--- src/FinkiChattery/FinkiChattery.Database/dbo/Tables/QuestionCategory/QuestionCategory.sql	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,15 +1,0 @@
-﻿CREATE TABLE [dbo].[QuestionCategory] (
-    [Id]         BIGINT           IDENTITY (1, 1) NOT NULL,
-    [Uid]        UNIQUEIDENTIFIER NOT NULL,
-    [QuestionFk] BIGINT           NOT NULL,
-    [CategoryFk] BIGINT           NOT NULL,
-    CONSTRAINT [PK_QuestionCategory] PRIMARY KEY CLUSTERED ([Id] ASC),
-    CONSTRAINT [FK_QuestionCategory_Category_CategoryFk] FOREIGN KEY ([CategoryFk]) REFERENCES [dbo].[Category] ([Id]),
-    CONSTRAINT [FK_QuestionCategory_Question_QuestionFk] FOREIGN KEY ([QuestionFk]) REFERENCES [dbo].[Question] ([Id])
-);
-
-
-GO
-CREATE NONCLUSTERED INDEX [IX_QuestionCategory_QuestionFk]
-    ON [dbo].[QuestionCategory]([QuestionFk] ASC);
-
Index: src/FinkiChattery/FinkiChattery.HangfireDatabase/FinkiChattery.HangfireDatabase.sqlproj
===================================================================
--- src/FinkiChattery/FinkiChattery.HangfireDatabase/FinkiChattery.HangfireDatabase.sqlproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.HangfireDatabase/FinkiChattery.HangfireDatabase.sqlproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,3 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
+﻿<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
   <PropertyGroup>
@@ -55,6 +55,6 @@
     <VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
   </PropertyGroup>
-  <Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
-  <Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
+  <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
+  <Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
   <ItemGroup>
     <Folder Include="Properties" />
@@ -80,10 +80,3 @@
     <None Include="FinkiChattery.HangfireDatabase.publish.xml" />
   </ItemGroup>
-  <Import Condition="'$(NetCoreBuild)' == 'true'" Project="$(NETCoreTargetsPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
-  <ItemGroup>
-    <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
-  </ItemGroup>
-  <Target Name="BeforeBuild">
-    <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
-  </Target>
 </Project>
Index: c/FinkiChattery/FinkiChattery.HangfireDatabase/FinkiChattery.HangfireDatabase.sqlproj_backup
===================================================================
--- src/FinkiChattery/FinkiChattery.HangfireDatabase/FinkiChattery.HangfireDatabase.sqlproj_backup	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,82 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <Name>FinkiChattery.HangfireDatabase</Name>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectVersion>4.1</ProjectVersion>
-    <ProjectGuid>{c4cb8596-3f3a-4b4e-bec5-0720ff7cd532}</ProjectGuid>
-    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql150DatabaseSchemaProvider</DSP>
-    <OutputType>Database</OutputType>
-    <RootPath>
-    </RootPath>
-    <RootNamespace>FinkiChattery.HangfireDatabase</RootNamespace>
-    <AssemblyName>FinkiChattery.HangfireDatabase</AssemblyName>
-    <ModelCollation>1033,CI</ModelCollation>
-    <DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
-    <DeployToDatabase>True</DeployToDatabase>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <TargetLanguage>CS</TargetLanguage>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <SqlServerVerification>False</SqlServerVerification>
-    <IncludeCompositeObjects>True</IncludeCompositeObjects>
-    <TargetDatabaseSet>True</TargetDatabaseSet>
-    <DefaultCollation>SQL_Latin1_General_CP1_CI_AS</DefaultCollation>
-    <DefaultFilegroup>PRIMARY</DefaultFilegroup>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <OutputPath>bin\Release\</OutputPath>
-    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
-    <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <DefineDebug>false</DefineDebug>
-    <DefineTrace>true</DefineTrace>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <OutputPath>bin\Debug\</OutputPath>
-    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
-    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <DefineDebug>true</DefineDebug>
-    <DefineTrace>true</DefineTrace>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
-    <!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
-    <SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
-    <VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
-  </PropertyGroup>
-  <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
-  <Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
-  <ItemGroup>
-    <Folder Include="Properties" />
-    <Folder Include="HangFire\" />
-    <Folder Include="HangFire\Tables\" />
-    <Folder Include="Security\" />
-  </ItemGroup>
-  <ItemGroup>
-    <Build Include="HangFire\Tables\Schema.sql" />
-    <Build Include="HangFire\Tables\Job.sql" />
-    <Build Include="HangFire\Tables\State.sql" />
-    <Build Include="HangFire\Tables\JobParameter.sql" />
-    <Build Include="HangFire\Tables\JobQueue.sql" />
-    <Build Include="HangFire\Tables\Server.sql" />
-    <Build Include="HangFire\Tables\List.sql" />
-    <Build Include="HangFire\Tables\Set.sql" />
-    <Build Include="HangFire\Tables\Counter.sql" />
-    <Build Include="HangFire\Tables\Hash.sql" />
-    <Build Include="HangFire\Tables\AggregatedCounter.sql" />
-    <Build Include="Security\HangFire.sql" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="FinkiChattery.HangfireDatabase.publish.xml" />
-  </ItemGroup>
-</Project>
Index: src/FinkiChattery/FinkiChattery.Identity/FinkiChattery.Identity.csproj
===================================================================
--- src/FinkiChattery/FinkiChattery.Identity/FinkiChattery.Identity.csproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Identity/FinkiChattery.Identity.csproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -3,5 +3,4 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
-    <Configurations>Debug;Release;Debug_Docker</Configurations>
   </PropertyGroup>
 
Index: src/FinkiChattery/FinkiChattery.Identity/Properties/launchSettings.json
===================================================================
--- src/FinkiChattery/FinkiChattery.Identity/Properties/launchSettings.json	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Identity/Properties/launchSettings.json	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -9,11 +9,4 @@
   },
   "profiles": {
-    "FinkiChattery.Identity": {
-      "commandName": "IISExpress",
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
-      },
-      "applicationUrl": "https://localhost:44301"
-    },
     "SelfHost": {
       "commandName": "IISExpress",
Index: src/FinkiChattery/FinkiChattery.Identity/Startup.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Identity/Startup.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Identity/Startup.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -28,11 +28,6 @@
             services.AddControllersWithViews();
 
-            string connectionString = "DefaultConnection";
-#if DEBUG_DOCKER
-            connectionString = "DefaultConnectionDocker";
-#endif
-
             services.AddDbContextPool<ApplicationDbContext<ApplicationUser>>(options =>
-                options.UseSqlServer(Configuration.GetConnectionString(connectionString)));
+                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
 
             services.AddIdentityServerAndIdentityProvider(AppSettings);
Index: src/FinkiChattery/FinkiChattery.Identity/appsettings.Development.json
===================================================================
--- src/FinkiChattery/FinkiChattery.Identity/appsettings.Development.json	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Identity/appsettings.Development.json	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -10,5 +10,5 @@
 				{
 					"allowedCorsOrigins": [ "http://localhost:4200" ],
-					"redirectUris": [ "http://localhost:4200/auth-callback" ],
+					"redirectUris": [ "http://localhost:4200" ],
 					"postLogoutRedirectUris": [ "http://localhost:4200" ]
 				}
@@ -17,6 +17,5 @@
 	},
 	"ConnectionStrings": {
-		"DefaultConnection": "data source=.;initial catalog=FinkiChattery;integrated security=True;application name=FinkiChattery Base App;Pooling=true;Min Pool Size=5;Max Pool Size=30;",
-		"DefaultConnectionDocker": "Data Source=localhost;Initial Catalog=FinkiChattery;User ID=sa;Password=Asfa+032;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;Pooling=true;Min Pool Size=5;Max Pool Size=30;"
+		"DefaultConnection": "data source=.;initial catalog=FinkiChattery;integrated security=True;application name=FinkiChattery Base App;Pooling=true;Min Pool Size=5;Max Pool Size=30;"
 	}
 }
Index: src/FinkiChattery/FinkiChattery.Persistence/Configurations/AnswerConfig.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Configurations/AnswerConfig.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Configurations/AnswerConfig.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -22,5 +22,4 @@
             builder.Property(x => x.CorrectAnswer).HasColumnName(@"CorrectAnswer").HasColumnType("bit").IsRequired();
             builder.Property(x => x.CreatedOn).HasColumnName(@"CreatedOn").HasColumnType("smalldatetime").IsRequired();
-            builder.Property(x => x.UpvotesCount).HasColumnName(@"UpvotesCount").HasColumnType("bigint").IsRequired().HasDefaultValue(0);
 
             builder.HasOne(x => x.Question).WithMany(x => x.Answers).HasForeignKey(x => x.QuestionFk).OnDelete(DeleteBehavior.Restrict);
Index: src/FinkiChattery/FinkiChattery.Persistence/Configurations/AnswerResponseConfig.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Configurations/AnswerResponseConfig.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Configurations/AnswerResponseConfig.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -28,5 +28,5 @@
 
             builder.HasOne(x => x.Answer).WithMany(x => x.AnswerResponses).HasForeignKey(x => x.AnswerFk).OnDelete(DeleteBehavior.Restrict);
-            builder.HasOne(x => x.Student).WithMany().HasForeignKey(x => x.StudentFk).OnDelete(DeleteBehavior.Restrict);
+            builder.HasOne(x => x.Student).WithMany().HasForeignKey(x => x.AnswerFk).OnDelete(DeleteBehavior.Restrict);
         }
     }
Index: src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionCategoryConfig.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionCategoryConfig.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionCategoryConfig.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -26,5 +26,5 @@
 
             builder.HasOne(x => x.Question).WithMany(x => x.QuestionCategories).HasForeignKey(x => x.QuestionFk).OnDelete(DeleteBehavior.Restrict);
-            builder.HasOne(x => x.Category).WithMany().HasForeignKey(x => x.CategoryFk).OnDelete(DeleteBehavior.Restrict);
+            builder.HasOne(x => x.Category).WithMany().HasForeignKey(x => x.QuestionFk).OnDelete(DeleteBehavior.Restrict);
         }
     }
Index: src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionConfig.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionConfig.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Configurations/QuestionConfig.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -24,6 +24,4 @@
             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.AnswersCount).HasColumnType(@"AnswersCount").HasColumnType("bigint").IsRequired().HasDefaultValue(0);
 
             builder.HasOne(x => x.Student).WithMany(x => x.Questions).HasForeignKey(x => x.StudentFk).OnDelete(DeleteBehavior.NoAction);
Index: src/FinkiChattery/FinkiChattery.Persistence/FinkiChattery.Persistence.csproj
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/FinkiChattery.Persistence.csproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/FinkiChattery.Persistence.csproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -3,5 +3,4 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
-    <Configurations>Debug;Release;Debug_Docker</Configurations>
   </PropertyGroup>
 
Index: src/FinkiChattery/FinkiChattery.Persistence/Models/Answer.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Models/Answer.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Models/Answer.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -20,6 +20,4 @@
         public DateTime CreatedOn { get; set; }
 
-        public long UpvotesCount { get; set; }
-
         public virtual ICollection<Upvote> Upvotes { get; set; }
 
Index: src/FinkiChattery/FinkiChattery.Persistence/Models/Question.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Models/Question.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Models/Question.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -32,11 +32,9 @@
         public DateTime LastActiveOn { get; set; }
 
-        public string Search { get; set; }
-
-        public long AnswersCount { get; set; }
-
         public virtual ICollection<Answer> Answers { get; set; }
 
         public virtual ICollection<QuestionCategory> QuestionCategories { get; set; }
+
+        // TODO: Pole po koe ke pravime queries
     }
 }
Index: c/FinkiChattery/FinkiChattery.Persistence/Repositories/Base/IRepository.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Base/IRepository.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,17 +1,0 @@
-﻿using System;
-using System.Linq;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Persistence.Repositories
-{
-    public interface IRepository<T> where T : class
-    {
-        IQueryable<T> All();
-
-        Task<T> GetByUidAsync(Guid uid);
-
-        Task<T> GetByIdAsync(int id);
-
-        void Add(T entity);
-    }
-}
Index: src/FinkiChattery/FinkiChattery.Persistence/Repositories/Base/Repository.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Base/Repository.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Repositories/Base/Repository.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -8,5 +8,5 @@
 namespace FinkiChattery.Persistence.Repositories
 {
-    public abstract class Repository<T> : IRepository<T> where T : BaseEntity
+    public abstract class Repository<T> where T : BaseEntity
     {
         public Repository(ApplicationDbContext dbContext)
Index: src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/ICategoriesRepo.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/ICategoriesRepo.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/ICategoriesRepo.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -8,5 +8,5 @@
 namespace FinkiChattery.Persistence.Repositories
 {
-    public interface ICategoriesRepo : IRepository<Category>
+    public interface ICategoriesRepo
     {
         public Task<bool> CategoriesExist(IEnumerable<Guid> categoriesUids);
Index: src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/IQuestionRepo.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/IQuestionRepo.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/IQuestionRepo.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,19 +1,6 @@
-﻿using FinkiChattery.Persistence.Models;
-using FinkiChattery.Persistence.Repositories.Contracts;
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Persistence.Repositories
+﻿namespace FinkiChattery.Persistence.Repositories
 {
-    public interface IQuestionRepo : IRepository<Question>
+    public interface IQuestionRepo
     {
-        Task<List<QuestionPreviewDto>> SearchQuestions(string searchText, IEnumerable<Guid> categories);
-
-        Task<QuestionStateDto> GetQuestionState(Guid questionUid);
-
-        Task<List<QuestionPreviewDto>> GetPreviewQuestionsLatest();
-     
-        Task<List<QuestionPreviewDto>> GetPreviewQuestionsPopular();
     }
 }
Index: src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/IStudentRepo.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/IStudentRepo.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/IStudentRepo.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -4,5 +4,5 @@
 namespace FinkiChattery.Persistence.Repositories
 {
-    public interface IStudentRepo : IRepository<Student>
+    public interface IStudentRepo
     {
         public Task<Student> GetStudent(long applicationUserFk);
Index: src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/ITeamRepo.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/ITeamRepo.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/ITeamRepo.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,9 +1,8 @@
-﻿using FinkiChattery.Persistence.Models;
-using System;
+﻿using System;
 using System.Threading.Tasks;
 
 namespace FinkiChattery.Persistence.Repositories
 {
-    public interface ITeamRepo : IRepository<Team>
+    public interface ITeamRepo
     {
         public Task<bool> TeamWithUidExists(Guid teamUid);
Index: c/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/Question/QuestionPreviewDto.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/Question/QuestionPreviewDto.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,41 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-
-namespace FinkiChattery.Persistence.Repositories.Contracts
-{
-    public class QuestionPreviewDto
-    {
-        public QuestionPreviewDto(long id, Guid uid, string title, long views, long answersCount, DateTime createdOn, IEnumerable<QuestionPreviewCategoryDto> categories)
-        {
-            Id = id;
-            Uid = uid;
-            Title = title;
-            Views = views;
-            AnswersCount = answersCount;
-            CreatedOn = createdOn;
-            Categories = categories;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Title { get; }
-        public long Views { get; }
-        public long AnswersCount { get; }
-        public DateTime CreatedOn { get; }
-        public IEnumerable<QuestionPreviewCategoryDto> Categories { get; }
-    }
-
-    public class QuestionPreviewCategoryDto
-    {
-        public QuestionPreviewCategoryDto(long id, Guid uid, string text)
-        {
-            Id = id;
-            Uid = uid;
-            Text = text;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Text { get; }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/Question/QuestionStateDto.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Contracts/Question/QuestionStateDto.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,160 +1,0 @@
-﻿#nullable enable
-
-using System;
-using System.Collections.Generic;
-
-namespace FinkiChattery.Persistence.Repositories.Contracts
-{
-    public class QuestionStateDto
-    {
-        public QuestionStateDto(long id, Guid uid, string title, string text, DateTime createdOn, long views, DateTime lastActiveOn, StudentQuestionStateDto studentDto, IEnumerable<AnswerQuestionStateDto> answersDto, IEnumerable<QuestionCategoryQuestionStateDto> categoriesDto, TeamQuestionStateDto? teamDto)
-        {
-            Id = id;
-            Uid = uid;
-            Title = title;
-            Text = text;
-            CreatedOn = createdOn;
-            Views = views;
-            LastActiveOn = lastActiveOn;
-            StudentDto = studentDto;
-            AnswersDto = answersDto;
-            CategoriesDto = categoriesDto;
-            TeamDto = teamDto;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Title { get; }
-        public string Text { get; }
-        public DateTime CreatedOn { get; }
-        public long Views { get; }
-        public DateTime LastActiveOn { get; }
-        public StudentQuestionStateDto StudentDto { get; }
-        public IEnumerable<AnswerQuestionStateDto> AnswersDto { get; }
-        public IEnumerable<QuestionCategoryQuestionStateDto> CategoriesDto { get; }
-        public TeamQuestionStateDto? TeamDto { get; }
-    }
-
-    public class StudentQuestionStateDto
-    {
-        public StudentQuestionStateDto(long id, Guid uid, string index, string imageUrl, long reputation)
-        {
-            Id = id;
-            Uid = uid;
-            Index = index;
-            ImageUrl = imageUrl;
-            Reputation = reputation;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Index { get; }
-        public string ImageUrl { get; }
-        public long Reputation { get; }
-    }
-
-    public class TeamQuestionStateDto
-    {
-        public TeamQuestionStateDto(long id, Guid uid, string name)
-        {
-            Id = id;
-            Uid = uid;
-            Name = name;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Name { get; }
-    }
-
-    public class QuestionCategoryQuestionStateDto
-    {
-        public QuestionCategoryQuestionStateDto(long id, Guid uid, string name)
-        {
-            Id = id;
-            Uid = uid;
-            Name = name;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Name { get; }
-    }
-
-    public class AnswerQuestionStateDto
-    {
-        public AnswerQuestionStateDto(long id, Guid uid, string text, bool correctAnswer, DateTime createdOn, long upvotesCount, AnswerStudentQuestionStateDto studentDto, IEnumerable<AnswerResponseQuestionStateDto> answerResponsesDto)
-        {
-            Id = id;
-            Uid = uid;
-            Text = text;
-            CorrectAnswer = correctAnswer;
-            CreatedOn = createdOn;
-            UpvotesCount = upvotesCount;
-            StudentDto = studentDto;
-            AnswerResponsesDto = answerResponsesDto;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Text { get; }
-        public bool CorrectAnswer { get; }
-        public DateTime CreatedOn { get; }
-        public long UpvotesCount { get; }
-        public AnswerStudentQuestionStateDto StudentDto { get; }
-        public IEnumerable<AnswerResponseQuestionStateDto> AnswerResponsesDto { get; }
-    }
-
-    public class AnswerStudentQuestionStateDto
-    {
-        public AnswerStudentQuestionStateDto(long id, Guid uid, string index, string imageUrl, long reputation)
-        {
-            Id = id;
-            Uid = uid;
-            Index = index;
-            ImageUrl = imageUrl;
-            Reputation = reputation;
-        }
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Index { get; }
-        public string ImageUrl { get; }
-        public long Reputation { get; }
-    }
-
-    public class AnswerResponseQuestionStateDto
-    {
-        public AnswerResponseQuestionStateDto(long id, Guid uid, string text, DateTime createdOn, AnswerResponseStudentQuestionStateDto studentDto)
-        {
-            Id = id;
-            Uid = uid;
-            Text = text;
-            CreatedOn = createdOn;
-            StudentDto = studentDto;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Text { get; }
-        public DateTime CreatedOn { get; }
-        public AnswerResponseStudentQuestionStateDto StudentDto { get; }
-    }
-
-    public class AnswerResponseStudentQuestionStateDto
-    {
-        public AnswerResponseStudentQuestionStateDto(long id, Guid uid, string index, string imageUrl, long reputation)
-        {
-            Id = id;
-            Uid = uid;
-            Index = index;
-            ImageUrl = imageUrl;
-            Reputation = reputation;
-        }
-
-        public long Id { get; }
-        public Guid Uid { get; }
-        public string Index { get; }
-        public string ImageUrl { get; }
-        public long Reputation { get; }
-    }
-}
Index: src/FinkiChattery/FinkiChattery.Persistence/Repositories/Implementations/QuestionRepo.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/Repositories/Implementations/QuestionRepo.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Persistence/Repositories/Implementations/QuestionRepo.cs	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,13 +1,4 @@
 ﻿using FinkiChattery.Persistence.Context;
 using FinkiChattery.Persistence.Models;
-using FinkiChattery.Persistence.Repositories.Contracts;
-using Microsoft.Data.SqlClient;
-using Microsoft.EntityFrameworkCore;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Linq.Expressions;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
 
 namespace FinkiChattery.Persistence.Repositories
@@ -18,130 +9,4 @@
         {
         }
-
-        public async Task<List<QuestionPreviewDto>> GetPreviewQuestionsLatest()
-        {
-            Expression<Func<Question, DateTime>> orderBy = x => x.CreatedOn;
-            return await GetPreviewQuestions(orderBy);
-        }
-
-        public async Task<List<QuestionPreviewDto>> GetPreviewQuestionsPopular()
-        {
-            Expression<Func<Question, long>> orderBy = x => x.Views;
-            return await GetPreviewQuestions(orderBy);
-        }
-
-        private async Task<List<QuestionPreviewDto>> GetPreviewQuestions<T>(Expression<Func<Question, T>> orderBy)
-        {
-            return await DbSet
-                .AsNoTracking()
-                .Include(x => x.QuestionCategories).ThenInclude(x => x.Category)
-                .OrderByDescending(orderBy)
-                .Select(x => new QuestionPreviewDto(x.Id,
-                                                    x.Uid,
-                                                    x.Title,
-                                                    x.Views,
-                                                    x.AnswersCount,
-                                                    x.CreatedOn,
-                                                    x.QuestionCategories.Select(y => new QuestionPreviewCategoryDto(y.Id, y.Uid, y.Category.Name))))
-                .Skip(0).Take(30)
-                .ToListAsync();
-        }
-
-        public async Task<QuestionStateDto> GetQuestionState(Guid questionUid)
-        {
-            // TODO: MAYBE WRITE THIS QUERY AS SP ??
-            var questionDto = await DbSet
-              .AsNoTracking()
-              .Include(x => x.Student)
-              .Include(x => x.Team)
-              .Include(x => x.Answers).ThenInclude(y => y.Student)
-              .Include(x => x.Answers).ThenInclude(y => y.AnswerResponses).ThenInclude(y => y.Student)
-              .Include(x => x.QuestionCategories).ThenInclude(y => y.Category)
-              .Where(x => x.Uid == questionUid)
-              .Select(x => new QuestionStateDto(
-                                                x.Id,
-                                                x.Uid,
-                                                x.Title,
-                                                x.Text,
-                                                x.CreatedOn,
-                                                x.Views,
-                                                x.LastActiveOn,
-                                                new StudentQuestionStateDto(
-                                                  x.Student.Id,
-                                                  x.Student.Uid,
-                                                  x.Student.IndexNumber,
-                                                  x.Student.ImageUrl,
-                                                  x.Student.Reputation),
-                                                x.Answers.Select(y =>
-                                                new AnswerQuestionStateDto(
-                                                    y.Id,
-                                                    y.Uid,
-                                                    y.Text,
-                                                    y.CorrectAnswer,
-                                                    y.CreatedOn,
-                                                    y.UpvotesCount,
-                                                    new AnswerStudentQuestionStateDto(
-                                                        y.Student.Id,
-                                                        y.Student.Uid,
-                                                        y.Student.IndexNumber,
-                                                        y.Student.ImageUrl,
-                                                        y.Student.Reputation),
-                                                    y.AnswerResponses.Select(z =>
-                                                    new AnswerResponseQuestionStateDto(
-                                                        z.Id,
-                                                        z.Uid,
-                                                        z.Text,
-                                                        z.CreatedOn,
-                                                        new AnswerResponseStudentQuestionStateDto(
-                                                            z.Student.Id,
-                                                            z.Student.Uid,
-                                                            z.Student.IndexNumber,
-                                                            z.Student.ImageUrl,
-                                                            z.Student.Reputation))))),
-                                                x.QuestionCategories.Select(y =>
-                                                new QuestionCategoryQuestionStateDto(
-                                                    y.Id,
-                                                    y.Uid,
-                                                    y.Category.Name)),
-                                                x.Team == null ? null : new TeamQuestionStateDto(
-                                                    x.Team.Id,
-                                                    x.Team.Uid,
-                                                    x.Team.Name)))
-              .FirstOrDefaultAsync();
-
-            return questionDto;
-        }
-
-        public async Task<List<QuestionPreviewDto>> SearchQuestions(string searchText, IEnumerable<Guid> categories)
-        {
-            var search = Regex.Replace(searchText, "[\\\\/:*?\"<>\\]\\[|&'`~^=%,(){}_\\-]", " ")
-                                     .Split(" ".ToArray(), StringSplitOptions.RemoveEmptyEntries)
-                                     .Select(c => $"\"{c}*\"");
-
-            var searchString = string.Join(" AND ", search);
-
-            var rawQuery = (IQueryable<Question>)
-                DbSet.FromSqlRaw(@"
-                        SELECT [q].[Id], [q].[Uid], [q].[Title], [q].[Views], [q].[AnswersCount], [q].[CreatedOn] 
-                        FROM [dbo].[Question] AS [q]
-                        INNER JOIN CONTAINSTABLE(Question, Search, @searchString, 30) ccontains ON [q].[Id] = ccontains.[KEY]",
-                        new SqlParameter("searchString", searchString))
-                .Include(x => x.QuestionCategories).ThenInclude(x => x.Category);
-
-            if (categories.Any())
-            {
-                rawQuery = rawQuery.Where(x => x.QuestionCategories.Any(y => categories.Contains(y.Category.Uid)));
-            }
-
-            return await rawQuery
-                .Select(x => new QuestionPreviewDto(x.Id,
-                                    x.Uid,
-                                    x.Title,
-                                    x.Views,
-                                    x.AnswersCount,
-                                    x.CreatedOn,
-                                    x.QuestionCategories.Select(y => new QuestionPreviewCategoryDto(y.Id, y.Uid, y.Category.Name))))
-                .ToListAsync();
-        }
     }
 }
Index: c/FinkiChattery/FinkiChattery.Persistence/UnitOfWork/Contracts/IUnitOfWork.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/UnitOfWork/Contracts/IUnitOfWork.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,15 +1,0 @@
-﻿using FinkiChattery.Persistence.Repositories;
-using System;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Persistence.UnitOfWork
-{
-    public interface IUnitOfWork : IDisposable
-    {
-        ICategoriesRepo Categories { get; }
-        IQuestionRepo Questions { get; }
-        IStudentRepo Students { get; }
-        ITeamRepo Teams { get; }
-        Task<int> SaveAsync();
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Persistence/UnitOfWork/Implementations/UnitOfWork.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Persistence/UnitOfWork/Implementations/UnitOfWork.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,102 +1,0 @@
-﻿using FinkiChattery.Persistence.Context;
-using FinkiChattery.Persistence.Repositories;
-using System;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Persistence.UnitOfWork
-{
-    public class UnitOfWork : IUnitOfWork
-    {
-        private QuestionRepo _questions;
-        private CategoriesRepo _categories;
-        private StudentRepo _students;
-        private TeamRepo _teams;
-
-        public UnitOfWork(ApplicationDbContext dbContext)
-        {
-            DbContext = dbContext;
-        }
-
-        public ICategoriesRepo Categories
-        {
-            get
-            {
-                if (_categories == null)
-                {
-                    _categories = new CategoriesRepo(DbContext);
-                }
-
-                return _categories;
-            }
-        }
-
-        public IQuestionRepo Questions
-        {
-            get
-            {
-                if (_questions == null)
-                {
-                    _questions = new QuestionRepo(DbContext);
-                }
-
-                return _questions;
-            }
-        }
-
-        public IStudentRepo Students
-        {
-            get
-            {
-                if (_students == null)
-                {
-                    _students = new StudentRepo(DbContext);
-                }
-
-                return _students;
-            }
-        }
-
-        public ITeamRepo Teams
-        {
-            get
-            {
-                if (_teams == null)
-                {
-                    _teams = new TeamRepo(DbContext);
-                }
-
-                return _teams;
-            }
-        }
-
-        public ApplicationDbContext DbContext { get; }
-
-        public async Task<int> SaveAsync()
-        {
-            return await DbContext.SaveChangesAsync();
-        }
-
-        #region IDisposable Support
-        bool DisposedValue { get; set; }
-
-        protected virtual void Dispose(bool disposing)
-        {
-            if (!DisposedValue)
-            {
-                if (disposing)
-                {
-                    DbContext.Dispose();
-                }
-
-                DisposedValue = true;
-            }
-        }
-
-        public void Dispose()
-        {
-            Dispose(true);
-            GC.SuppressFinalize(this);
-        }
-        #endregion
-    }
-}
Index: src/FinkiChattery/FinkiChattery.Queries/FinkiChattery.Queries.csproj
===================================================================
--- src/FinkiChattery/FinkiChattery.Queries/FinkiChattery.Queries.csproj	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.Queries/FinkiChattery.Queries.csproj	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -1,13 +1,7 @@
-﻿<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
-    <Configurations>Debug;Release;Debug_Docker</Configurations>
   </PropertyGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\FinkiChattery.Common\FinkiChattery.Common.csproj" />
-    <ProjectReference Include="..\FinkiChattery.Persistence\FinkiChattery.Persistence.csproj" />
-  </ItemGroup>
-
 </Project>
Index: c/FinkiChattery/FinkiChattery.Queries/Questioning/GetCategories/GetCategoriesQuery.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Queries/Questioning/GetCategories/GetCategoriesQuery.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,32 +1,0 @@
-﻿using FinkiChattery.Common.Mediator.Contracs;
-using FinkiChattery.Persistence.Models;
-using FinkiChattery.Persistence.UnitOfWork;
-using Microsoft.EntityFrameworkCore;
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Queries.Questioning
-{
-    public class GetCategoriesQuery : IQuery<List<Category>>
-    {
-        public GetCategoriesQuery()
-        {
-        }
-    }
-
-    public class GetCategories : IQueryHandler<GetCategoriesQuery, List<Category>>
-    {
-        public GetCategories(IUnitOfWork unitOfWork)
-        {
-            UnitOfWork = unitOfWork;
-        }
-
-        public IUnitOfWork UnitOfWork { get; }
-
-        public async Task<List<Category>> Handle(GetCategoriesQuery request, CancellationToken cancellationToken)
-        {
-            return await UnitOfWork.Categories.All().ToListAsync();
-        }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Queries/Questioning/GetPreviewQuestions/GetPreviewQuestionsOrderEnum.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Queries/Questioning/GetPreviewQuestions/GetPreviewQuestionsOrderEnum.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,8 +1,0 @@
-﻿namespace FinkiChattery.Queries.Questioning
-{
-    public enum GetPreviewQuestionsOrderEnum
-    {
-        Latest,
-        Popular
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Queries/Questioning/GetPreviewQuestions/GetPreviewQuestionsQuery.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Queries/Questioning/GetPreviewQuestions/GetPreviewQuestionsQuery.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,39 +1,0 @@
-﻿using FinkiChattery.Common.Mediator.Contracs;
-using FinkiChattery.Persistence.Repositories.Contracts;
-using FinkiChattery.Persistence.UnitOfWork;
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Queries.Questioning
-{
-    public class GetPreviewQuestionsQuery : IQuery<List<QuestionPreviewDto>>
-    {
-        public GetPreviewQuestionsQuery(GetPreviewQuestionsOrderEnum previewQuestionsOrder)
-        {
-            PreviewQuestionsOrder = previewQuestionsOrder;
-        }
-
-        public GetPreviewQuestionsOrderEnum PreviewQuestionsOrder { get; }
-    }
-
-    public class GetPreviewQuestionsHandler : IQueryHandler<GetPreviewQuestionsQuery, List<QuestionPreviewDto>>
-    {
-        public GetPreviewQuestionsHandler(IUnitOfWork unitOfWork)
-        {
-            UnitOfWork = unitOfWork;
-        }
-
-        public IUnitOfWork UnitOfWork { get; }
-
-        public async Task<List<QuestionPreviewDto>> Handle(GetPreviewQuestionsQuery request, CancellationToken cancellationToken)
-        {
-            return request.PreviewQuestionsOrder switch
-            {
-                GetPreviewQuestionsOrderEnum.Latest => await UnitOfWork.Questions.GetPreviewQuestionsLatest(),
-                GetPreviewQuestionsOrderEnum.Popular => await UnitOfWork.Questions.GetPreviewQuestionsPopular(),
-                _ => await UnitOfWork.Questions.GetPreviewQuestionsLatest(),
-            };
-        }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Queries/Questioning/GetQuestionState/GetQuestionStateQuery.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Queries/Questioning/GetQuestionState/GetQuestionStateQuery.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,34 +1,0 @@
-﻿using FinkiChattery.Common.Mediator.Contracs;
-using FinkiChattery.Persistence.Repositories.Contracts;
-using FinkiChattery.Persistence.UnitOfWork;
-using System;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Queries.Questioning
-{
-    public class GetQuestionStateQuery : IQuery<QuestionStateDto>
-    {
-        public GetQuestionStateQuery(Guid questionUid)
-        {
-            QuestionUid = questionUid;
-        }
-
-        public Guid QuestionUid { get; }
-    }
-
-    public class GetQuestionStateQueryHandler : IQueryHandler<GetQuestionStateQuery, QuestionStateDto>
-    {
-        public GetQuestionStateQueryHandler(IUnitOfWork unitOfWork)
-        {
-            UnitOfWork = unitOfWork;
-        }
-
-        public IUnitOfWork UnitOfWork { get; }
-
-        public async Task<QuestionStateDto> Handle(GetQuestionStateQuery request, CancellationToken cancellationToken)
-        {
-            return await UnitOfWork.Questions.GetQuestionState(request.QuestionUid);
-        }
-    }
-}
Index: c/FinkiChattery/FinkiChattery.Queries/Questioning/SearchQuestions/SearchQuestionsQuery.cs
===================================================================
--- src/FinkiChattery/FinkiChattery.Queries/Questioning/SearchQuestions/SearchQuestionsQuery.cs	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ 	(revision )
@@ -1,54 +1,0 @@
-﻿using FinkiChattery.Common.Mediator.Contracs;
-using FinkiChattery.Persistence.Repositories.Contracts;
-using FinkiChattery.Persistence.UnitOfWork;
-using System;
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace FinkiChattery.Queries.Questioning
-{
-    public class SearchQuestionsQuery : IQuery<List<QuestionPreviewDto>>
-    {
-        public SearchQuestionsQuery(string searchText, string categories)
-        {
-            SearchText = searchText;
-            Categories = categories;
-        }
-
-        public string SearchText { get; }
-        public string Categories { get; }
-    }
-
-    public class SearchQuestionsQueryHandler : IQueryHandler<SearchQuestionsQuery, List<QuestionPreviewDto>>
-    {
-        public SearchQuestionsQueryHandler(IUnitOfWork unitOfWork)
-        {
-            UnitOfWork = unitOfWork;
-        }
-
-        public IUnitOfWork UnitOfWork { get; }
-
-        public async Task<List<QuestionPreviewDto>> Handle(SearchQuestionsQuery request, CancellationToken cancellationToken)
-        {
-            if (string.IsNullOrEmpty(request.SearchText))
-            {
-                return new List<QuestionPreviewDto>();
-            }
-
-            var categories = new List<Guid>();
-            if (!string.IsNullOrEmpty(request.Categories))
-            {
-                foreach (var item in request.Categories.Split(","))
-                {
-                    if (Guid.TryParse(item, out Guid result))
-                    {
-                        categories.Add(result);
-                    }
-                }
-            }
-
-            return await UnitOfWork.Questions.SearchQuestions(request.SearchText, categories);
-        }
-    }
-}
Index: src/FinkiChattery/FinkiChattery.sln
===================================================================
--- src/FinkiChattery/FinkiChattery.sln	(revision 79ae62142b33ae03175dade171a7f5e23c1424dc)
+++ src/FinkiChattery/FinkiChattery.sln	(revision 81e1ed63dc82abe5e83cc7f2a71c977a8d12dec6)
@@ -22,48 +22,34 @@
 Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "FinkiChattery.HangfireDatabase", "FinkiChattery.HangfireDatabase\FinkiChattery.HangfireDatabase.sqlproj", "{C4CB8596-3F3A-4B4E-BEC5-0720FF7CD532}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FinkiChattery.Commands", "FinkiChattery.Commands\FinkiChattery.Commands.csproj", "{7AD9C86F-46FF-442A-B134-3CE2E82CE0D0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FinkiChattery.Commands", "FinkiChattery.Commands\FinkiChattery.Commands.csproj", "{7AD9C86F-46FF-442A-B134-3CE2E82CE0D0}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FinkiChattery.Queries", "FinkiChattery.Queries\FinkiChattery.Queries.csproj", "{D19820A3-E6E6-4B1C-927A-C8B8B4B16D25}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FinkiChattery.Queries", "FinkiChattery.Queries\FinkiChattery.Queries.csproj", "{D19820A3-E6E6-4B1C-927A-C8B8B4B16D25}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug_Docker|Any CPU = Debug_Docker|Any CPU
 		Debug|Any CPU = Debug|Any CPU
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{8CD7796E-5DC1-413D-8D04-3C95E89BB214}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{8CD7796E-5DC1-413D-8D04-3C95E89BB214}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
 		{8CD7796E-5DC1-413D-8D04-3C95E89BB214}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8CD7796E-5DC1-413D-8D04-3C95E89BB214}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8CD7796E-5DC1-413D-8D04-3C95E89BB214}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{8CD7796E-5DC1-413D-8D04-3C95E89BB214}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D2EADD50-983E-48EE-8B36-7CF088DCF8AE}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{D2EADD50-983E-48EE-8B36-7CF088DCF8AE}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
 		{D2EADD50-983E-48EE-8B36-7CF088DCF8AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{D2EADD50-983E-48EE-8B36-7CF088DCF8AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{D2EADD50-983E-48EE-8B36-7CF088DCF8AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{D2EADD50-983E-48EE-8B36-7CF088DCF8AE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{1BA385FA-32FC-4237-85D2-705EEBCAFD06}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{1BA385FA-32FC-4237-85D2-705EEBCAFD06}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
 		{1BA385FA-32FC-4237-85D2-705EEBCAFD06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{1BA385FA-32FC-4237-85D2-705EEBCAFD06}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{1BA385FA-32FC-4237-85D2-705EEBCAFD06}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{1BA385FA-32FC-4237-85D2-705EEBCAFD06}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4D2F08BF-44F0-427D-B5B8-079233500FA8}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{4D2F08BF-44F0-427D-B5B8-079233500FA8}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
 		{4D2F08BF-44F0-427D-B5B8-079233500FA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4D2F08BF-44F0-427D-B5B8-079233500FA8}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4D2F08BF-44F0-427D-B5B8-079233500FA8}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4D2F08BF-44F0-427D-B5B8-079233500FA8}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E69CDEE7-B2F5-42F4-81F0-11DCDC1C8CC9}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{E69CDEE7-B2F5-42F4-81F0-11DCDC1C8CC9}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
 		{E69CDEE7-B2F5-42F4-81F0-11DCDC1C8CC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E69CDEE7-B2F5-42F4-81F0-11DCDC1C8CC9}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E69CDEE7-B2F5-42F4-81F0-11DCDC1C8CC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E69CDEE7-B2F5-42F4-81F0-11DCDC1C8CC9}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5E1219F5-FC7D-4138-811D-26934E946D30}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{5E1219F5-FC7D-4138-811D-26934E946D30}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
-		{5E1219F5-FC7D-4138-811D-26934E946D30}.Debug_Docker|Any CPU.Deploy.0 = Debug_Docker|Any CPU
 		{5E1219F5-FC7D-4138-811D-26934E946D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{5E1219F5-FC7D-4138-811D-26934E946D30}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -72,7 +58,4 @@
 		{5E1219F5-FC7D-4138-811D-26934E946D30}.Release|Any CPU.Build.0 = Release|Any CPU
 		{5E1219F5-FC7D-4138-811D-26934E946D30}.Release|Any CPU.Deploy.0 = Release|Any CPU
-		{C4CB8596-3F3A-4B4E-BEC5-0720FF7CD532}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{C4CB8596-3F3A-4B4E-BEC5-0720FF7CD532}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
-		{C4CB8596-3F3A-4B4E-BEC5-0720FF7CD532}.Debug_Docker|Any CPU.Deploy.0 = Debug_Docker|Any CPU
 		{C4CB8596-3F3A-4B4E-BEC5-0720FF7CD532}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{C4CB8596-3F3A-4B4E-BEC5-0720FF7CD532}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -81,12 +64,8 @@
 		{C4CB8596-3F3A-4B4E-BEC5-0720FF7CD532}.Release|Any CPU.Build.0 = Release|Any CPU
 		{C4CB8596-3F3A-4B4E-BEC5-0720FF7CD532}.Release|Any CPU.Deploy.0 = Release|Any CPU
-		{7AD9C86F-46FF-442A-B134-3CE2E82CE0D0}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{7AD9C86F-46FF-442A-B134-3CE2E82CE0D0}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
 		{7AD9C86F-46FF-442A-B134-3CE2E82CE0D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7AD9C86F-46FF-442A-B134-3CE2E82CE0D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{7AD9C86F-46FF-442A-B134-3CE2E82CE0D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{7AD9C86F-46FF-442A-B134-3CE2E82CE0D0}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D19820A3-E6E6-4B1C-927A-C8B8B4B16D25}.Debug_Docker|Any CPU.ActiveCfg = Debug_Docker|Any CPU
-		{D19820A3-E6E6-4B1C-927A-C8B8B4B16D25}.Debug_Docker|Any CPU.Build.0 = Debug_Docker|Any CPU
 		{D19820A3-E6E6-4B1C-927A-C8B8B4B16D25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{D19820A3-E6E6-4B1C-927A-C8B8B4B16D25}.Debug|Any CPU.Build.0 = Debug|Any CPU
