diff --git a/src/app/features/admin/admin-routing.module.ts b/src/app/features/admin/admin-routing.module.ts
index a32d10e0b6b094ae67629d8131b83dd1105867dc..897de4eb03c2827b63a39600b6a55d8a7001623d 100644
--- a/src/app/features/admin/admin-routing.module.ts
+++ b/src/app/features/admin/admin-routing.module.ts
@@ -18,9 +18,12 @@ import {AdminSubmissionPolicyDetailRoutable} from "@app/features/admin/component
 import {AdminSubmissionPolicyEditRoutable} from "@app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable";
 import {AdminSubmissionPolicyListRoutable} from "@app/features/admin/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable";
 import {AdminRoutesEnum, AppRoutesEnum} from "@app/shared/enums/routes.enum";
+import {AdminInstitutionListRoutable} from "@app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component";
+import {AdminInstitutionCreateRoutable} from "@app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable";
+import {AdminInstitutionEditRoutable} from "@app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable";
+import {AdminInstitutionDetailRoutable} from "@app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable";
 import {TRANSLATE} from "solidify-frontend";
 
-
 const routes: Routes = [
   {
     path: AppRoutesEnum.root,
@@ -141,6 +144,34 @@ const routes: Routes = [
       breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.create"),
     },
   },
+  {
+    path: AdminRoutesEnum.institution,
+    component: AdminInstitutionListRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.institution.list"),
+    },
+  },
+  {
+    path: AdminRoutesEnum.institution + AppRoutesEnum.separator + AdminRoutesEnum.institutionDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminInstitutionDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.institution.detail"),
+    },
+  },
+  {
+    path: AdminRoutesEnum.institution + AppRoutesEnum.separator + AdminRoutesEnum.institutionCreate,
+    component: AdminInstitutionCreateRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.institution.create"),
+    },
+  },
+  {
+    path: AdminRoutesEnum.institution + AppRoutesEnum.separator + AdminRoutesEnum.institutionEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminInstitutionEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.institution.edit"),
+    },
+  },
 ];
 
 @NgModule({
diff --git a/src/app/features/admin/admin.module.ts b/src/app/features/admin/admin.module.ts
index 59fc3a9bffbc90042125edb544cb9304e9692011..28c48678309e8ad565369e867c23c85d5d5362ad 100644
--- a/src/app/features/admin/admin.module.ts
+++ b/src/app/features/admin/admin.module.ts
@@ -1,14 +1,20 @@
 import {NgModule} from "@angular/core";
 import {AdminRoutingModule} from "@app/features/admin/admin-routing.module";
+import {AdminInstitutionDeleteDialog} from "@app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog";
 import {AdminLicenseDeleteDialog} from "@app/features/admin/components/dialogs/admin-license-delete/admin-license-delete.dialog";
 import {AdminOrgunitDeleteDialog} from "@app/features/admin/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog";
 import {AdminPreservationPolicyDeleteDialog} from "@app/features/admin/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog";
 import {AdminSubmissionPolicyDeleteDialog} from "@app/features/admin/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog";
+import {AdminInstitutionFormPresentational} from "@app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational";
 import {AdminLicenseFormPresentational} from "@app/features/admin/components/presentationals/admin-license-form/admin-license-form.presentational";
 import {AdminOrgunitFormPresentational} from "@app/features/admin/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational";
 import {AdminPreservationPolicyFormPresentational} from "@app/features/admin/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational";
 import {AdminSubmissionPolicyFormPresentational} from "@app/features/admin/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational";
 import {AdminHomeRoutable} from "@app/features/admin/components/routables/admin-home/admin-home.routable";
+import {AdminInstitutionCreateRoutable} from "@app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable";
+import {AdminInstitutionDetailRoutable} from "@app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable";
+import {AdminInstitutionEditRoutable} from "@app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable";
+import {AdminInstitutionListRoutable} from "@app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component";
 import {AdminLicenseCreateRoutable} from "@app/features/admin/components/routables/admin-license-create/admin-license-create.routable";
 import {AdminLicenseDetailRoutable} from "@app/features/admin/components/routables/admin-license-detail/admin-license-detail.routable";
 import {AdminLicenseEditRoutable} from "@app/features/admin/components/routables/admin-license-edit/admin-license-edit.routable";
@@ -25,6 +31,7 @@ import {AdminSubmissionPolicyCreateRoutable} from "@app/features/admin/component
 import {AdminSubmissionPolicyDetailRoutable} from "@app/features/admin/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable";
 import {AdminSubmissionPolicyEditRoutable} from "@app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable";
 import {AdminState} from "@app/features/admin/stores/admin.state";
+import {AdminInstitutionState} from "@app/features/admin/stores/institution/admin-institution.state";
 import {AdminLicenseState} from "@app/features/admin/stores/license/admin-license.state";
 import {AdminOrganizationalUnitState} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.state";
 import {AdminOrganizationalUnitSubmissionPolicyState} from "@app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.state";
@@ -49,6 +56,10 @@ const routables = [
   AdminLicenseDetailRoutable,
   AdminLicenseEditRoutable,
   AdminLicenseListRoutable,
+  AdminInstitutionListRoutable,
+  AdminInstitutionDetailRoutable,
+  AdminInstitutionEditRoutable,
+  AdminInstitutionCreateRoutable,
   AdminOrgunitDetailRoutable,
   AdminOrgunitListRoutable,
   AdminOrgunitCreateRoutable,
@@ -60,12 +71,14 @@ const dialogs = [
   AdminLicenseDeleteDialog,
   AdminPreservationPolicyDeleteDialog,
   AdminOrgunitDeleteDialog,
+  AdminInstitutionDeleteDialog,
 ];
 const presentationals = [
   AdminSubmissionPolicyFormPresentational,
   AdminLicenseFormPresentational,
   AdminPreservationPolicyFormPresentational,
   AdminOrgunitFormPresentational,
+  AdminInstitutionFormPresentational,
 ];
 
 @NgModule({
@@ -84,6 +97,7 @@ const presentationals = [
       AdminSubmissionPolicyState,
       AdminPreservationPolicyState,
       AdminLicenseState,
+      AdminInstitutionState,
       AdminOrganizationalUnitState,
       AdminOrganizationalUnitSubmissionPolicyState,
     ]),
diff --git a/src/app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts b/src/app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts
new file mode 100644
index 0000000000000000000000000000000000000000..711bc66f0f61f1fd855ec1191081e741f272f3e6
--- /dev/null
+++ b/src/app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts
@@ -0,0 +1,29 @@
+import {ChangeDetectionStrategy, Component, Inject} from "@angular/core";
+import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material";
+import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
+import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
+import {Institutions} from "@app/generated-api";
+import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
+import {Store} from "@ngxs/store";
+import {TRANSLATE} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-institution-delete-dialog",
+  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminInstitutionDeleteDialog extends SharedAbstractDeleteDialog<Institutions, AdminInstitutionStateModel> {
+  public readonly KEY_TITLE: string = TRANSLATE("admin.institution.dialog.delete.title");
+  public readonly KEY_MESSAGE: string = TRANSLATE("admin.institution.dialog.delete.message");
+  public readonly KEY_CONFIRM_BUTTON: string = TRANSLATE("admin.institution.dialog.delete.confirm");
+  public readonly KEY_CANCEL_BUTTON: string = TRANSLATE("admin.institution.dialog.delete.cancel");
+
+  constructor(protected store: Store,
+              protected dialogRef: MatDialogRef<AdminInstitutionDeleteDialog>,
+              @Inject(MAT_DIALOG_DATA) public data: DeleteDialog) {
+    super(store, dialogRef, data, LocalStateEnum.admin_institution, adminInstitutionActionNameSpace);
+  }
+}
diff --git a/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.html b/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.html
new file mode 100644
index 0000000000000000000000000000000000000000..05a96f35415acecc9da1464d5b670fe3a4df1db6
--- /dev/null
+++ b/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.html
@@ -0,0 +1,39 @@
+<form [formGroup]="form"
+      (ngSubmit)="onSubmit()">
+
+  <mat-form-field>
+    <mat-label>{{'admin.institution.form.name' | translate }}</mat-label>
+    <input matInput
+           [formControlName]="formDefinition.name"
+           [required]="isRequired(formDefinition.name)">
+    <mat-error *ngIf="getFormControl(formDefinition.name).invalid">{{'required' | translate}}</mat-error>
+    <mat-error *ngFor="let error of getFormControl(formDefinition.name).errors?.errorsFromBackend">{{error}}</mat-error>
+  </mat-form-field>
+
+  <mat-form-field>
+    <mat-label>{{'admin.institution.form.url' | translate }}</mat-label>
+    <input matInput
+           [formControlName]="formDefinition.url"
+           [required]="isRequired(formDefinition.url)">
+    <mat-error *ngIf="getFormControl(formDefinition.url).invalid">{{'URL is invalid' | translate}}</mat-error>
+    <mat-error *ngFor="let error of getFormControl(formDefinition.url).errors?.errorsFromBackend">{{error}}</mat-error>
+  </mat-form-field>
+
+  <mat-form-field>
+    <mat-label>{{'admin.institution.form.description' | translate }}</mat-label>
+    <textarea matInput cdkTextareaAutosize cdkAutosizeMinRows="5" cdkAutosizeMaxRows="10" [formControlName]="formDefinition.description">
+    </textarea>
+    <mat-error *ngIf="getFormControl(formDefinition.description).invalid">{{'Description is invalid' | translate}}</mat-error>
+    <mat-error *ngFor="let error of getFormControl(formDefinition.description).errors?.errorsFromBackend">{{error}}</mat-error>
+  </mat-form-field>
+
+  <div class="submit-button">
+    <button *ngIf="!readonly"
+            mat-flat-button
+            color="primary"
+            type="submit"
+            [disabled]="!form.valid">
+      {{'admin.institution.form.submit' | translate }}
+    </button>
+  </div>
+</form>
diff --git a/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts b/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5a1b682b047bea2cf833a1111bf87fbf41080a7f
--- /dev/null
+++ b/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts
@@ -0,0 +1,47 @@
+import {ChangeDetectionStrategy, ChangeDetectorRef, Component} from "@angular/core";
+import {FormBuilder, Validators} from "@angular/forms";
+import {Institutions} from "@app/generated-api";
+import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {PropertyName, SolidifyValidator} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-admin-institution-form",
+  templateUrl: "./admin-institution-form.presentational.html",
+  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminInstitutionFormPresentational extends SharedAbstractFormPresentational<Institutions> {
+  public formDefinition: FormComponentFormDefinition = new FormComponentFormDefinition();
+
+  constructor(protected readonly _changeDetectorRef: ChangeDetectorRef,
+              private readonly _fb: FormBuilder) {
+    super(_changeDetectorRef);
+  }
+
+  protected initNewForm(): void {
+    this.form = this._fb.group({
+      [this.formDefinition.name]: ["", [Validators.required, SolidifyValidator]],
+      [this.formDefinition.url]: ["", [SolidifyValidator]],
+      [this.formDefinition.description]: ["", [SolidifyValidator]],
+    });
+  }
+
+  protected bindFormTo(institutions: Institutions): void {
+    this.form = this._fb.group({
+      [this.formDefinition.name]: [institutions.name, [Validators.required, SolidifyValidator]],
+      [this.formDefinition.url]: [institutions.url, [SolidifyValidator]],
+      [this.formDefinition.description]: [institutions.description, [SolidifyValidator]],
+    });
+  }
+
+  protected treatmentBeforeSubmit(institutions: Institutions): Institutions {
+    return institutions;
+  }
+}
+
+class FormComponentFormDefinition extends BaseFormDefinition {
+  @PropertyName() name: string;
+  @PropertyName() url: string;
+  @PropertyName() description: string;
+}
diff --git a/src/app/features/admin/components/routables/admin-home/admin-home.routable.ts b/src/app/features/admin/components/routables/admin-home/admin-home.routable.ts
index 6f74daf133bb0ad65a80fb91b8bb1821f6458c74..f597477a7b3476f046bcbd09449608d892c40904 100644
--- a/src/app/features/admin/components/routables/admin-home/admin-home.routable.ts
+++ b/src/app/features/admin/components/routables/admin-home/admin-home.routable.ts
@@ -38,6 +38,12 @@ export class AdminHomeRoutable extends SharedAbstractPresentational {
       subtitleToTranslate: TRANSLATE("admin.preservationPolicy.home.subtitle"),
       path: RoutesEnum.adminPreservationPolicy,
     },
+    {
+      avatarIcon: "university",
+      titleToTranslate: TRANSLATE("admin.institution.home.title"),
+      subtitleToTranslate: TRANSLATE("admin.institution.home.subtitle"),
+      path: RoutesEnum.adminInstitution,
+    },
   ];
 
   constructor(private store: Store) {
diff --git a/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.html b/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.html
new file mode 100644
index 0000000000000000000000000000000000000000..29a58a73a7b43de341bdf218bc98ea3a87a1befd
--- /dev/null
+++ b/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.html
@@ -0,0 +1,3 @@
+<dlcm-admin-institution-form #formPresentational
+                                   (submitChange)="create($event)"
+></dlcm-admin-institution-form>
diff --git a/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.ts b/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.ts
new file mode 100644
index 0000000000000000000000000000000000000000..62ec7fb74810025ffa4684cb907f19889ceaf1ae
--- /dev/null
+++ b/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.ts
@@ -0,0 +1,23 @@
+import {ChangeDetectionStrategy, Component, OnInit, ViewChild} from "@angular/core";
+import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
+import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
+import {Institutions} from "@app/generated-api";
+import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {Store} from "@ngxs/store";
+
+@Component({
+  selector: "dlcm-admin-institution-create-routable",
+  templateUrl: "./admin-institution-create.routable.html",
+  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminInstitutionCreateRoutable extends SharedAbstractCreateRoutable<Institutions, AdminInstitutionStateModel> implements OnInit {
+  @ViewChild("formPresentational", {static: false})
+  readonly formPresentational: SharedAbstractFormPresentational<Institutions>;
+
+  constructor(protected store: Store) {
+    super(store, LocalStateEnum.admin_institution, adminInstitutionActionNameSpace, LocalStateEnum.admin);
+  }
+}
diff --git a/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.html b/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.html
new file mode 100644
index 0000000000000000000000000000000000000000..77a6de3f3f832810a3170cfb14adbcb3647dc67f
--- /dev/null
+++ b/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.html
@@ -0,0 +1,28 @@
+<div class="button-toolbar">
+  <button mat-flat-button
+          color="primary"
+          (click)="edit()">
+    {{KEY_EDIT_BUTTON | translate}}
+  </button>
+  <button mat-flat-button
+          color="accent"
+          [disabled]="!(currentObs| async)"
+          (click)="delete()">
+    {{KEY_DELETE_BUTTON | translate}}
+  </button>
+</div>
+
+<div class="wrapper">
+  <div class="spinner-wrapper" *ngIf="isLoadingObs | async">
+    <mat-spinner></mat-spinner>
+  </div>
+
+  <dlcm-admin-institution-form *ngIf="(currentObs| async) != null"
+                                     [model]="currentObs| async"
+                                     [readonly]="true"
+  ></dlcm-admin-institution-form>
+
+</div>
+
+
+
diff --git a/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.ts b/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ceda27155bef4c5a43e6f1be6725c566f0d05199
--- /dev/null
+++ b/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.ts
@@ -0,0 +1,31 @@
+import {ChangeDetectionStrategy, Component} from "@angular/core";
+import {MatDialog} from "@angular/material";
+import {ActivatedRoute} from "@angular/router";
+import {Institutions} from "@app/generated-api";
+import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {Store} from "@ngxs/store";
+import {TRANSLATE} from "solidify-frontend";
+import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
+import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
+
+@Component({
+  selector: "dlcm-admin-institution-detail-routable",
+  templateUrl: "./admin-institution-detail.routable.html",
+  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminInstitutionDetailRoutable extends SharedAbstractDetailRoutable<Institutions, AdminInstitutionStateModel> {
+  readonly KEY_PARAM_NAME: string = "name";
+  readonly KEY_DELETE_BUTTON: string = TRANSLATE("admin.institution.button.delete");
+  readonly KEY_EDIT_BUTTON: string = TRANSLATE("admin.institution.button.edit");
+
+  constructor(protected store: Store,
+              protected route: ActivatedRoute,
+              public dialog: MatDialog) {
+    super(store, route, dialog, LocalStateEnum.admin_institution, adminInstitutionActionNameSpace, LocalStateEnum.admin);
+  }
+
+  getSubResourceWithParentId(id: string): void {
+  }
+}
diff --git a/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.html b/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.html
new file mode 100644
index 0000000000000000000000000000000000000000..decec7f0122b84a8fa334d12db2428ecf241082b
--- /dev/null
+++ b/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.html
@@ -0,0 +1,8 @@
+<mat-spinner *ngIf="(isLoadingObs | async)"></mat-spinner>
+
+<div class="tab-content">
+  <dlcm-admin-institution-form *ngIf="(currentObs | async)"
+                                     [model]="currentObs | async"
+                                     (submitChange)="update($event)"
+  ></dlcm-admin-institution-form>
+</div>
diff --git a/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.ts b/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.ts
new file mode 100644
index 0000000000000000000000000000000000000000..154e1d49203c53ae300bbde6ab449b52483c9087
--- /dev/null
+++ b/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.ts
@@ -0,0 +1,24 @@
+import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core";
+import {ActivatedRoute} from "@angular/router";
+import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
+import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
+import {Institutions} from "@app/generated-api";
+import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {Store} from "@ngxs/store";
+
+@Component({
+  selector: "dlcm-admin-institution-edit-routable",
+  templateUrl: "./admin-institution-edit.routable.html",
+  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminInstitutionEditRoutable extends SharedAbstractEditRoutable<Institutions, AdminInstitutionStateModel> implements OnInit {
+  constructor(protected store: Store,
+              protected route: ActivatedRoute) {
+    super(store, route, LocalStateEnum.admin_institution, adminInstitutionActionNameSpace, LocalStateEnum.admin);
+  }
+
+  getSubResourceWithParentId(id: string): void {
+  }
+}
diff --git a/src/app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component.ts b/src/app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b99fec3bf8854e55cfadd1316747c461c8251423
--- /dev/null
+++ b/src/app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component.ts
@@ -0,0 +1,53 @@
+import {ChangeDetectionStrategy, Component} from "@angular/core";
+import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
+import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
+import {Institutions} from "@app/generated-api";
+import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
+import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {Store} from "@ngxs/store";
+import {TRANSLATE} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-admin-institution-list-routable",
+  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminInstitutionListRoutable extends SharedAbstractListRoutable<Institutions, AdminInstitutionStateModel> {
+  readonly KEY_CREATE_BUTTON: string = TRANSLATE("admin.institution.button.new");
+  readonly KEY_REFRESH_BUTTON: string = TRANSLATE("admin.institution.button.refresh");
+
+  constructor(protected store: Store) {
+    super(store, LocalStateEnum.admin_institution, adminInstitutionActionNameSpace, {}, LocalStateEnum.admin);
+  }
+
+  defineColumns(): void {
+    this.columns = [
+      {
+        field: "name",
+        header: TRANSLATE("admin.institution.table.header.name"),
+        type: FieldTypeEnum.string,
+        order: 0,
+        isFilterable: true,
+        isSortable: true,
+      },
+      {
+        field: "creation.when" as any,
+        header: TRANSLATE("admin.institution.table.header.creation.when"),
+        type: FieldTypeEnum.datetime,
+        order: 0,
+        isFilterable: true,
+        isSortable: true,
+      },
+      {
+        field: "lastUpdate.when" as any,
+        header: TRANSLATE("admin.institution.table.header.lastUpdate.when"),
+        type: FieldTypeEnum.datetime,
+        order: 0,
+        isFilterable: true,
+        isSortable: true,
+      },
+    ];
+  }
+}
diff --git a/src/app/features/admin/stores/admin.state.ts b/src/app/features/admin/stores/admin.state.ts
index 653da64a5f127b7bad70c5cc7d677bf0300d269b..3e16119411854ea2e9b3baf7d888f3341c8ce869 100644
--- a/src/app/features/admin/stores/admin.state.ts
+++ b/src/app/features/admin/stores/admin.state.ts
@@ -14,12 +14,14 @@ import {
 import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {State, Store} from "@ngxs/store";
 import {BaseState} from "solidify-frontend";
+import {AdminInstitutionState, AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
 
 export interface AdminStateModel extends BaseState {
   [LocalStateEnum.admin_submissionPolicy]: AdminSubmissionPolicyStateModel;
   [LocalStateEnum.admin_preservationPolicy]: AdminPreservationPolicyStateModel;
   [LocalStateEnum.admin_license]: AdminLicenseStateModel;
   [LocalStateEnum.admin_organizationalUnit]: AdminOrganizationalUnitStateModel;
+  [LocalStateEnum.admin_institution]: AdminInstitutionStateModel;
 }
 
 @State<AdminStateModel>({
@@ -30,12 +32,14 @@ export interface AdminStateModel extends BaseState {
     [LocalStateEnum.admin_preservationPolicy]: null,
     [LocalStateEnum.admin_license]: null,
     [LocalStateEnum.admin_organizationalUnit]: null,
+    [LocalStateEnum.admin_institution]: null,
   },
   children: [
     AdminSubmissionPolicyState,
     AdminPreservationPolicyState,
     AdminLicenseState,
     AdminOrganizationalUnitState,
+    AdminInstitutionState,
   ],
 })
 export class AdminState {
diff --git a/src/app/features/admin/stores/institution/admin-institution.action.ts b/src/app/features/admin/stores/institution/admin-institution.action.ts
new file mode 100644
index 0000000000000000000000000000000000000000..db1d983ee6d301246fa59bab4e1ff3885cac618c
--- /dev/null
+++ b/src/app/features/admin/stores/institution/admin-institution.action.ts
@@ -0,0 +1,85 @@
+import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {ResourceAction, ResourceNameSpace, TypeDefaultAction} from "solidify-frontend";
+import {Institutions} from "@app/generated-api";
+
+const state = LocalStateEnum.admin_institution;
+
+export namespace AdminInstitutionAction {
+  @TypeDefaultAction(state)
+  export class LoadResource extends ResourceAction.LoadResource {
+  }
+
+  @TypeDefaultAction(state)
+  export class LoadResourceSuccess extends ResourceAction.LoadResourceSuccess {
+  }
+
+  @TypeDefaultAction(state)
+  export class LoadResourceFail extends ResourceAction.LoadResourceFail {
+  }
+
+  @TypeDefaultAction(state)
+  export class ChangeQueryParameters extends ResourceAction.ChangeQueryParameters {
+  }
+
+  @TypeDefaultAction(state)
+  export class GetAll extends ResourceAction.GetAll {
+  }
+
+  @TypeDefaultAction(state)
+  export class GetAllSuccess extends ResourceAction.GetAllSuccess<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class GetAllFail extends ResourceAction.GetAllFail<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class GetById extends ResourceAction.GetById {
+  }
+
+  @TypeDefaultAction(state)
+  export class GetByIdSuccess extends ResourceAction.GetByIdSuccess<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class GetByIdFail extends ResourceAction.GetByIdFail<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class Create extends ResourceAction.Create<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class CreateSuccess extends ResourceAction.CreateSuccess<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class CreateFail extends ResourceAction.CreateFail<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class Update extends ResourceAction.Update<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class UpdateSuccess extends ResourceAction.UpdateSuccess<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class UpdateFail extends ResourceAction.UpdateFail<Institutions> {
+  }
+
+  @TypeDefaultAction(state)
+  export class Delete extends ResourceAction.Delete {
+  }
+
+  @TypeDefaultAction(state)
+  export class DeleteSuccess extends ResourceAction.DeleteSuccess {
+  }
+
+  @TypeDefaultAction(state)
+  export class DeleteFail extends ResourceAction.DeleteFail {
+  }
+}
+
+export const adminInstitutionActionNameSpace: ResourceNameSpace = AdminInstitutionAction;
diff --git a/src/app/features/admin/stores/institution/admin-institution.state.ts b/src/app/features/admin/stores/institution/admin-institution.state.ts
new file mode 100644
index 0000000000000000000000000000000000000000..67b1674dbe5ce0bcab62ec2c0133417fa470e2cb
--- /dev/null
+++ b/src/app/features/admin/stores/institution/admin-institution.state.ts
@@ -0,0 +1,47 @@
+import {
+  ApiService,
+  defaultResourceStateInitValue,
+  NotificationService,
+  ResourceApiEnum,
+  ResourceNameSpace,
+  ResourceState,
+  ResourceStateModel
+} from "solidify-frontend";
+import {Institutions} from "@app/generated-api";
+import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
+import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
+import {Actions, State, Store} from "@ngxs/store";
+import {RoutesEnum} from "@app/shared/enums/routes.enum";
+import {environment} from "../../../../../environments/environment";
+
+export interface AdminInstitutionStateModel extends ResourceStateModel<Institutions> {
+
+}
+
+@State<AdminInstitutionStateModel>({
+  name: LocalStateEnum.admin_institution,
+  defaults: {
+    ...defaultResourceStateInitValue,
+  },
+})
+export class AdminInstitutionState extends ResourceState<Institutions> {
+  constructor(protected apiService: ApiService,
+              protected store: Store,
+              protected notificationService: NotificationService,
+              protected actions$: Actions) {
+    super(apiService, store, notificationService, actions$, RoutesEnum.adminInstitution, environment);
+  }
+
+  defineResourceNameSpace(): ResourceNameSpace {
+    return adminInstitutionActionNameSpace;
+  }
+
+  defineState(): string {
+    return LocalStateEnum.admin_institution;
+  }
+
+  defineUrlResource(): ResourceApiEnum {
+    return AdminResourceApiEnum.institutions;
+  }
+}
diff --git a/src/app/shared/enums/local-state.enum.ts b/src/app/shared/enums/local-state.enum.ts
index d0e4d0f7c557b1d62dd3231052793d3af0d0224a..5cc24e8e4a332420d1363aff8ef3613881f8241a 100644
--- a/src/app/shared/enums/local-state.enum.ts
+++ b/src/app/shared/enums/local-state.enum.ts
@@ -27,4 +27,5 @@ export enum LocalStateEnum {
   admin_license = "admin_license",
   admin_organizationalUnit = "admin_organizationalUnit",
   admin_organizationalUnit_submissionPolicy = "admin_organizationalUnit_submissionPolicy",
+  admin_institution = "admin_institution"
 }
diff --git a/src/app/shared/enums/routes.enum.ts b/src/app/shared/enums/routes.enum.ts
index 8deee6d41fbefc997a3a7b7dde1662a8ee9f8dd3..44c7cbb7aace8a7bac8f4c5549ebf38f49e89029 100644
--- a/src/app/shared/enums/routes.enum.ts
+++ b/src/app/shared/enums/routes.enum.ts
@@ -46,6 +46,10 @@ export enum AdminRoutesEnum {
   organizationalUnitCreate = "create",
   organizationalUnitDetail = "detail",
   organizationalUnitEdit = "edit",
+  institution = "institution",
+  institutionCreate = "create",
+  institutionDetail = "detail",
+  institutionEdit = "edit",
 }
 
 export class RoutesEnum implements RoutesEnum {
@@ -82,4 +86,8 @@ export class RoutesEnum implements RoutesEnum {
   static adminOrganizationalUnitCreate: string = AppRoutesEnum.admin + urlSeparator + AppRoutesEnum.organizationalUnit + urlSeparator + AdminRoutesEnum.organizationalUnitCreate;
   static adminOrganizationalUnitDetail: string = AppRoutesEnum.admin + urlSeparator + AppRoutesEnum.organizationalUnit + urlSeparator + AdminRoutesEnum.organizationalUnitDetail;
   static adminOrganizationalUnitEdit: string = AppRoutesEnum.admin + urlSeparator + AppRoutesEnum.organizationalUnit + urlSeparator + AdminRoutesEnum.organizationalUnitEdit;
+  static adminInstitution: string = AppRoutesEnum.admin + urlSeparator + AdminRoutesEnum.institution;
+  static adminInstitutionCreate: string = AppRoutesEnum.admin + urlSeparator + AdminRoutesEnum.institution + urlSeparator + AdminRoutesEnum.institutionCreate;
+  static adminInstitutionDetail: string = AppRoutesEnum.admin + urlSeparator + AdminRoutesEnum.institution + urlSeparator + AdminRoutesEnum.institutionDetail;
+  static adminInstitutionEdit: string = AppRoutesEnum.admin + urlSeparator + AdminRoutesEnum.institution + urlSeparator + AdminRoutesEnum.institutionEdit;
 }
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts
index cf5abbbd1bfc38e6e975d89ad05fd7d9453d67e3..bf0a7f36ec86b0a4bfc27e32f9342a40bdeee5e1 100644
--- a/src/app/shared/shared.module.ts
+++ b/src/app/shared/shared.module.ts
@@ -24,6 +24,7 @@ import {TableModule} from "primeng/table";
 import {SolidifyFrontendModule} from "solidify-frontend";
 import {SharedBreadcrumbPresentational} from "./components/presentationals/shared-breadcrumb/shared-breadcrumb.presentational";
 import {SharedPaginatorPresentational} from "./components/presentationals/shared-paginator/shared-paginator.presentational";
+import {TextFieldModule} from "@angular/cdk/text-field";
 
 const routables = [];
 const dialogs = [];
@@ -47,6 +48,7 @@ const modules = [
   TableModule,
   TranslateModule,
   SolidifyFrontendModule,
+  TextFieldModule
 ];
 
 @NgModule({
diff --git a/src/app/shared/utils/store-dialog.util.ts b/src/app/shared/utils/store-dialog.util.ts
index 296543e1b0d5b4529971a219cb5c139868b6a57f..a754db841e9e712ae53e4611bdd22322eb05bdb8 100644
--- a/src/app/shared/utils/store-dialog.util.ts
+++ b/src/app/shared/utils/store-dialog.util.ts
@@ -6,6 +6,7 @@ import {AdminSubmissionPolicyDeleteDialog} from "@app/features/admin/components/
 import {DepositDeleteDialog as DepositDeleteDialog} from "@app/features/deposit/components/dialogs/deposit-delete/deposit-delete.dialog";
 import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {StringUtil} from "solidify-frontend";
+import {AdminInstitutionDeleteDialog} from "@app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog";
 
 export class StoreDialogUtil {
   private static readonly messageNotFound: string = "There is no dialog for action '{0}' declared for the state '{1}'. Please add if statement into StoreDialogUtil static class.";
@@ -26,6 +27,9 @@ export class StoreDialogUtil {
     if (state === LocalStateEnum.admin_license) {
       return AdminLicenseDeleteDialog as Component;
     }
+    if (state === LocalStateEnum.admin_institution) {
+      return AdminInstitutionDeleteDialog as Component;
+    }
     throw Error(StringUtil.format(StoreDialogUtil.messageNotFound, "Delete", state));
   }
 }
diff --git a/src/app/shared/utils/store-route-local.util.ts b/src/app/shared/utils/store-route-local.util.ts
index a731b3c5a5700dc6232cf7d8a76ea227ec61d669..e9b72bbf76314f13f63a7e3b39bebcdd587e517e 100644
--- a/src/app/shared/utils/store-route-local.util.ts
+++ b/src/app/shared/utils/store-route-local.util.ts
@@ -24,6 +24,9 @@ export class StoreRouteLocalUtil {
     if (state === LocalStateEnum.admin_license) {
       return RoutesEnum.adminLicenseDetail;
     }
+    if (state === LocalStateEnum.admin_institution) {
+      return RoutesEnum.adminInstitutionDetail;
+    }
     throw Error(StringUtil.format(StoreRouteLocalUtil.messageNotFound, "Detail", state));
   }
 
@@ -43,6 +46,9 @@ export class StoreRouteLocalUtil {
     if (state === LocalStateEnum.admin_license) {
       return RoutesEnum.adminLicenseCreate;
     }
+    if (state === LocalStateEnum.admin_institution) {
+      return RoutesEnum.adminInstitutionCreate;
+    }
     throw Error(StringUtil.format(StoreRouteLocalUtil.messageNotFound, "Create", state));
   }
 
@@ -87,6 +93,9 @@ export class StoreRouteLocalUtil {
     if (state === LocalStateEnum.admin_license) {
       return RoutesEnum.adminLicenseEdit;
     }
+    if (state === LocalStateEnum.admin_institution) {
+      return RoutesEnum.adminInstitutionEdit;
+    }
     throw Error(StringUtil.format(StoreRouteLocalUtil.messageNotFound, "Edit", state));
   }
 }
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index 7622b91b538c9c9b3e985bd90b9e0a17a898cbc7..1df32f8acf21442e7dbfcb0fb634f76ee675f921 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -1,4 +1,6 @@
 {
+  "Description is invalid": "Description is invalid",
+  "URL is invalid": "URL is invalid",
   "access": {
     "organizationalUnitNotFound": "Unable to get data",
     "search": {
@@ -25,6 +27,43 @@
       },
       "title": "Administration"
     },
+    "institution": {
+      "button": {
+        "delete": "Delete",
+        "edit": "Edit",
+        "new": "Create new institution",
+        "refresh": "Refresh"
+      },
+      "dialog": {
+        "delete": {
+          "cancel": "Cancel",
+          "confirm": "Confirm",
+          "message": "Are you sure you want to delete this institution?",
+          "title": "Confirm deletion"
+        }
+      },
+      "form": {
+        "description": "description",
+        "name": "name",
+        "submit": "Submit",
+        "url": "url"
+      },
+      "home": {
+        "subtitle": "Describe institution",
+        "title": "Institution"
+      },
+      "table": {
+        "header": {
+          "creation": {
+            "when": "Creation date"
+          },
+          "lastUpdate": {
+            "when": "Last update"
+          },
+          "name": "name"
+        }
+      }
+    },
     "license": {
       "button": {
         "delete": "Delete",
@@ -193,12 +232,18 @@
   },
   "breadcrumb": {
     "access": {
-      "browsing": "breadcrumb.access.browsing",
+      "browsing": "Browsing",
       "detail": "Detail",
       "root": "Archive",
       "search": "Search"
     },
     "admin": {
+      "institution": {
+        "create": "Create institution",
+        "detail": "License institution",
+        "edit": "Edit institution",
+        "list": "List institution"
+      },
       "license": {
         "create": "Create license",
         "detail": "License detail",
@@ -367,7 +412,7 @@
   },
   "home": {
     "button": {
-      "goToArchivalBrowsing": "Go to archival browsing"
+      "goToArchivalBrowsing": "Go to archive browsing"
     }
   },
   "homePage": {
@@ -385,8 +430,8 @@
     },
     "browsing": {
       "archive": {
-        "noArchive": "",
-        "noOrgUnitSelected": ""
+        "noArchive": "No archive for the selected organizational unit",
+        "noOrgUnitSelected": "No organizational unit selected"
       }
     }
   },
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 7622b91b538c9c9b3e985bd90b9e0a17a898cbc7..1df32f8acf21442e7dbfcb0fb634f76ee675f921 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -1,4 +1,6 @@
 {
+  "Description is invalid": "Description is invalid",
+  "URL is invalid": "URL is invalid",
   "access": {
     "organizationalUnitNotFound": "Unable to get data",
     "search": {
@@ -25,6 +27,43 @@
       },
       "title": "Administration"
     },
+    "institution": {
+      "button": {
+        "delete": "Delete",
+        "edit": "Edit",
+        "new": "Create new institution",
+        "refresh": "Refresh"
+      },
+      "dialog": {
+        "delete": {
+          "cancel": "Cancel",
+          "confirm": "Confirm",
+          "message": "Are you sure you want to delete this institution?",
+          "title": "Confirm deletion"
+        }
+      },
+      "form": {
+        "description": "description",
+        "name": "name",
+        "submit": "Submit",
+        "url": "url"
+      },
+      "home": {
+        "subtitle": "Describe institution",
+        "title": "Institution"
+      },
+      "table": {
+        "header": {
+          "creation": {
+            "when": "Creation date"
+          },
+          "lastUpdate": {
+            "when": "Last update"
+          },
+          "name": "name"
+        }
+      }
+    },
     "license": {
       "button": {
         "delete": "Delete",
@@ -193,12 +232,18 @@
   },
   "breadcrumb": {
     "access": {
-      "browsing": "breadcrumb.access.browsing",
+      "browsing": "Browsing",
       "detail": "Detail",
       "root": "Archive",
       "search": "Search"
     },
     "admin": {
+      "institution": {
+        "create": "Create institution",
+        "detail": "License institution",
+        "edit": "Edit institution",
+        "list": "List institution"
+      },
       "license": {
         "create": "Create license",
         "detail": "License detail",
@@ -367,7 +412,7 @@
   },
   "home": {
     "button": {
-      "goToArchivalBrowsing": "Go to archival browsing"
+      "goToArchivalBrowsing": "Go to archive browsing"
     }
   },
   "homePage": {
@@ -385,8 +430,8 @@
     },
     "browsing": {
       "archive": {
-        "noArchive": "",
-        "noOrgUnitSelected": ""
+        "noArchive": "No archive for the selected organizational unit",
+        "noOrgUnitSelected": "No organizational unit selected"
       }
     }
   },
diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json
index 051a00ee2c734f7794a5e5535224dd43f0ac1213..58b620f0c4106487daaaf42217ee375d3cfa1847 100644
--- a/src/assets/i18n/fr.json
+++ b/src/assets/i18n/fr.json
@@ -1,4 +1,6 @@
 {
+  "Description is invalid": "La description est invalide",
+  "URL is invalid": "URL invalide",
   "access": {
     "organizationalUnitNotFound": "Impossible d'obtenir les données",
     "search": {
@@ -25,6 +27,43 @@
       },
       "title": "Administration"
     },
+    "institution": {
+      "button": {
+        "delete": "Supprimer",
+        "edit": "Modifier",
+        "new": "Nouvelle institution",
+        "refresh": "Rafraîchir"
+      },
+      "dialog": {
+        "delete": {
+          "cancel": "Annuler",
+          "confirm": "Oui",
+          "message": "Souhaitez-vous vraiment supprimer cette institution ?",
+          "title": "Confirmation de suppression"
+        }
+      },
+      "form": {
+        "description": "Description",
+        "name": "Nom",
+        "submit": "Envoyer",
+        "url": "URL"
+      },
+      "home": {
+        "subtitle": "Décrit l'institution",
+        "title": "Institution"
+      },
+      "table": {
+        "header": {
+          "creation": {
+            "when": "Date de création"
+          },
+          "lastUpdate": {
+            "when": "Dernière mise à jour"
+          },
+          "name": "Nom"
+        }
+      }
+    },
     "license": {
       "button": {
         "delete": "Supprimer",
@@ -199,6 +238,12 @@
       "search": "Recherche"
     },
     "admin": {
+      "institution": {
+        "create": "Créer institution",
+        "detail": "Détail institution",
+        "edit": "Modifier institution",
+        "list": "Liste institution"
+      },
       "license": {
         "create": "Créer licence",
         "detail": "Détail licence",