From 822d52b671d564408cdc04efdf30001379840b9b Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 21 Nov 2024 15:06:33 +0100
Subject: [PATCH] OZG-7128 7031 new libs

---
 alfa-client/Jenkinsfile.e2e                   |  2 +-
 alfa-client/Jenkinsfile.e2e.static            |  2 +-
 alfa-client/apps/admin/src/main.ts            | 10 +++---
 .../libs/admin/configuration/.eslintrc.json   |  4 +--
 .../libs/admin/configuration/jest.config.ts   |  2 +-
 .../libs/admin/configuration/project.json     |  2 +-
 .../.eslintrc.json                            |  4 +--
 .../organisations-einheit-shared/README.md    |  7 ++++
 .../jest.config.ts                            | 21 ++++++++++++
 .../organisations-einheit-shared/project.json | 22 +++++++++++++
 .../organisations-einheit-shared/src/index.ts |  0
 .../src/test-setup.ts                         |  0
 .../tsconfig.json                             |  0
 .../tsconfig.lib.json                         |  0
 .../tsconfig.spec.json                        |  0
 .../organisations-einheit/.eslintrc.json      | 33 +++++++++++++++++++
 .../README.md                                 |  0
 .../jest.config.ts                            |  4 +--
 .../project.json                              |  6 ++--
 .../admin/organisations-einheit/src/index.ts  |  3 ++
 ...isations-einheit-container.component.html} |  0
 ...tions-einheit-container.component.spec.ts} |  2 +-
 ...anisations-einheit-container.component.ts} |  6 ++--
 ...organisations-einheit-list.component.html} |  0
 ...anisations-einheit-list.component.spec.ts} |  0
 .../organisations-einheit-list.component.ts}  |  2 +-
 ...ons-einheit-form-container.component.html} |  0
 ...-einheit-form-container.component.spec.ts} |  2 +-
 ...tions-einheit-form-container.component.ts} |  6 ++--
 ...organisations-einheit-form.component.html} |  0
 ...anisations-einheit-form.component.spec.ts} |  2 +-
 .../organisations-einheit-form.component.ts}  |  6 ++--
 ...nisations-einheit-signatur.component.html} |  0
 ...ations-einheit-signatur.component.spec.ts} |  0
 ...ganisations-einheit-signatur.component.ts} |  4 +--
 ...organisations-einheit.formservice.spec.ts} |  0
 .../organisations-einheit.formservice.ts}     |  2 +-
 ...nisations-einheit-list-resource.service.ts |  0
 .../organisations-einheit-resource.service.ts |  0
 .../src/lib/organisations-einheit.linkrel.ts  |  0
 .../src/lib/organisations-einheit.model.ts    |  0
 .../lib/organisations-einheit.providers.ts    |  0
 .../organisations-einheit.service.spec.ts}    |  0
 .../src/lib/organisations-einheit.service.ts} |  0
 .../organisations-einheit/src/test-setup.ts   | 12 +++++++
 .../test/organisations-einheit.ts             |  0
 .../admin/organisations-einheit/tsconfig.json | 16 +++++++++
 .../organisations-einheit/tsconfig.lib.json   | 12 +++++++
 .../organisations-einheit/tsconfig.spec.json  | 12 +++++++
 .../admin/organisationseinheit/src/index.ts   |  3 --
 .../libs/admin/postfach-shared/.eslintrc.json | 33 +++++++++++++++++++
 .../libs/admin/postfach-shared/README.md      |  7 ++++
 .../libs/admin/postfach-shared/jest.config.ts | 21 ++++++++++++
 .../libs/admin/postfach-shared/project.json   | 22 +++++++++++++
 .../libs/admin/postfach-shared/src/index.ts   |  0
 .../admin/postfach-shared/src/test-setup.ts   | 12 +++++++
 .../libs/admin/postfach-shared/tsconfig.json  | 16 +++++++++
 .../admin/postfach-shared/tsconfig.lib.json   | 12 +++++++
 .../admin/postfach-shared/tsconfig.spec.json  | 12 +++++++
 .../libs/admin/postfach/.eslintrc.json        |  4 +--
 .../libs/admin/postfach/jest.config.ts        |  2 +-
 alfa-client/libs/admin/postfach/project.json  |  2 +-
 .../libs/admin/settings/.eslintrc.json        |  4 +--
 .../libs/admin/settings/jest.config.ts        |  2 +-
 alfa-client/libs/admin/settings/project.json  |  2 +-
 alfa-client/libs/admin/shared/.eslintrc.json  |  4 +--
 alfa-client/libs/admin/shared/project.json    |  2 +-
 .../libs/admin/user-shared/.eslintrc.json     | 33 +++++++++++++++++++
 alfa-client/libs/admin/user-shared/README.md  |  7 ++++
 .../libs/admin/user-shared/jest.config.ts     | 21 ++++++++++++
 .../libs/admin/user-shared/project.json       | 22 +++++++++++++
 .../libs/admin/user-shared/src/index.ts       |  0
 .../libs/admin/user-shared/src/test-setup.ts  | 12 +++++++
 .../libs/admin/user-shared/tsconfig.json      | 16 +++++++++
 .../libs/admin/user-shared/tsconfig.lib.json  | 12 +++++++
 .../libs/admin/user-shared/tsconfig.spec.json | 12 +++++++
 alfa-client/libs/admin/user/.eslintrc.json    |  4 +--
 alfa-client/libs/admin/user/jest.config.ts    |  2 +-
 alfa-client/libs/admin/user/project.json      |  2 +-
 alfa-client/libs/admin/user/src/index.ts      |  1 -
 alfa-client/tsconfig.base.json                |  5 ++-
 81 files changed, 461 insertions(+), 54 deletions(-)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit-shared}/.eslintrc.json (91%)
 create mode 100644 alfa-client/libs/admin/organisations-einheit-shared/README.md
 create mode 100644 alfa-client/libs/admin/organisations-einheit-shared/jest.config.ts
 create mode 100644 alfa-client/libs/admin/organisations-einheit-shared/project.json
 create mode 100644 alfa-client/libs/admin/organisations-einheit-shared/src/index.ts
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit-shared}/src/test-setup.ts (100%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit-shared}/tsconfig.json (100%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit-shared}/tsconfig.lib.json (100%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit-shared}/tsconfig.spec.json (100%)
 create mode 100644 alfa-client/libs/admin/organisations-einheit/.eslintrc.json
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/README.md (100%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/jest.config.ts (91%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/project.json (72%)
 create mode 100644 alfa-client/libs/admin/organisations-einheit/src/index.ts
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.html => organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.html} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.spec.ts => organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.spec.ts} (98%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.ts => organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.ts} (84%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html => organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.html} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts => organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.spec.ts} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts => organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.ts} (96%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.html => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.html} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.spec.ts => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.spec.ts} (98%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.ts => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.ts} (84%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.html => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.html} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.spec.ts} (98%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.ts => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.ts} (91%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.html => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.html} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.spec.ts => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.spec.ts} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.ts => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.ts} (86%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit.formservice.spec.ts} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit.formservice.ts => organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit.formservice.ts} (98%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/src/lib/organisations-einheit-list-resource.service.ts (100%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/src/lib/organisations-einheit-resource.service.ts (100%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/src/lib/organisations-einheit.linkrel.ts (100%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/src/lib/organisations-einheit.model.ts (100%)
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/src/lib/organisations-einheit.providers.ts (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit.service.spec.ts => organisations-einheit/src/lib/organisations-einheit.service.spec.ts} (100%)
 rename alfa-client/libs/admin/{organisationseinheit/src/lib/organisationseinheit.service.ts => organisations-einheit/src/lib/organisations-einheit.service.ts} (100%)
 create mode 100644 alfa-client/libs/admin/organisations-einheit/src/test-setup.ts
 rename alfa-client/libs/admin/{organisationseinheit => organisations-einheit}/test/organisations-einheit.ts (100%)
 create mode 100644 alfa-client/libs/admin/organisations-einheit/tsconfig.json
 create mode 100644 alfa-client/libs/admin/organisations-einheit/tsconfig.lib.json
 create mode 100644 alfa-client/libs/admin/organisations-einheit/tsconfig.spec.json
 delete mode 100644 alfa-client/libs/admin/organisationseinheit/src/index.ts
 create mode 100644 alfa-client/libs/admin/postfach-shared/.eslintrc.json
 create mode 100644 alfa-client/libs/admin/postfach-shared/README.md
 create mode 100644 alfa-client/libs/admin/postfach-shared/jest.config.ts
 create mode 100644 alfa-client/libs/admin/postfach-shared/project.json
 create mode 100644 alfa-client/libs/admin/postfach-shared/src/index.ts
 create mode 100644 alfa-client/libs/admin/postfach-shared/src/test-setup.ts
 create mode 100644 alfa-client/libs/admin/postfach-shared/tsconfig.json
 create mode 100644 alfa-client/libs/admin/postfach-shared/tsconfig.lib.json
 create mode 100644 alfa-client/libs/admin/postfach-shared/tsconfig.spec.json
 create mode 100644 alfa-client/libs/admin/user-shared/.eslintrc.json
 create mode 100644 alfa-client/libs/admin/user-shared/README.md
 create mode 100644 alfa-client/libs/admin/user-shared/jest.config.ts
 create mode 100644 alfa-client/libs/admin/user-shared/project.json
 create mode 100644 alfa-client/libs/admin/user-shared/src/index.ts
 create mode 100644 alfa-client/libs/admin/user-shared/src/test-setup.ts
 create mode 100644 alfa-client/libs/admin/user-shared/tsconfig.json
 create mode 100644 alfa-client/libs/admin/user-shared/tsconfig.lib.json
 create mode 100644 alfa-client/libs/admin/user-shared/tsconfig.spec.json

diff --git a/alfa-client/Jenkinsfile.e2e b/alfa-client/Jenkinsfile.e2e
index 5483d632f0..9b55f66a51 100644
--- a/alfa-client/Jenkinsfile.e2e
+++ b/alfa-client/Jenkinsfile.e2e
@@ -802,7 +802,7 @@ Map getUserManagerEnv(String namespace, dbPort){
 }
 
 Map getUserManagerDatabaseSecret(String namespace) {
-    return readJSON ( text: sh (script: "kubectl get secret ozg-mongodb-user-manager-user -n ${namespace} -o jsonpath={.data}", returnStdout: true))
+    return readJSON ( text: sh (script: "kubectl get secret ozg-mongodb-admin-user-manager-user -n ${namespace} -o jsonpath={.data}", returnStdout: true))
 }
 
 Void sendFailureMessage() {
diff --git a/alfa-client/Jenkinsfile.e2e.static b/alfa-client/Jenkinsfile.e2e.static
index 55ddf3568c..2e499f9abb 100644
--- a/alfa-client/Jenkinsfile.e2e.static
+++ b/alfa-client/Jenkinsfile.e2e.static
@@ -419,7 +419,7 @@ Map getUserManagerEnv(String namespace, dbPort){
 }
 
 Map getUserManagerDatabaseSecret(String namespace) {
-    return readJSON(text: sh(script: "kubectl get secret ozg-mongodb-user-manager-user -n ${namespace} -o jsonpath={.data}", returnStdout: true))
+    return readJSON(text: sh(script: "kubectl get secret ozg-mongodb-admin-user-manager-user -n ${namespace} -o jsonpath={.data}", returnStdout: true))
 }
 
 String makePasswordUrlConform(String password) {
diff --git a/alfa-client/apps/admin/src/main.ts b/alfa-client/apps/admin/src/main.ts
index 6d42d30201..02a54c5a24 100644
--- a/alfa-client/apps/admin/src/main.ts
+++ b/alfa-client/apps/admin/src/main.ts
@@ -2,7 +2,6 @@ import { EnvironmentModule, loadEnvironment } from '@alfa-client/environment-sha
 import { enableProdMode, importProvidersFrom } from '@angular/core';
 import { isNil } from 'lodash-es';
 
-import { UserProviders } from '@admin-client/user';
 import { ApiRootModule } from '@alfa-client/api-root-shared';
 import { NavigationSharedModule } from '@alfa-client/navigation-shared';
 import { registerLocaleData } from '@angular/common';
@@ -17,10 +16,11 @@ import { StoreModule } from '@ngrx/store';
 import { StoreDevtoolsModule } from '@ngrx/store-devtools';
 import { OAuthModule } from 'angular-oauth2-oidc';
 import { HttpUnauthorizedInterceptor } from 'authentication';
-import { ConfigurationsProviders } from '../../../libs/admin/configuration/src/lib/configuration.providers';
-import { OrganisationEinheitProviders } from '../../../libs/admin/organisationseinheit/src/lib/organisations-einheit.providers';
-import { PostfachProviders } from '../../../libs/admin/postfach/src/lib/postfach.providers';
-import { SettingsProviders } from '../../../libs/admin/settings/src/lib/settings.providers';
+import { ConfigurationsProviders } from 'libs/admin/configuration/src/lib/configuration.providers';
+import { OrganisationEinheitProviders } from 'libs/admin/organisations-einheit/src/lib/organisations-einheit.providers';
+import { PostfachProviders } from 'libs/admin/postfach/src/lib/postfach.providers';
+import { SettingsProviders } from 'libs/admin/settings/src/lib/settings.providers';
+import { UserProviders } from 'libs/admin/user/src/lib/user.providers';
 import { AppComponent } from './app/app.component';
 import { appRoutes } from './app/app.routes';
 import { environment } from './environments/environment';
diff --git a/alfa-client/libs/admin/configuration/.eslintrc.json b/alfa-client/libs/admin/configuration/.eslintrc.json
index b10f9813a8..7474579d58 100644
--- a/alfa-client/libs/admin/configuration/.eslintrc.json
+++ b/alfa-client/libs/admin/configuration/.eslintrc.json
@@ -10,7 +10,7 @@
           "error",
           {
             "type": "attribute",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "camelCase"
           }
         ],
@@ -18,7 +18,7 @@
           "error",
           {
             "type": "element",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "kebab-case"
           }
         ]
diff --git a/alfa-client/libs/admin/configuration/jest.config.ts b/alfa-client/libs/admin/configuration/jest.config.ts
index 31985e8242..7b8ab3df6e 100644
--- a/alfa-client/libs/admin/configuration/jest.config.ts
+++ b/alfa-client/libs/admin/configuration/jest.config.ts
@@ -1,5 +1,5 @@
 export default {
-  displayName: 'configuration',
+  displayName: 'admin-configuration',
   preset: '../../../jest.preset.js',
   setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
   coverageDirectory: '../../../coverage/libs/admin/configuration',
diff --git a/alfa-client/libs/admin/configuration/project.json b/alfa-client/libs/admin/configuration/project.json
index 638cb4c43b..85442c982e 100644
--- a/alfa-client/libs/admin/configuration/project.json
+++ b/alfa-client/libs/admin/configuration/project.json
@@ -1,5 +1,5 @@
 {
-  "name": "configuration",
+  "name": "admin-configuration",
   "$schema": "../../../node_modules/nx/schemas/project-schema.json",
   "sourceRoot": "libs/admin/configuration/src",
   "prefix": "admin",
diff --git a/alfa-client/libs/admin/organisationseinheit/.eslintrc.json b/alfa-client/libs/admin/organisations-einheit-shared/.eslintrc.json
similarity index 91%
rename from alfa-client/libs/admin/organisationseinheit/.eslintrc.json
rename to alfa-client/libs/admin/organisations-einheit-shared/.eslintrc.json
index b10f9813a8..7474579d58 100644
--- a/alfa-client/libs/admin/organisationseinheit/.eslintrc.json
+++ b/alfa-client/libs/admin/organisations-einheit-shared/.eslintrc.json
@@ -10,7 +10,7 @@
           "error",
           {
             "type": "attribute",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "camelCase"
           }
         ],
@@ -18,7 +18,7 @@
           "error",
           {
             "type": "element",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "kebab-case"
           }
         ]
diff --git a/alfa-client/libs/admin/organisations-einheit-shared/README.md b/alfa-client/libs/admin/organisations-einheit-shared/README.md
new file mode 100644
index 0000000000..a5be82c224
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit-shared/README.md
@@ -0,0 +1,7 @@
+# admin-organisations-einheit-shared
+
+This library was generated with [Nx](https://nx.dev).
+
+## Running unit tests
+
+Run `nx test admin-organisations-einheit-shared` to execute the unit tests.
diff --git a/alfa-client/libs/admin/organisations-einheit-shared/jest.config.ts b/alfa-client/libs/admin/organisations-einheit-shared/jest.config.ts
new file mode 100644
index 0000000000..252ea166a7
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit-shared/jest.config.ts
@@ -0,0 +1,21 @@
+export default {
+  displayName: 'admin-organisations-einheit-shared',
+  preset: '../../../jest.preset.js',
+  setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
+  coverageDirectory: '../../../coverage/libs/admin/organisations-einheit-shared',
+  transform: {
+    '^.+\\.(ts|mjs|js|html)$': [
+      'jest-preset-angular',
+      {
+        tsconfig: '<rootDir>/tsconfig.spec.json',
+        stringifyContentPathRegex: '\\.(html|svg)$',
+      },
+    ],
+  },
+  transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
+  snapshotSerializers: [
+    'jest-preset-angular/build/serializers/no-ng-attributes',
+    'jest-preset-angular/build/serializers/ng-snapshot',
+    'jest-preset-angular/build/serializers/html-comment',
+  ],
+};
diff --git a/alfa-client/libs/admin/organisations-einheit-shared/project.json b/alfa-client/libs/admin/organisations-einheit-shared/project.json
new file mode 100644
index 0000000000..62237ee97b
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit-shared/project.json
@@ -0,0 +1,22 @@
+{
+  "name": "admin-organisations-einheit-shared",
+  "$schema": "../../../node_modules/nx/schemas/project-schema.json",
+  "sourceRoot": "libs/admin/organisations-einheit-shared/src",
+  "prefix": "admin",
+  "projectType": "library",
+  "tags": [],
+  "targets": {
+    "test": {
+      "executor": "@nx/jest:jest",
+      "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
+      "options": {
+        "tsConfig": "libs/admin/organisations-einheit-shared/tsconfig.spec.json",
+        "jestConfig": "libs/admin/organisations-einheit-shared/jest.config.ts"
+      }
+    },
+    "lint": {
+      "executor": "@nx/eslint:lint",
+      "outputs": ["{options.outputFile}"]
+    }
+  }
+}
diff --git a/alfa-client/libs/admin/organisations-einheit-shared/src/index.ts b/alfa-client/libs/admin/organisations-einheit-shared/src/index.ts
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/alfa-client/libs/admin/organisationseinheit/src/test-setup.ts b/alfa-client/libs/admin/organisations-einheit-shared/src/test-setup.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/test-setup.ts
rename to alfa-client/libs/admin/organisations-einheit-shared/src/test-setup.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/tsconfig.json b/alfa-client/libs/admin/organisations-einheit-shared/tsconfig.json
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/tsconfig.json
rename to alfa-client/libs/admin/organisations-einheit-shared/tsconfig.json
diff --git a/alfa-client/libs/admin/organisationseinheit/tsconfig.lib.json b/alfa-client/libs/admin/organisations-einheit-shared/tsconfig.lib.json
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/tsconfig.lib.json
rename to alfa-client/libs/admin/organisations-einheit-shared/tsconfig.lib.json
diff --git a/alfa-client/libs/admin/organisationseinheit/tsconfig.spec.json b/alfa-client/libs/admin/organisations-einheit-shared/tsconfig.spec.json
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/tsconfig.spec.json
rename to alfa-client/libs/admin/organisations-einheit-shared/tsconfig.spec.json
diff --git a/alfa-client/libs/admin/organisations-einheit/.eslintrc.json b/alfa-client/libs/admin/organisations-einheit/.eslintrc.json
new file mode 100644
index 0000000000..7474579d58
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit/.eslintrc.json
@@ -0,0 +1,33 @@
+{
+  "extends": ["../../../.eslintrc.json"],
+  "ignorePatterns": ["!**/*"],
+  "overrides": [
+    {
+      "files": ["*.ts"],
+      "extends": ["plugin:@nx/angular", "plugin:@angular-eslint/template/process-inline-templates"],
+      "rules": {
+        "@angular-eslint/directive-selector": [
+          "error",
+          {
+            "type": "attribute",
+            "prefix": "admin",
+            "style": "camelCase"
+          }
+        ],
+        "@angular-eslint/component-selector": [
+          "error",
+          {
+            "type": "element",
+            "prefix": "admin",
+            "style": "kebab-case"
+          }
+        ]
+      }
+    },
+    {
+      "files": ["*.html"],
+      "extends": ["plugin:@nx/angular-template"],
+      "rules": {}
+    }
+  ]
+}
diff --git a/alfa-client/libs/admin/organisationseinheit/README.md b/alfa-client/libs/admin/organisations-einheit/README.md
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/README.md
rename to alfa-client/libs/admin/organisations-einheit/README.md
diff --git a/alfa-client/libs/admin/organisationseinheit/jest.config.ts b/alfa-client/libs/admin/organisations-einheit/jest.config.ts
similarity index 91%
rename from alfa-client/libs/admin/organisationseinheit/jest.config.ts
rename to alfa-client/libs/admin/organisations-einheit/jest.config.ts
index bb7924e912..c01b9ea15a 100644
--- a/alfa-client/libs/admin/organisationseinheit/jest.config.ts
+++ b/alfa-client/libs/admin/organisations-einheit/jest.config.ts
@@ -1,8 +1,8 @@
 export default {
-  displayName: 'organisations-einheit',
+  displayName: 'admin-organisations-einheit',
   preset: '../../../jest.preset.js',
   setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
-  coverageDirectory: '../../../coverage/libs/admin/organisationseinheit',
+  coverageDirectory: '../../../coverage/libs/admin/organisations-einheit',
   transform: {
     '^.+\\.(ts|mjs|js|html)$': [
       'jest-preset-angular',
diff --git a/alfa-client/libs/admin/organisationseinheit/project.json b/alfa-client/libs/admin/organisations-einheit/project.json
similarity index 72%
rename from alfa-client/libs/admin/organisationseinheit/project.json
rename to alfa-client/libs/admin/organisations-einheit/project.json
index cbe704bffa..4701aec648 100644
--- a/alfa-client/libs/admin/organisationseinheit/project.json
+++ b/alfa-client/libs/admin/organisations-einheit/project.json
@@ -1,7 +1,7 @@
 {
-  "name": "organisations-einheit",
+  "name": "admin-organisations-einheit",
   "$schema": "../../../node_modules/nx/schemas/project-schema.json",
-  "sourceRoot": "libs/admin/organisationseinheit/src",
+  "sourceRoot": "libs/admin/organisations-einheit/src",
   "prefix": "admin",
   "projectType": "library",
   "tags": [],
@@ -10,7 +10,7 @@
       "executor": "@nx/jest:jest",
       "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
       "options": {
-        "jestConfig": "libs/admin/organisationseinheit/jest.config.ts",
+        "jestConfig": "libs/admin/organisations-einheit/jest.config.ts",
         "tsConfig": "libs/admin/settings/tsconfig.spec.json"
       }
     },
diff --git a/alfa-client/libs/admin/organisations-einheit/src/index.ts b/alfa-client/libs/admin/organisations-einheit/src/index.ts
new file mode 100644
index 0000000000..7a6a9794f2
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit/src/index.ts
@@ -0,0 +1,3 @@
+export * from './lib/organisations-einheit-container/organisations-einheit-container.component';
+export * from './lib/organisations-einheit-form-container/organisations-einheit-form-container.component';
+export * from './lib/organisations-einheit.service';
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.html b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.html
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.html
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.html
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.spec.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.spec.ts
similarity index 98%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.spec.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.spec.ts
index 9eece78ecb..fd2379e0a3 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.spec.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.spec.ts
@@ -10,8 +10,8 @@ import { of } from 'rxjs';
 import { createAdminOrganisationsEinheitListResource } from '../../../test/organisations-einheit';
 import { AdminOrganisationsEinheitListResource } from '../organisations-einheit.model';
 import { OrganisationsEinheitService } from '../organisationseinheit.service';
+import { OrganisationsEinheitListComponent } from './organisations-einheit-list/organisationseinheit-list.component';
 import { OrganisationsEinheitContainerComponent } from './organisationseinheit-container.component';
-import { OrganisationsEinheitListComponent } from './organisationseinheit-list/organisationseinheit-list.component';
 
 describe('OrganisationsEinheitContainerComponent', () => {
   let component: OrganisationsEinheitContainerComponent;
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.ts
similarity index 84%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.ts
index 97bca14239..1f86137c00 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-container.component.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.ts
@@ -5,12 +5,12 @@ import { Component, OnInit } from '@angular/core';
 import { Observable } from 'rxjs';
 import { OrganisationsEinheitListLinkRel } from '../organisations-einheit.linkrel';
 import { AdminOrganisationsEinheitListResource } from '../organisations-einheit.model';
-import { OrganisationsEinheitService } from '../organisationseinheit.service';
-import { OrganisationsEinheitListComponent } from './organisationseinheit-list/organisationseinheit-list.component';
+import { OrganisationsEinheitService } from '../organisations-einheit.service';
+import { OrganisationsEinheitListComponent } from './organisations-einheit-list/organisations-einheit-list.component';
 
 @Component({
   selector: 'organisations-einheit-container',
-  templateUrl: './organisationseinheit-container.component.html',
+  templateUrl: './organisations-einheit-container.component.html',
   standalone: true,
   imports: [CommonModule, UiModule, OrganisationsEinheitListComponent, TechSharedModule],
 })
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.html
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.html
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.spec.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.ts
similarity index 96%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.ts
index 43b119c603..42ec1f4399 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-list/organisations-einheit-list.component.ts
@@ -7,7 +7,7 @@ import { AdminOrganisationsEinheitResource, AdminOrganisationsEinheitSyncResult
 
 @Component({
   selector: 'organisations-einheit-list',
-  templateUrl: './organisationseinheit-list.component.html',
+  templateUrl: './organisations-einheit-list.component.html',
   standalone: true,
   imports: [CommonModule, ListComponent, ListItemComponent, ExclamationIconComponent, MatTooltip, TechSharedModule],
 })
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.html b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.html
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.html
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.html
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.spec.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.spec.ts
similarity index 98%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.spec.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.spec.ts
index f0b5036640..31ac44c99a 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.spec.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.spec.ts
@@ -8,8 +8,8 @@ import { of } from 'rxjs';
 import { createAdminOrganisationsEinheitResource } from '../../../test/organisations-einheit';
 import { AdminOrganisationsEinheitResource } from '../organisations-einheit.model';
 import { OrganisationsEinheitService } from '../organisationseinheit.service';
+import { OrganisationsEinheitFormComponent } from './organisations-einheit-form/organisationseinheit-form.component';
 import { OrganisationsEinheitFormContainerComponent } from './organisationseinheit-form-container.component';
-import { OrganisationsEinheitFormComponent } from './organisationseinheit-form/organisationseinheit-form.component';
 
 describe('OrganisationsEinheitFormContainerComponent', () => {
   let component: OrganisationsEinheitFormContainerComponent;
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.ts
similarity index 84%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.ts
index 36cd70a2f2..47296f587d 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form-container.component.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form-container.component.ts
@@ -5,12 +5,12 @@ import { Component, OnInit } from '@angular/core';
 import { Observable } from 'rxjs';
 import { OrganisationsEinheitListLinkRel } from '../organisations-einheit.linkrel';
 import { AdminOrganisationsEinheitResource } from '../organisations-einheit.model';
-import { OrganisationsEinheitService } from '../organisationseinheit.service';
-import { OrganisationsEinheitFormComponent } from './organisationseinheit-form/organisationseinheit-form.component';
+import { OrganisationsEinheitService } from '../organisations-einheit.service';
+import { OrganisationsEinheitFormComponent } from './organisations-einheit-form/organisations-einheit-form.component';
 
 @Component({
   selector: 'organisations-einheit-form-container',
-  templateUrl: './organisationseinheit-form-container.component.html',
+  templateUrl: './organisations-einheit-form-container.component.html',
   standalone: true,
   imports: [CommonModule, UiModule, OrganisationsEinheitFormComponent],
 })
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.html b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.html
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.html
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.html
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.spec.ts
similarity index 98%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.spec.ts
index b3915bf836..6d250e1060 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.spec.ts
@@ -10,8 +10,8 @@ import { of } from 'rxjs';
 import { createAdminOrganisationsEinheitResource } from '../../../../test/organisations-einheit';
 import { AdminOrganisationsEinheitResource } from '../../organisations-einheit.model';
 import { OrganisationsEinheitService } from '../../organisationseinheit.service';
+import { OrganisationsEinheitSignaturComponent } from './organisations-einheit-signatur/organisationseinheit-signatur.component';
 import { OrganisationsEinheitFormComponent } from './organisationseinheit-form.component';
-import { OrganisationsEinheitSignaturComponent } from './organisationseinheit-signatur/organisationseinheit-signatur.component';
 import { OrganisationsEinheitFormService } from './organisationseinheit.formservice';
 
 describe('OrganisationsEinheitFormComponent', () => {
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.ts
similarity index 91%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.ts
index 6c19d78235..96b124c6fe 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-form.component.ts
@@ -6,12 +6,12 @@ import { Resource } from '@ngxp/rest';
 import { ButtonWithSpinnerComponent } from '@ods/component';
 import { Observable, of } from 'rxjs';
 import { AdminOrganisationsEinheitResource } from '../../organisations-einheit.model';
-import { OrganisationsEinheitSignaturComponent } from './organisationseinheit-signatur/organisationseinheit-signatur.component';
-import { OrganisationsEinheitFormService } from './organisationseinheit.formservice';
+import { OrganisationsEinheitSignaturComponent } from './organisations-einheit-signatur/organisations-einheit-signatur.component';
+import { OrganisationsEinheitFormService } from './organisations-einheit.formservice';
 
 @Component({
   selector: 'organisations-einheit-form',
-  templateUrl: './organisationseinheit-form.component.html',
+  templateUrl: './organisations-einheit-form.component.html',
   providers: [OrganisationsEinheitFormService],
   standalone: true,
   imports: [CommonModule, FormsModule, ReactiveFormsModule, OrganisationsEinheitSignaturComponent, ButtonWithSpinnerComponent],
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.html b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.html
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.html
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.html
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.spec.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.spec.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.spec.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.ts
similarity index 86%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.ts
index bf01f6d472..2287f5440c 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit-signatur/organisations-einheit-signatur.component.ts
@@ -1,11 +1,11 @@
 import { Component } from '@angular/core';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 import { TextareaEditorComponent } from '@ods/component';
-import { OrganisationsEinheitFormService } from '../organisationseinheit.formservice';
+import { OrganisationsEinheitFormService } from '../organisations-einheit.formservice';
 
 @Component({
   selector: 'organisations-einheit-signatur',
-  templateUrl: './organisationseinheit-signatur.component.html',
+  templateUrl: './organisations-einheit-signatur.component.html',
   standalone: true,
   imports: [FormsModule, ReactiveFormsModule, TextareaEditorComponent],
 })
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit.formservice.spec.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit.formservice.spec.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit.formservice.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit.formservice.ts
similarity index 98%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit.formservice.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit.formservice.ts
index 7a73630a60..335663d800 100644
--- a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit.formservice.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-form-container/organisations-einheit-form/organisations-einheit.formservice.ts
@@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
 import { FormControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
 import { Observable } from 'rxjs';
 import { AdminOrganisationsEinheitResource } from '../../organisations-einheit.model';
-import { OrganisationsEinheitService } from '../../organisationseinheit.service';
+import { OrganisationsEinheitService } from '../../organisations-einheit.service';
 
 @Injectable()
 export class OrganisationsEinheitFormService extends AbstractFormService {
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit-list-resource.service.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-list-resource.service.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit-list-resource.service.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-list-resource.service.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit-resource.service.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-resource.service.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit-resource.service.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-resource.service.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit.linkrel.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.linkrel.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit.linkrel.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.linkrel.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit.model.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.model.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit.model.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.model.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit.providers.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.providers.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisations-einheit.providers.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.providers.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit.service.spec.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.service.spec.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit.service.spec.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.service.spec.ts
diff --git a/alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit.service.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.service.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/src/lib/organisationseinheit.service.ts
rename to alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit.service.ts
diff --git a/alfa-client/libs/admin/organisations-einheit/src/test-setup.ts b/alfa-client/libs/admin/organisations-einheit/src/test-setup.ts
new file mode 100644
index 0000000000..c408668266
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit/src/test-setup.ts
@@ -0,0 +1,12 @@
+import '@testing-library/jest-dom';
+import 'jest-preset-angular/setup-jest';
+
+import { getTestBed } from '@angular/core/testing';
+import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
+
+getTestBed().resetTestEnvironment();
+getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), {
+  teardown: { destroyAfterEach: false },
+  errorOnUnknownProperties: true,
+  errorOnUnknownElements: true,
+});
diff --git a/alfa-client/libs/admin/organisationseinheit/test/organisations-einheit.ts b/alfa-client/libs/admin/organisations-einheit/test/organisations-einheit.ts
similarity index 100%
rename from alfa-client/libs/admin/organisationseinheit/test/organisations-einheit.ts
rename to alfa-client/libs/admin/organisations-einheit/test/organisations-einheit.ts
diff --git a/alfa-client/libs/admin/organisations-einheit/tsconfig.json b/alfa-client/libs/admin/organisations-einheit/tsconfig.json
new file mode 100644
index 0000000000..8ca9ad312c
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit/tsconfig.json
@@ -0,0 +1,16 @@
+{
+  "extends": "../../../tsconfig.base.json",
+  "files": [],
+  "include": [],
+  "references": [
+    {
+      "path": "./tsconfig.lib.json"
+    },
+    {
+      "path": "./tsconfig.spec.json"
+    }
+  ],
+  "compilerOptions": {
+    "target": "es2022"
+  }
+}
diff --git a/alfa-client/libs/admin/organisations-einheit/tsconfig.lib.json b/alfa-client/libs/admin/organisations-einheit/tsconfig.lib.json
new file mode 100644
index 0000000000..8441346f6e
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit/tsconfig.lib.json
@@ -0,0 +1,12 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../../dist/out-tsc",
+    "declaration": true,
+    "declarationMap": true,
+    "inlineSources": true,
+    "types": []
+  },
+  "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "jest.config.ts", "src/**/*.test.ts"],
+  "include": ["src/**/*.ts"]
+}
diff --git a/alfa-client/libs/admin/organisations-einheit/tsconfig.spec.json b/alfa-client/libs/admin/organisations-einheit/tsconfig.spec.json
new file mode 100644
index 0000000000..723782fbd3
--- /dev/null
+++ b/alfa-client/libs/admin/organisations-einheit/tsconfig.spec.json
@@ -0,0 +1,12 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../../dist/out-tsc",
+    "module": "commonjs",
+    "types": ["jest", "node"],
+    "target": "ES2022",
+    "useDefineForClassFields": false
+  },
+  "files": ["src/test-setup.ts"],
+  "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+}
diff --git a/alfa-client/libs/admin/organisationseinheit/src/index.ts b/alfa-client/libs/admin/organisationseinheit/src/index.ts
deleted file mode 100644
index dbee0e0e6a..0000000000
--- a/alfa-client/libs/admin/organisationseinheit/src/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from './lib/organisationseinheit-container/organisationseinheit-container.component';
-export * from './lib/organisationseinheit-form-container/organisationseinheit-form-container.component';
-export * from './lib/organisationseinheit.service';
diff --git a/alfa-client/libs/admin/postfach-shared/.eslintrc.json b/alfa-client/libs/admin/postfach-shared/.eslintrc.json
new file mode 100644
index 0000000000..7474579d58
--- /dev/null
+++ b/alfa-client/libs/admin/postfach-shared/.eslintrc.json
@@ -0,0 +1,33 @@
+{
+  "extends": ["../../../.eslintrc.json"],
+  "ignorePatterns": ["!**/*"],
+  "overrides": [
+    {
+      "files": ["*.ts"],
+      "extends": ["plugin:@nx/angular", "plugin:@angular-eslint/template/process-inline-templates"],
+      "rules": {
+        "@angular-eslint/directive-selector": [
+          "error",
+          {
+            "type": "attribute",
+            "prefix": "admin",
+            "style": "camelCase"
+          }
+        ],
+        "@angular-eslint/component-selector": [
+          "error",
+          {
+            "type": "element",
+            "prefix": "admin",
+            "style": "kebab-case"
+          }
+        ]
+      }
+    },
+    {
+      "files": ["*.html"],
+      "extends": ["plugin:@nx/angular-template"],
+      "rules": {}
+    }
+  ]
+}
diff --git a/alfa-client/libs/admin/postfach-shared/README.md b/alfa-client/libs/admin/postfach-shared/README.md
new file mode 100644
index 0000000000..874583d490
--- /dev/null
+++ b/alfa-client/libs/admin/postfach-shared/README.md
@@ -0,0 +1,7 @@
+# admin-postfach-shared
+
+This library was generated with [Nx](https://nx.dev).
+
+## Running unit tests
+
+Run `nx test admin-postfach-shared` to execute the unit tests.
diff --git a/alfa-client/libs/admin/postfach-shared/jest.config.ts b/alfa-client/libs/admin/postfach-shared/jest.config.ts
new file mode 100644
index 0000000000..b2e0769499
--- /dev/null
+++ b/alfa-client/libs/admin/postfach-shared/jest.config.ts
@@ -0,0 +1,21 @@
+export default {
+  displayName: 'admin-postfach-shared',
+  preset: '../../../jest.preset.js',
+  setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
+  coverageDirectory: '../../../coverage/libs/admin/postfach-shared',
+  transform: {
+    '^.+\\.(ts|mjs|js|html)$': [
+      'jest-preset-angular',
+      {
+        tsconfig: '<rootDir>/tsconfig.spec.json',
+        stringifyContentPathRegex: '\\.(html|svg)$',
+      },
+    ],
+  },
+  transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
+  snapshotSerializers: [
+    'jest-preset-angular/build/serializers/no-ng-attributes',
+    'jest-preset-angular/build/serializers/ng-snapshot',
+    'jest-preset-angular/build/serializers/html-comment',
+  ],
+};
diff --git a/alfa-client/libs/admin/postfach-shared/project.json b/alfa-client/libs/admin/postfach-shared/project.json
new file mode 100644
index 0000000000..155cbb90bb
--- /dev/null
+++ b/alfa-client/libs/admin/postfach-shared/project.json
@@ -0,0 +1,22 @@
+{
+  "name": "admin-postfach-shared",
+  "$schema": "../../../node_modules/nx/schemas/project-schema.json",
+  "sourceRoot": "libs/admin/postfach-shared/src",
+  "prefix": "admin",
+  "projectType": "library",
+  "tags": [],
+  "targets": {
+    "test": {
+      "executor": "@nx/jest:jest",
+      "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
+      "options": {
+        "tsConfig": "libs/admin/user/tsconfig.spec.json",
+        "jestConfig": "libs/admin/postfach-shared/jest.config.ts"
+      }
+    },
+    "lint": {
+      "executor": "@nx/eslint:lint",
+      "outputs": ["{options.outputFile}"]
+    }
+  }
+}
diff --git a/alfa-client/libs/admin/postfach-shared/src/index.ts b/alfa-client/libs/admin/postfach-shared/src/index.ts
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/alfa-client/libs/admin/postfach-shared/src/test-setup.ts b/alfa-client/libs/admin/postfach-shared/src/test-setup.ts
new file mode 100644
index 0000000000..c408668266
--- /dev/null
+++ b/alfa-client/libs/admin/postfach-shared/src/test-setup.ts
@@ -0,0 +1,12 @@
+import '@testing-library/jest-dom';
+import 'jest-preset-angular/setup-jest';
+
+import { getTestBed } from '@angular/core/testing';
+import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
+
+getTestBed().resetTestEnvironment();
+getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), {
+  teardown: { destroyAfterEach: false },
+  errorOnUnknownProperties: true,
+  errorOnUnknownElements: true,
+});
diff --git a/alfa-client/libs/admin/postfach-shared/tsconfig.json b/alfa-client/libs/admin/postfach-shared/tsconfig.json
new file mode 100644
index 0000000000..8ca9ad312c
--- /dev/null
+++ b/alfa-client/libs/admin/postfach-shared/tsconfig.json
@@ -0,0 +1,16 @@
+{
+  "extends": "../../../tsconfig.base.json",
+  "files": [],
+  "include": [],
+  "references": [
+    {
+      "path": "./tsconfig.lib.json"
+    },
+    {
+      "path": "./tsconfig.spec.json"
+    }
+  ],
+  "compilerOptions": {
+    "target": "es2022"
+  }
+}
diff --git a/alfa-client/libs/admin/postfach-shared/tsconfig.lib.json b/alfa-client/libs/admin/postfach-shared/tsconfig.lib.json
new file mode 100644
index 0000000000..8441346f6e
--- /dev/null
+++ b/alfa-client/libs/admin/postfach-shared/tsconfig.lib.json
@@ -0,0 +1,12 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../../dist/out-tsc",
+    "declaration": true,
+    "declarationMap": true,
+    "inlineSources": true,
+    "types": []
+  },
+  "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "jest.config.ts", "src/**/*.test.ts"],
+  "include": ["src/**/*.ts"]
+}
diff --git a/alfa-client/libs/admin/postfach-shared/tsconfig.spec.json b/alfa-client/libs/admin/postfach-shared/tsconfig.spec.json
new file mode 100644
index 0000000000..723782fbd3
--- /dev/null
+++ b/alfa-client/libs/admin/postfach-shared/tsconfig.spec.json
@@ -0,0 +1,12 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../../dist/out-tsc",
+    "module": "commonjs",
+    "types": ["jest", "node"],
+    "target": "ES2022",
+    "useDefineForClassFields": false
+  },
+  "files": ["src/test-setup.ts"],
+  "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+}
diff --git a/alfa-client/libs/admin/postfach/.eslintrc.json b/alfa-client/libs/admin/postfach/.eslintrc.json
index b10f9813a8..7474579d58 100644
--- a/alfa-client/libs/admin/postfach/.eslintrc.json
+++ b/alfa-client/libs/admin/postfach/.eslintrc.json
@@ -10,7 +10,7 @@
           "error",
           {
             "type": "attribute",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "camelCase"
           }
         ],
@@ -18,7 +18,7 @@
           "error",
           {
             "type": "element",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "kebab-case"
           }
         ]
diff --git a/alfa-client/libs/admin/postfach/jest.config.ts b/alfa-client/libs/admin/postfach/jest.config.ts
index dc57cca42c..1756408867 100644
--- a/alfa-client/libs/admin/postfach/jest.config.ts
+++ b/alfa-client/libs/admin/postfach/jest.config.ts
@@ -1,5 +1,5 @@
 export default {
-  displayName: 'postfach',
+  displayName: 'admin-postfach',
   preset: '../../../jest.preset.js',
   setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
   coverageDirectory: '../../../coverage/libs/admin/postfach',
diff --git a/alfa-client/libs/admin/postfach/project.json b/alfa-client/libs/admin/postfach/project.json
index 4ceafb1b08..f50acee3ba 100644
--- a/alfa-client/libs/admin/postfach/project.json
+++ b/alfa-client/libs/admin/postfach/project.json
@@ -1,5 +1,5 @@
 {
-  "name": "postfach",
+  "name": "admin-postfach",
   "$schema": "../../../node_modules/nx/schemas/project-schema.json",
   "sourceRoot": "libs/admin/postfach/src",
   "prefix": "admin",
diff --git a/alfa-client/libs/admin/settings/.eslintrc.json b/alfa-client/libs/admin/settings/.eslintrc.json
index b10f9813a8..7474579d58 100644
--- a/alfa-client/libs/admin/settings/.eslintrc.json
+++ b/alfa-client/libs/admin/settings/.eslintrc.json
@@ -10,7 +10,7 @@
           "error",
           {
             "type": "attribute",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "camelCase"
           }
         ],
@@ -18,7 +18,7 @@
           "error",
           {
             "type": "element",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "kebab-case"
           }
         ]
diff --git a/alfa-client/libs/admin/settings/jest.config.ts b/alfa-client/libs/admin/settings/jest.config.ts
index df8618e878..a18cd0593e 100644
--- a/alfa-client/libs/admin/settings/jest.config.ts
+++ b/alfa-client/libs/admin/settings/jest.config.ts
@@ -1,5 +1,5 @@
 export default {
-  displayName: 'settings',
+  displayName: 'admin-settings',
   preset: '../../../jest.preset.js',
   setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
   globals: {},
diff --git a/alfa-client/libs/admin/settings/project.json b/alfa-client/libs/admin/settings/project.json
index 137c80b918..2749cb93e4 100644
--- a/alfa-client/libs/admin/settings/project.json
+++ b/alfa-client/libs/admin/settings/project.json
@@ -1,5 +1,5 @@
 {
-  "name": "settings",
+  "name": "admin-settings",
   "$schema": "../../../node_modules/nx/schemas/project-schema.json",
   "sourceRoot": "libs/admin/settings/src",
   "projectType": "library",
diff --git a/alfa-client/libs/admin/shared/.eslintrc.json b/alfa-client/libs/admin/shared/.eslintrc.json
index b10f9813a8..7474579d58 100644
--- a/alfa-client/libs/admin/shared/.eslintrc.json
+++ b/alfa-client/libs/admin/shared/.eslintrc.json
@@ -10,7 +10,7 @@
           "error",
           {
             "type": "attribute",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "camelCase"
           }
         ],
@@ -18,7 +18,7 @@
           "error",
           {
             "type": "element",
-            "prefix": "lib",
+            "prefix": "admin",
             "style": "kebab-case"
           }
         ]
diff --git a/alfa-client/libs/admin/shared/project.json b/alfa-client/libs/admin/shared/project.json
index c7f727c3ee..a2e9e40a7e 100644
--- a/alfa-client/libs/admin/shared/project.json
+++ b/alfa-client/libs/admin/shared/project.json
@@ -1,5 +1,5 @@
 {
-  "name": "shared",
+  "name": "admin-shared",
   "$schema": "../../../node_modules/nx/schemas/project-schema.json",
   "sourceRoot": "libs/admin/shared/src",
   "projectType": "library",
diff --git a/alfa-client/libs/admin/user-shared/.eslintrc.json b/alfa-client/libs/admin/user-shared/.eslintrc.json
new file mode 100644
index 0000000000..7474579d58
--- /dev/null
+++ b/alfa-client/libs/admin/user-shared/.eslintrc.json
@@ -0,0 +1,33 @@
+{
+  "extends": ["../../../.eslintrc.json"],
+  "ignorePatterns": ["!**/*"],
+  "overrides": [
+    {
+      "files": ["*.ts"],
+      "extends": ["plugin:@nx/angular", "plugin:@angular-eslint/template/process-inline-templates"],
+      "rules": {
+        "@angular-eslint/directive-selector": [
+          "error",
+          {
+            "type": "attribute",
+            "prefix": "admin",
+            "style": "camelCase"
+          }
+        ],
+        "@angular-eslint/component-selector": [
+          "error",
+          {
+            "type": "element",
+            "prefix": "admin",
+            "style": "kebab-case"
+          }
+        ]
+      }
+    },
+    {
+      "files": ["*.html"],
+      "extends": ["plugin:@nx/angular-template"],
+      "rules": {}
+    }
+  ]
+}
diff --git a/alfa-client/libs/admin/user-shared/README.md b/alfa-client/libs/admin/user-shared/README.md
new file mode 100644
index 0000000000..b62dcee762
--- /dev/null
+++ b/alfa-client/libs/admin/user-shared/README.md
@@ -0,0 +1,7 @@
+# admin-user-shared
+
+This library was generated with [Nx](https://nx.dev).
+
+## Running unit tests
+
+Run `nx test admin-user-shared` to execute the unit tests.
diff --git a/alfa-client/libs/admin/user-shared/jest.config.ts b/alfa-client/libs/admin/user-shared/jest.config.ts
new file mode 100644
index 0000000000..b77cdd47e2
--- /dev/null
+++ b/alfa-client/libs/admin/user-shared/jest.config.ts
@@ -0,0 +1,21 @@
+export default {
+  displayName: 'admin-user-shared',
+  preset: '../../../jest.preset.js',
+  setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
+  coverageDirectory: '../../../coverage/libs/admin/user-shared',
+  transform: {
+    '^.+\\.(ts|mjs|js|html)$': [
+      'jest-preset-angular',
+      {
+        tsconfig: '<rootDir>/tsconfig.spec.json',
+        stringifyContentPathRegex: '\\.(html|svg)$',
+      },
+    ],
+  },
+  transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
+  snapshotSerializers: [
+    'jest-preset-angular/build/serializers/no-ng-attributes',
+    'jest-preset-angular/build/serializers/ng-snapshot',
+    'jest-preset-angular/build/serializers/html-comment',
+  ],
+};
diff --git a/alfa-client/libs/admin/user-shared/project.json b/alfa-client/libs/admin/user-shared/project.json
new file mode 100644
index 0000000000..ce22e56225
--- /dev/null
+++ b/alfa-client/libs/admin/user-shared/project.json
@@ -0,0 +1,22 @@
+{
+  "name": "admin-user-shared",
+  "$schema": "../../../node_modules/nx/schemas/project-schema.json",
+  "sourceRoot": "libs/admin/user-shared/src",
+  "prefix": "admin",
+  "projectType": "library",
+  "tags": [],
+  "targets": {
+    "test": {
+      "executor": "@nx/jest:jest",
+      "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
+      "options": {
+        "jestConfig": "libs/admin/user-shared/jest.config.ts",
+        "tsConfig": "libs/admin/user/tsconfig.spec.json"
+      }
+    },
+    "lint": {
+      "executor": "@nx/eslint:lint",
+      "outputs": ["{options.outputFile}"]
+    }
+  }
+}
diff --git a/alfa-client/libs/admin/user-shared/src/index.ts b/alfa-client/libs/admin/user-shared/src/index.ts
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/alfa-client/libs/admin/user-shared/src/test-setup.ts b/alfa-client/libs/admin/user-shared/src/test-setup.ts
new file mode 100644
index 0000000000..c408668266
--- /dev/null
+++ b/alfa-client/libs/admin/user-shared/src/test-setup.ts
@@ -0,0 +1,12 @@
+import '@testing-library/jest-dom';
+import 'jest-preset-angular/setup-jest';
+
+import { getTestBed } from '@angular/core/testing';
+import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
+
+getTestBed().resetTestEnvironment();
+getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), {
+  teardown: { destroyAfterEach: false },
+  errorOnUnknownProperties: true,
+  errorOnUnknownElements: true,
+});
diff --git a/alfa-client/libs/admin/user-shared/tsconfig.json b/alfa-client/libs/admin/user-shared/tsconfig.json
new file mode 100644
index 0000000000..8ca9ad312c
--- /dev/null
+++ b/alfa-client/libs/admin/user-shared/tsconfig.json
@@ -0,0 +1,16 @@
+{
+  "extends": "../../../tsconfig.base.json",
+  "files": [],
+  "include": [],
+  "references": [
+    {
+      "path": "./tsconfig.lib.json"
+    },
+    {
+      "path": "./tsconfig.spec.json"
+    }
+  ],
+  "compilerOptions": {
+    "target": "es2022"
+  }
+}
diff --git a/alfa-client/libs/admin/user-shared/tsconfig.lib.json b/alfa-client/libs/admin/user-shared/tsconfig.lib.json
new file mode 100644
index 0000000000..8441346f6e
--- /dev/null
+++ b/alfa-client/libs/admin/user-shared/tsconfig.lib.json
@@ -0,0 +1,12 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../../dist/out-tsc",
+    "declaration": true,
+    "declarationMap": true,
+    "inlineSources": true,
+    "types": []
+  },
+  "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "jest.config.ts", "src/**/*.test.ts"],
+  "include": ["src/**/*.ts"]
+}
diff --git a/alfa-client/libs/admin/user-shared/tsconfig.spec.json b/alfa-client/libs/admin/user-shared/tsconfig.spec.json
new file mode 100644
index 0000000000..723782fbd3
--- /dev/null
+++ b/alfa-client/libs/admin/user-shared/tsconfig.spec.json
@@ -0,0 +1,12 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../../../dist/out-tsc",
+    "module": "commonjs",
+    "types": ["jest", "node"],
+    "target": "ES2022",
+    "useDefineForClassFields": false
+  },
+  "files": ["src/test-setup.ts"],
+  "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+}
diff --git a/alfa-client/libs/admin/user/.eslintrc.json b/alfa-client/libs/admin/user/.eslintrc.json
index 944f1f5a62..fde86a84dd 100644
--- a/alfa-client/libs/admin/user/.eslintrc.json
+++ b/alfa-client/libs/admin/user/.eslintrc.json
@@ -10,7 +10,7 @@
           "error",
           {
             "type": "attribute",
-            "prefix": "alfa",
+            "prefix": "admin",
             "style": "camelCase"
           }
         ],
@@ -18,7 +18,7 @@
           "error",
           {
             "type": "element",
-            "prefix": "alfa",
+            "prefix": "admin",
             "style": "kebab-case"
           }
         ]
diff --git a/alfa-client/libs/admin/user/jest.config.ts b/alfa-client/libs/admin/user/jest.config.ts
index 4bb4f26845..f3d44acd57 100644
--- a/alfa-client/libs/admin/user/jest.config.ts
+++ b/alfa-client/libs/admin/user/jest.config.ts
@@ -1,6 +1,6 @@
 const esModules = ['@keycloak/keycloak-admin-client', 'url-join', 'url-template', 'camelize-ts'];
 export default {
-  displayName: 'user',
+  displayName: 'admin-user',
   preset: '../../../jest.preset.js',
   setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
   coverageDirectory: '../../../coverage/libs/admin/user',
diff --git a/alfa-client/libs/admin/user/project.json b/alfa-client/libs/admin/user/project.json
index 206b050ef3..000d7263a9 100644
--- a/alfa-client/libs/admin/user/project.json
+++ b/alfa-client/libs/admin/user/project.json
@@ -1,5 +1,5 @@
 {
-  "name": "user",
+  "name": "admin-user",
   "$schema": "../../../node_modules/nx/schemas/project-schema.json",
   "sourceRoot": "libs/admin/user/src",
   "prefix": "admin",
diff --git a/alfa-client/libs/admin/user/src/index.ts b/alfa-client/libs/admin/user/src/index.ts
index bd715f031e..756b163e45 100644
--- a/alfa-client/libs/admin/user/src/index.ts
+++ b/alfa-client/libs/admin/user/src/index.ts
@@ -1,3 +1,2 @@
-export * from './lib/user.providers';
 export * from './lib/users-roles/user-add-form/user-add-form.component';
 export * from './lib/users-roles/users-roles.component';
diff --git a/alfa-client/tsconfig.base.json b/alfa-client/tsconfig.base.json
index 308049fd9d..8b3c4baf60 100644
--- a/alfa-client/tsconfig.base.json
+++ b/alfa-client/tsconfig.base.json
@@ -17,7 +17,7 @@
     "baseUrl": ".",
     "paths": {
       "@admin-client/configuration": ["libs/admin/configuration/src/index.ts"],
-      "@admin-client/organisations-einheit": ["libs/admin/organisationseinheit/src/index.ts"],
+      "@admin-client/organisations-einheit": ["libs/admin/organisations-einheit/src/index.ts"],
       "@admin-client/postfach": ["libs/admin/postfach/src/index.ts"],
       "@admin-client/settings": ["libs/admin/settings/src/index.ts"],
       "@admin-client/shared": ["libs/admin/shared/src/index.ts"],
@@ -67,6 +67,9 @@
       "@alfa-client/zustaendige-stelle-shared": ["libs/zustaendige-stelle-shared/src/index.ts"],
       "@ods/component": ["libs/design-component/src/index.ts"],
       "@ods/system": ["libs/design-system/src/index.ts"],
+      "admin/organisations-einheit-shared": ["libs/admin/organisations-einheit-shared/src/index.ts"],
+      "admin/postfach-shared": ["libs/admin/postfach-shared/src/index.ts"],
+      "admin/user-shared": ["libs/admin/user-shared/src/index.ts"],
       "authentication": ["libs/authentication/src/index.ts"]
     }
   },
-- 
GitLab