diff --git a/alfa-client/apps/admin-e2e/docker-compose.yml b/alfa-client/apps/admin-e2e/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2be8b11e32f65cf23ff1c7566028cf5d6f13ef8b
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/docker-compose.yml
@@ -0,0 +1,28 @@
+version: '3'
+
+volumes:
+  mongodb:
+
+services:
+  mongodb:
+    image: mongo:7
+    ports:
+      - 27017:27017
+    volumes:
+      - mongodb:/data/db
+    healthcheck:
+      test: ["CMD", "mongosh", "--eval", "db.settings.find()"]
+      interval: 10s
+      timeout: 5s
+      retries: 5
+
+  administration:
+      image: docker.ozg-sh.de/administration:${ADMINISTRATION_DOCKER_IMAGE:-snapshot-latest}
+      environment:
+        - SPRING_PROFILES_ACTIVE=${SPRING_PROFILE:-local,remotekc}
+        - SPRING_DATA_MONGODB_URI=mongodb://mongodb:27017/config-db
+      ports:
+        - 8080:8080
+      depends_on:
+        mongodb:
+          condition: service_healthy
diff --git a/alfa-client/apps/admin-e2e/src/e2e/login/login-logout.cy.ts b/alfa-client/apps/admin-e2e/src/e2e/login/login-logout.cy.ts
new file mode 100644
index 0000000000000000000000000000000000000000..323222de657468487d7376c29de8aaa384524408
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/e2e/login/login-logout.cy.ts
@@ -0,0 +1,49 @@
+import { App } from 'apps/admin-e2e/src/model/app';
+import { getApp } from 'apps/admin-e2e/src/support/app-util';
+import { getUserSabine } from 'apps/alfa-e2e/src/support/user-util';
+import { UserE2E } from '../../model/user';
+import { HeaderE2EComponent } from '../../page-objects/header.po';
+import { MainPage } from '../../page-objects/main.po';
+
+describe('Login and Logout', () => {
+  const app: App = getApp();
+  const user: UserE2E = getUserSabine();
+
+  const mainPage: MainPage = new MainPage();
+  const header: HeaderE2EComponent = mainPage.getHeader();
+
+  before(() => {
+    //cy.logout();
+  });
+
+  it('login as test user', () => {
+    cy.visit('')
+      .get('#kc-login')
+      .should('exist')
+      .get('#username')
+      .type(user.name)
+      .get('#password')
+      .type(user.password)
+      .get('#kc-login')
+      .click();
+  });
+
+  /*it('should display Alfa logo', () => {
+    waitForSpinnerToDisappear();
+
+    exist(header.getLogo());
+  });
+
+  it('should keep user logged in on reload page', () => {
+    reload();
+    waitForSpinnerToDisappear();
+
+    exist(header.getLogo());
+  });
+
+  it('should logout', () => {
+    header.getCurrentUserProfile().logout();
+
+    exist(cy.get('#kc-login'));
+  });*/
+});
diff --git a/alfa-client/apps/admin-e2e/src/e2e/navigation/navigation.cy.ts b/alfa-client/apps/admin-e2e/src/e2e/navigation/navigation.cy.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9268aee2937b2ccedf333a527abf8674f495de79
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/e2e/navigation/navigation.cy.ts
@@ -0,0 +1,169 @@
+import { NavigationE2EComponent } from 'apps/alfa-e2e/src/components/navigation/navigation.e2e.component';
+import { VorgangListE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-list.e2e.component';
+import { VorgangSearchE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-search.e2e.component';
+import { VorgangViewsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component';
+import { UsermanagerUserE2E } from 'apps/alfa-e2e/src/model/usermanager';
+import { VorgangE2E } from 'apps/alfa-e2e/src/model/vorgang';
+import { HeaderE2EComponent } from 'apps/alfa-e2e/src/page-objects/header.po';
+import { MainPage, waitForSpinnerToDisappear } from 'apps/alfa-e2e/src/page-objects/main.po';
+import { dropCollections, dropSearchIndex } from 'apps/alfa-e2e/src/support/cypress-helper';
+import { enterWith, exist, haveText, notExist } from 'apps/alfa-e2e/src/support/cypress.util';
+import {
+  getUserManagerUserSabine,
+  getUserSabineId,
+  initUsermanagerUsers,
+  loginAsSabine,
+} from 'apps/alfa-e2e/src/support/user-util';
+import {
+  buildVorgang,
+  createVorgang,
+  initSearchIndex,
+  initVorgaenge,
+  objectIds,
+} from 'apps/alfa-e2e/src/support/vorgang-util';
+
+describe('Navigation', () => {
+  const mainPage: MainPage = new MainPage();
+
+  const header: HeaderE2EComponent = mainPage.getHeader();
+  const vorgangSearch: VorgangSearchE2EComponent = header.getVorgangSearch();
+
+  const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
+
+  const navigation: NavigationE2EComponent = mainPage.getNavigation();
+
+  const views: VorgangViewsE2EComponent = mainPage.getViews();
+
+  const usermanagerUserSabine: UsermanagerUserE2E = getUserManagerUserSabine();
+
+  const vorgang: VorgangE2E = createVorgang();
+  const vorgangNotBeFiltered: VorgangE2E = {
+    ...buildVorgang(objectIds[0], 'vorgangNotBeFiltered'),
+  };
+  const vorgangAssigned: VorgangE2E = {
+    ...buildVorgang(objectIds[1], 'vorgangAssigned'),
+    assignedTo: getUserSabineId(),
+  };
+  const vorgangAssignedNotBeFiltered: VorgangE2E = {
+    ...buildVorgang(objectIds[2], 'vorgangAssignedNotBeFiltered'),
+    assignedTo: getUserSabineId(),
+  };
+
+  const searchString: string = 'NotBeFiltered';
+
+  before(() => {
+    initVorgaenge([vorgang, vorgangNotBeFiltered, vorgangAssigned, vorgangAssignedNotBeFiltered]);
+    initSearchIndex([vorgang, vorgangNotBeFiltered, vorgangAssigned, vorgangAssignedNotBeFiltered]);
+    initUsermanagerUsers();
+
+    loginAsSabine();
+
+    waitForSpinnerToDisappear();
+    exist(vorgangList.getRoot());
+    navigation.getAlleFilter().click();
+    waitForSpinnerToDisappear();
+    exist(vorgangList.getRoot());
+  });
+
+  after(() => {
+    dropCollections();
+    dropSearchIndex();
+  });
+
+  describe('navigation item myVorgaenge', () => {
+    it('should exists', () => {
+      exist(navigation.getMeineVorgaengeFilter());
+    });
+  });
+
+  describe('navigation item allVorgaenge', () => {
+    it('should exists', () => {
+      exist(navigation.getAlleFilter());
+    });
+  });
+
+  describe('click on my vorgaenge', () => {
+    it('should hide not to user assigned vorgaenge', () => {
+      navigation.getMeineVorgaengeFilter().click();
+      waitForSpinnerToDisappear();
+
+      notExist(vorgangList.getListItem(vorgang.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangNotBeFiltered.name).getRoot());
+      exist(vorgangList.getListItem(vorgangAssigned.name).getRoot());
+      exist(vorgangList.getListItem(vorgangAssignedNotBeFiltered.name).getRoot());
+    });
+
+    it('should hide not matching vorgaenge after do search', () => {
+      doSearch(searchString);
+      waitForSpinnerToDisappear();
+
+      notExist(vorgangList.getListItem(vorgang.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangNotBeFiltered.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangAssigned.name).getRoot());
+      exist(vorgangList.getListItem(vorgangAssignedNotBeFiltered.name).getRoot());
+    });
+  });
+
+  describe('click on all vorgaenge', () => {
+    it('should show all vorgaenge', () => {
+      navigation.getAlleFilter().click();
+      waitForSpinnerToDisappear();
+      views.getVorgangList().getRoot().click();
+
+      waitForSpinnerToDisappear();
+
+      exist(vorgangList.getListItem(vorgang.name).getRoot());
+      exist(vorgangList.getListItem(vorgangNotBeFiltered.name).getRoot());
+      exist(vorgangList.getListItem(vorgangAssigned.name).getRoot());
+      exist(vorgangList.getListItem(vorgangAssignedNotBeFiltered.name).getRoot());
+    });
+
+    it('should hide not matching vorgaenge after do search', () => {
+      doSearch(searchString);
+      waitForSpinnerToDisappear();
+
+      notExist(vorgangList.getListItem(vorgang.name).getRoot());
+      exist(vorgangList.getListItem(vorgangNotBeFiltered.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangAssigned.name).getRoot());
+      exist(vorgangList.getListItem(vorgangAssignedNotBeFiltered.name).getRoot());
+    });
+  });
+
+  describe('click on Suche view', () => {
+    it('and alle filter should show empty list', () => {
+      vorgangSearch.getClearButton().click();
+
+      waitForSpinnerToDisappear();
+
+      views.getSuche().getRoot().click();
+
+      waitForSpinnerToDisappear();
+
+      notExist(vorgangList.getListItem(vorgang.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangNotBeFiltered.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangAssigned.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangAssignedNotBeFiltered.name).getRoot());
+
+      //TODO sauber implementieren
+      haveText(cy.getTestElement('empty-list-text'), 'Bitte geben Sie einen Suchbegriff ein.');
+    });
+
+    it('and meine filter should show empty list', () => {
+      navigation.getMeineVorgaengeFilter().click();
+
+      waitForSpinnerToDisappear();
+
+      notExist(vorgangList.getListItem(vorgang.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangNotBeFiltered.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangAssigned.name).getRoot());
+      notExist(vorgangList.getListItem(vorgangAssignedNotBeFiltered.name).getRoot());
+
+      //TODO sauber implementieren
+      haveText(cy.getTestElement('empty-list-text'), 'Bitte geben Sie einen Suchbegriff ein.');
+    });
+  });
+
+  function doSearch(searchString: string): void {
+    enterWith(vorgangSearch.getInput(), searchString);
+  }
+});
diff --git a/alfa-client/apps/admin-e2e/src/fixtures/main.json b/alfa-client/apps/admin-e2e/src/fixtures/main.json
new file mode 100644
index 0000000000000000000000000000000000000000..1a9105d4281bb016cd9670da714fb1fcd894f688
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/fixtures/main.json
@@ -0,0 +1,3 @@
+{
+  "title": "Admin Alfa"
+}
diff --git a/alfa-client/apps/admin-e2e/src/model/app.ts b/alfa-client/apps/admin-e2e/src/model/app.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f1d3b803032cb4355e644612dc97e5ec538a7ec1
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/model/app.ts
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+export class App {
+  title: string;
+}
diff --git a/alfa-client/apps/admin-e2e/src/model/user.ts b/alfa-client/apps/admin-e2e/src/model/user.ts
new file mode 100644
index 0000000000000000000000000000000000000000..63a64a6f8371e62e2ce152c9cac268449376276e
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/model/user.ts
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+export interface UserE2E {
+  uuid: string;
+  id: string;
+  name: string;
+  password: string;
+  firstName: string;
+  lastName: string;
+  fullName: string;
+  initials: string;
+  dataTestId: string;
+}
diff --git a/alfa-client/apps/admin-e2e/src/page-objects/header.po.ts b/alfa-client/apps/admin-e2e/src/page-objects/header.po.ts
new file mode 100644
index 0000000000000000000000000000000000000000..dd9051508d5c05c74c0e2628963dbf15c4af7e75
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/page-objects/header.po.ts
@@ -0,0 +1,39 @@
+/*import { HelpMenuE2EComponent } from '../components/user-assistance/help-menu.component.e2e';
+import { CurrentUserProfileE2EComponent } from '../components/user-profile/current-user-profile.component.e2e';
+import { UserSettingsE2EComponent } from '../components/user-settings/user-settings.component.e2e';
+import { VorgangSearchE2EComponent } from '../components/vorgang/vorgang-search.e2e.component';*/
+
+export class HeaderE2EComponent {
+  private readonly locatorLogo: string = 'alfa-logo';
+  private readonly locatorRoot: string = 'header';
+
+  /*private readonly helpMenu: HelpMenuE2EComponent = new HelpMenuE2EComponent();
+  private readonly userSettings: UserSettingsE2EComponent = new UserSettingsE2EComponent();
+  private readonly currentUserProfile: CurrentUserProfileE2EComponent =
+    new CurrentUserProfileE2EComponent();
+  private readonly vorgangSearch: VorgangSearchE2EComponent = new VorgangSearchE2EComponent();
+
+  public getRoot() {
+    return cy.getTestElement(this.locatorRoot);
+  }
+
+  public getLogo() {
+    return cy.getTestElement(this.locatorLogo);
+  }
+
+  public getVorgangSearch(): VorgangSearchE2EComponent {
+    return this.vorgangSearch;
+  }
+
+  public getHelpMenu(): HelpMenuE2EComponent {
+    return this.helpMenu;
+  }
+
+  public getUserSettings(): UserSettingsE2EComponent {
+    return this.userSettings;
+  }
+
+  public getCurrentUserProfile(): CurrentUserProfileE2EComponent {
+    return this.currentUserProfile;
+  }*/
+}
diff --git a/alfa-client/apps/admin-e2e/src/page-objects/main.po.ts b/alfa-client/apps/admin-e2e/src/page-objects/main.po.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4c4a6f1acc97d7cc9e893c758b094bbdf57dd6d9
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/page-objects/main.po.ts
@@ -0,0 +1,86 @@
+/*import { BasicDialogE2EComponent } from '../components/basic-dialog/basic-dialog.e2e.component';
+import { BuildInfoE2EComponent } from '../components/buildinfo/buildinfo.e2e.component';
+import { HintE2EComponent } from '../components/hint/hint.component.e2e';
+import { NavigationE2EComponent } from '../components/navigation/navigation.e2e.component';
+import {
+  ConnectionTimeoutRetryDialogE2EComponent,
+  ConnectionTimeoutRetryFailDialogE2EComponent,
+} from '../components/ui/connection-timeout-retry-dialog.e2e.component';
+import { InternalServerErrorDialogE2EComponent } from '../components/ui/internal-server-error-diaog.e2e.component';
+import { SnackBarE2EComponent } from '../components/ui/snackbar.e2e.component';
+import { VorgangListE2EComponent } from '../components/vorgang/vorgang-list.e2e.component';
+import { VorgangViewsE2EComponent } from '../components/vorgang/vorgang-views.e2e.component';*/
+
+import { HeaderE2EComponent } from './header.po';
+
+export class MainPage {
+  private readonly header: HeaderE2EComponent = new HeaderE2EComponent();
+
+  public getHeader(): HeaderE2EComponent {
+    return this.header;
+  }
+  /*private readonly buildInfo: BuildInfoE2EComponent = new BuildInfoE2EComponent();
+
+  private readonly navigation: NavigationE2EComponent = new NavigationE2EComponent();
+  private readonly views: VorgangViewsE2EComponent = new VorgangViewsE2EComponent();
+  private readonly snackBar: SnackBarE2EComponent = new SnackBarE2EComponent();
+  private readonly vorgangList: VorgangListE2EComponent = new VorgangListE2EComponent();
+  private readonly internalServerErrorDialog: InternalServerErrorDialogE2EComponent =
+    new InternalServerErrorDialogE2EComponent();
+  private readonly connectionTimeoutRetryDialog: ConnectionTimeoutRetryDialogE2EComponent =
+    new ConnectionTimeoutRetryDialogE2EComponent();
+  private readonly connectionTimeoutRetryFailDialog: ConnectionTimeoutRetryFailDialogE2EComponent =
+    new ConnectionTimeoutRetryFailDialogE2EComponent();
+  private readonly basicDialog: BasicDialogE2EComponent = new BasicDialogE2EComponent();
+  private readonly hint: HintE2EComponent = new HintE2EComponent();
+
+  public getBuildInfo(): BuildInfoE2EComponent {
+    return this.buildInfo;
+  }
+
+
+
+  public getNavigation(): NavigationE2EComponent {
+    return this.navigation;
+  }
+
+  public getViews(): VorgangViewsE2EComponent {
+    return this.views;
+  }
+
+  public getSnackBar(): SnackBarE2EComponent {
+    return this.snackBar;
+  }
+
+  public getVorgangList(): VorgangListE2EComponent {
+    return this.vorgangList;
+  }
+
+  public getInternalServerErrorDialog(): InternalServerErrorDialogE2EComponent {
+    return this.internalServerErrorDialog;
+  }
+
+  public getConnectionTimeoutRetryDialog(): ConnectionTimeoutRetryDialogE2EComponent {
+    return this.connectionTimeoutRetryDialog;
+  }
+
+  public getConnectionTimeoutRetryFailDialog(): ConnectionTimeoutRetryFailDialogE2EComponent {
+    return this.connectionTimeoutRetryFailDialog;
+  }
+
+  public getBasicDialog(): BasicDialogE2EComponent {
+    return this.basicDialog;
+  }
+
+  public getHint(): HintE2EComponent {
+    return this.hint;
+  }*/
+}
+
+/*export function waitForSpinnerToDisappear(): boolean {
+  return cy.getTestElementWithClass('spinner').should('not.exist');
+}
+
+export function waitforSpinnerToAppear(): void {
+  // exist(cy.getTestElementWithClass('spinner'));
+}*/
diff --git a/alfa-client/apps/admin-e2e/src/support/app-util.ts b/alfa-client/apps/admin-e2e/src/support/app-util.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d5a480c1461cc95c689024f65cdbeacf9777a02c
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/support/app-util.ts
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+import { App } from '../model/app';
+
+//TODO main.json in app.json umbenennen
+const appFixture: App = require('../fixtures/main.json');
+
+export function getApp(): App {
+  return appFixture;
+}
diff --git a/alfa-client/package-lock.json b/alfa-client/package-lock.json
index 8945df22fc8c94eac9c02663aee4892aa033906a..a115c4a4f72581aaba5c368c309c7dcd27c3984d 100644
--- a/alfa-client/package-lock.json
+++ b/alfa-client/package-lock.json
@@ -12,7 +12,6 @@
         "@angular/animations": "17.3.10",
         "@angular/cdk": "17.3.10",
         "@angular/common": "17.3.10",
-        "@angular/compiler": "17.3.10",
         "@angular/core": "17.3.10",
         "@angular/forms": "17.3.10",
         "@angular/material": "17.3.10",
@@ -54,6 +53,7 @@
         "@angular-eslint/eslint-plugin-template": "17.3.0",
         "@angular-eslint/template-parser": "17.3.0",
         "@angular/cli": "~17.3.8",
+        "@angular/compiler": "^17.3.10",
         "@angular/compiler-cli": "17.3.10",
         "@angular/language-service": "17.3.10",
         "@bahmutov/cypress-extends": "1.1.0",
@@ -8741,12 +8741,12 @@
       }
     },
     "node_modules/@nx/angular/node_modules/@typescript-eslint/scope-manager": {
-      "version": "7.13.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
-      "integrity": "sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==",
+      "version": "7.18.0",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
+      "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
       "dependencies": {
-        "@typescript-eslint/types": "7.13.0",
-        "@typescript-eslint/visitor-keys": "7.13.0"
+        "@typescript-eslint/types": "7.18.0",
+        "@typescript-eslint/visitor-keys": "7.18.0"
       },
       "engines": {
         "node": "^18.18.0 || >=20.0.0"
@@ -8757,12 +8757,12 @@
       }
     },
     "node_modules/@nx/angular/node_modules/@typescript-eslint/type-utils": {
-      "version": "7.13.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/type-utils/-/type-utils-7.13.0.tgz",
-      "integrity": "sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==",
+      "version": "7.18.0",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz",
+      "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==",
       "dependencies": {
-        "@typescript-eslint/typescript-estree": "7.13.0",
-        "@typescript-eslint/utils": "7.13.0",
+        "@typescript-eslint/typescript-estree": "7.18.0",
+        "@typescript-eslint/utils": "7.18.0",
         "debug": "^4.3.4",
         "ts-api-utils": "^1.3.0"
       },
@@ -8783,9 +8783,9 @@
       }
     },
     "node_modules/@nx/angular/node_modules/@typescript-eslint/types": {
-      "version": "7.13.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/types/-/types-7.13.0.tgz",
-      "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==",
+      "version": "7.18.0",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/types/-/types-7.18.0.tgz",
+      "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
       "engines": {
         "node": "^18.18.0 || >=20.0.0"
       },
@@ -8795,12 +8795,12 @@
       }
     },
     "node_modules/@nx/angular/node_modules/@typescript-eslint/typescript-estree": {
-      "version": "7.13.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz",
-      "integrity": "sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==",
+      "version": "7.18.0",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
+      "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
       "dependencies": {
-        "@typescript-eslint/types": "7.13.0",
-        "@typescript-eslint/visitor-keys": "7.13.0",
+        "@typescript-eslint/types": "7.18.0",
+        "@typescript-eslint/visitor-keys": "7.18.0",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
@@ -8822,9 +8822,9 @@
       }
     },
     "node_modules/@nx/angular/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
-      "version": "9.0.4",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-9.0.4.tgz",
-      "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+      "version": "9.0.5",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-9.0.5.tgz",
+      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
       "dependencies": {
         "brace-expansion": "^2.0.1"
       },
@@ -8836,14 +8836,14 @@
       }
     },
     "node_modules/@nx/angular/node_modules/@typescript-eslint/utils": {
-      "version": "7.13.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/utils/-/utils-7.13.0.tgz",
-      "integrity": "sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==",
+      "version": "7.18.0",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/utils/-/utils-7.18.0.tgz",
+      "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.4.0",
-        "@typescript-eslint/scope-manager": "7.13.0",
-        "@typescript-eslint/types": "7.13.0",
-        "@typescript-eslint/typescript-estree": "7.13.0"
+        "@typescript-eslint/scope-manager": "7.18.0",
+        "@typescript-eslint/types": "7.18.0",
+        "@typescript-eslint/typescript-estree": "7.18.0"
       },
       "engines": {
         "node": "^18.18.0 || >=20.0.0"
@@ -8857,11 +8857,11 @@
       }
     },
     "node_modules/@nx/angular/node_modules/@typescript-eslint/visitor-keys": {
-      "version": "7.13.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz",
-      "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==",
+      "version": "7.18.0",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
+      "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
       "dependencies": {
-        "@typescript-eslint/types": "7.13.0",
+        "@typescript-eslint/types": "7.18.0",
         "eslint-visitor-keys": "^3.4.3"
       },
       "engines": {
@@ -10058,9 +10058,9 @@
       }
     },
     "node_modules/@nx/webpack/node_modules/enhanced-resolve": {
-      "version": "5.17.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
-      "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+      "version": "5.17.1",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
+      "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
       "dependencies": {
         "graceful-fs": "^4.2.4",
         "tapable": "^2.2.0"
diff --git a/alfa-client/package.json b/alfa-client/package.json
index fe89e4b34f2d4a287e07754f0244462d4fec01e1..1a7380bbf4c7258f411837abd4b326fe5125fdec 100644
--- a/alfa-client/package.json
+++ b/alfa-client/package.json
@@ -43,6 +43,7 @@
     "cypress:version": "npx cypress version",
     "cypress:install": "npx cypress install",
     "cypress:open": "npx cypress open --project apps/alfa-e2e",
+    "cypress:open-admin": "npx cypress open --project apps/admin-e2e",
     "workspace-generator": "nx workspace-generator",
     "storybook": "nx storybook design-system",
     "ci-storybook": "nx build-storybook design-system && nx container design-system"
@@ -52,7 +53,6 @@
     "@angular/animations": "17.3.10",
     "@angular/cdk": "17.3.10",
     "@angular/common": "17.3.10",
-    "@angular/compiler": "17.3.10",
     "@angular/core": "17.3.10",
     "@angular/forms": "17.3.10",
     "@angular/material": "17.3.10",
@@ -94,6 +94,7 @@
     "@angular-eslint/eslint-plugin-template": "17.3.0",
     "@angular-eslint/template-parser": "17.3.0",
     "@angular/cli": "~17.3.8",
+    "@angular/compiler": "^17.3.10",
     "@angular/compiler-cli": "17.3.10",
     "@angular/language-service": "17.3.10",
     "@bahmutov/cypress-extends": "1.1.0",
@@ -162,4 +163,4 @@
     "ts-node": "10.9.1",
     "typescript": "5.4.5"
   }
-}
\ No newline at end of file
+}