diff --git a/src/frontend/app/app.module.ts b/src/frontend/app/app.module.ts
index fd07db758a834553774eb96a079ecdbb69ec4601..65498902069a8551e53636046247c8b8fa104b80 100755
--- a/src/frontend/app/app.module.ts
+++ b/src/frontend/app/app.module.ts
@@ -29,6 +29,13 @@ import { ActionsService } from './actions/actions.service';
 
 import { AppComponent } from './app.component';
 
+import { DashboardComponent } from './home/dashboard/dashboard.component';
+import { TileViewListComponent } from './home/dashboard/tile/view/list/tile-view-list.component';
+import { TileViewResumeComponent } from './home/dashboard/tile/view/resume/tile-view-resume.component';
+import { TileViewChartComponent } from './home/dashboard/tile/view/chart/tile-view-chart.component';
+import { TileLastMailsViewDashboardComponent } from './home/dashboard/tile/lastMailsView/tile-last-mails-view.component';
+import { NgxChartsModule } from '@swimlane/ngx-charts';
+
 // ACTIONS
 import { ConfirmActionComponent } from './actions/confirm-action/confirm-action.component';
 import { DisabledBasketPersistenceActionComponent } from './actions/disabled-basket-persistence-action/disabled-basket-persistence-action.component';
@@ -153,9 +160,15 @@ export class MyHammerConfig extends HammerGestureConfig {
         AdministrationModule,
         DocumentViewerModule,
         AppListModule,
+        NgxChartsModule
     ],
     declarations: [
         AppComponent,
+        DashboardComponent,
+        TileLastMailsViewDashboardComponent,
+        TileViewListComponent,
+        TileViewResumeComponent,
+        TileViewChartComponent,
         ProcessComponent,
         IndexationComponent,
         LinkResourceModalComponent,
diff --git a/src/frontend/app/home/dashboard/dashboard.component.html b/src/frontend/app/home/dashboard/dashboard.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..83e27cfbd95286b0cf051295e69576c289a221db
--- /dev/null
+++ b/src/frontend/app/home/dashboard/dashboard.component.html
@@ -0,0 +1,33 @@
+<div class="dashboard-container" dnd-sortable-container [dropZones]="['boxers-zone']" [sortableData]="tiles">
+    <div class="tile" [class.empty_tile_edit]="tile.id === null && tile.editMode" [class.empty_tile]="tile.id === null"
+        *ngFor="let tile of tiles;let i=index" (mouseenter)="enterTile(tile, i)" dnd-sortable [sortableIndex]="i">
+        <div class="tool-left" *ngIf="tile.id !== null && tile.editMode">
+            <span dnd-sortable-handle style="cursor: move;">
+                <mat-icon color="primary" class="fa fa-arrows-alt"></mat-icon>
+            </span>
+        </div>
+        <div class="tool" *ngIf="tile.id !== null && tile.editMode">
+            <button color="primary" mat-button mat-icon-button [matMenuTriggerFor]="toolMenu">
+                <mat-icon class="fa fa-ellipsis-v"></mat-icon>
+            </button>
+            <mat-menu #toolMenu="matMenu">
+                <ng-container  *ngFor="let menu of tile.menus">
+                    <button *ngIf="menu!=='view'" mat-menu-item>{{menu}}</button>
+                    <button *ngIf="menu==='view'" mat-menu-item [matMenuTriggerFor]="toolMenuView">{{menu}}</button>
+                </ng-container>
+            </mat-menu>
+            <mat-menu #toolMenuView="matMenu">
+                <button mat-menu-item *ngFor="let view of tile.views" [disabled]="tile.view === view" (click)="tile.view = view">
+                    <mat-icon class="fa fa-list" color="primary" style="height: auto;width: auto;"></mat-icon>
+                    <span>{{view}}</span>
+                </button>
+            </mat-menu>
+        </div>
+        <app-tile-last-mails-view *ngIf="tile.type === 'lastViewMails'" [view]="tile.view"
+            style="display: flex;height: 100%;flex-direction: column;width: 100%;">
+        </app-tile-last-mails-view>
+        <button mat-button color="secondary" mat-icon-button *ngIf="tile.id === null && tile.editMode">
+            <mat-icon color="secondary" class="fa fa-plus"></mat-icon>
+        </button>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/frontend/app/home/dashboard/dashboard.component.scss b/src/frontend/app/home/dashboard/dashboard.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..8d42b7d3dabc246a083bbadab19a69f99701eb22
--- /dev/null
+++ b/src/frontend/app/home/dashboard/dashboard.component.scss
@@ -0,0 +1,49 @@
+@import '../../../css/vars.scss';
+
+.dashboard-container {
+    display: grid;
+    grid-template-columns: repeat(3, 33%);
+}
+
+.tile {
+    position: relative;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    margin: 10px;
+    box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+    height: 250px;
+    background: white;
+}
+
+.empty_tile {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    margin: 10px;
+    height: 250px;
+    box-shadow: none;
+    background: none;
+}
+
+.empty_tile_edit {
+    border: dashed 2px $secondary;
+}
+
+.tool {
+    position: absolute;
+    right: 0px;
+    top: 0px;
+}
+
+.tool-left {
+    position: absolute;
+    left: 0px;
+    top: 0px;
+    height: 40px;
+    width: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
\ No newline at end of file
diff --git a/src/frontend/app/home/dashboard/dashboard.component.ts b/src/frontend/app/home/dashboard/dashboard.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..88ce3adb3bdfefd8f8fd42000f1521b5e5149ef7
--- /dev/null
+++ b/src/frontend/app/home/dashboard/dashboard.component.ts
@@ -0,0 +1,100 @@
+import { Component, OnInit, AfterViewInit } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { TranslateService } from '@ngx-translate/core';
+import { AppService } from '@service/app.service';
+
+@Component({
+    selector: 'app-dashboard',
+    templateUrl: 'dashboard.component.html',
+    styleUrls: ['dashboard.component.scss']
+})
+export class DashboardComponent implements OnInit, AfterViewInit {
+
+    tiles: any = [
+        {
+            id: 1,
+            type: 'lastViewMails',
+            view: 'resume',
+            menus: [
+                'delete',
+                'view'
+            ],
+            views: [
+                'list',
+                'resume',
+                'chart'
+            ]
+        },
+        {
+            id: null,
+            type: null,
+            view: null,
+            menus: null,
+            views: null
+        },
+        {
+            id: 2,
+            type: 'lastViewMails',
+            view: 'list',
+            menus: [
+                'delete',
+                'view'
+            ],
+            views: [
+                'list',
+                'resume',
+                'chart'
+            ]
+        },
+        {
+            id: 3,
+            type: 'lastViewMails',
+            view: 'resume',
+            menus: [
+                'delete',
+                'view'
+            ],
+            views: [
+                'list',
+                'resume',
+                'chart'
+            ]
+        },
+        {
+            id: null,
+            type: null,
+            view: null,
+            menus: null,
+            views: null
+        },
+        {
+            id: 4,
+            type: 'lastViewMails',
+            view: 'list',
+            menus: [
+                'delete',
+                'view'
+            ],
+            views: [
+                'list',
+                'resume',
+                'chart'
+            ]
+        },
+    ];
+    constructor(
+        public translate: TranslateService,
+        public http: HttpClient,
+        public appService: AppService,
+    ) { }
+
+    ngOnInit(): void { }
+
+    ngAfterViewInit(): void { }
+
+    enterTile(tile: any, index: number) {
+        this.tiles.forEach((element: any, indexTile: number) => {
+            element.editMode = indexTile === index ? true : false;
+        });
+    }
+}
diff --git a/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.html b/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..828f62d002701abdf399f0585906ede9917299c5
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.html
@@ -0,0 +1,6 @@
+<div class="tile-title">
+    Mes derniers courriers consultés
+</div>
+<app-tile-view-list *ngIf="view==='list'" [displayColumns]="['recipient','subject','creationDate']" [resources]="resources" [icon]="'fa-history'" style="display: flex;flex: 1;overflow: auto;"></app-tile-view-list>
+<app-tile-view-resume *ngIf="view==='resume'" [countResources]="resources.length" [icon]="'fa-history'"  [resourceLabel]="'courrier(s)'" style="display: flex;flex: 1;overflow: auto;"></app-tile-view-resume>
+<app-tile-view-chart *ngIf="view==='chart'" [icon]="'fa-history'" style="display: flex;flex: 1;overflow: auto;"></app-tile-view-chart>
\ No newline at end of file
diff --git a/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.scss b/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..dad0b53288c98b08be588cd2c089a777fbd9252c
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.scss
@@ -0,0 +1,8 @@
+@import '../../../../../css/vars.scss';
+
+.tile-title {
+    padding: 10px;
+    color: $primary;
+    font-weight: bold;
+    text-align: center;
+}
\ No newline at end of file
diff --git a/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.ts b/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6aaa4475a533dcb930f38d6934a87316d3a90354
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/lastMailsView/tile-last-mails-view.component.ts
@@ -0,0 +1,62 @@
+import { Component, OnInit, AfterViewInit, Input } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { TranslateService } from '@ngx-translate/core';
+import { AppService } from '@service/app.service';
+import { Time } from '@angular/common';
+import { TimeAgoPipe } from '@plugins/timeAgo.pipe';
+
+@Component({
+    selector: 'app-tile-last-mails-view',
+    templateUrl: 'tile-last-mails-view.component.html',
+    styleUrls: ['tile-last-mails-view.component.scss'],
+    providers: [TimeAgoPipe]
+})
+export class TileLastMailsViewDashboardComponent implements OnInit, AfterViewInit {
+
+    @Input() view: string = 'list';
+
+    testDate = new Date();
+
+    label: 'Mes derniers courriers consultés';
+
+    resources: any[] = [];
+
+    constructor(
+        public translate: TranslateService,
+        public http: HttpClient,
+        public appService: AppService,
+        private timeAgoPipe: TimeAgoPipe
+    ) { }
+
+    ngOnInit(): void { }
+
+    ngAfterViewInit(): void {
+        this.resources = [
+            {
+                recipient: 'Jan-louis ERCOLANNI (MAARCH)',
+                subject: 'Réservation bal des basketteurs',
+                creationDate: '26-01-2021',
+            },
+            {
+                recipient: 'Jan-louis ERCOLANNI (MAARCH)',
+                subject: 'Réservation bal des basketteurs',
+                creationDate: '26-01-2021',
+            },
+            {
+                recipient: 'Jan-louis ERCOLANNI (MAARCH)',
+                subject: 'Réservation bal des basketteurs',
+                creationDate: '26-01-2021',
+            },
+            {
+                recipient: 'Jan-louis ERCOLANNI (MAARCH)',
+                subject: 'Réservation bal des basketteurs',
+                creationDate: '26-01-2021',
+            },
+            {
+                recipient: 'Jan-louis ERCOLANNI (MAARCH)',
+                subject: 'Réservation bal des basketteurs',
+                creationDate: '26-01-2021',
+            }
+        ];
+    }
+}
diff --git a/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.html b/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..05709edd81fa704ad8ec0658fbb78434adf00af8
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.html
@@ -0,0 +1,6 @@
+<ngx-charts-pie-chart 
+    [results]="saleData"
+    [legend]="false"
+    [labels]="true" >
+</ngx-charts-pie-chart>
+<i class="fa {{icon}} tile-icon" color="primary"></i>
\ No newline at end of file
diff --git a/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.scss b/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..29752795fa558e26c6c8c5d70ddc0b67c271bb92
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.scss
@@ -0,0 +1,9 @@
+@import '../../../../../../css/vars.scss';
+
+.tile-icon {
+    position: absolute;
+    bottom: 0px;
+    left: 0px;
+    font-size: 90px;
+    opacity: 0.1;
+}
diff --git a/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.ts b/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..37f14cb8d29af2f4b049ca4829cb39134fd5dee9
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/chart/tile-view-chart.component.ts
@@ -0,0 +1,34 @@
+import { Component, OnInit, AfterViewInit, Input } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { TranslateService } from '@ngx-translate/core';
+import { AppService } from '@service/app.service';
+
+@Component({
+    selector: 'app-tile-view-chart',
+    templateUrl: 'tile-view-chart.component.html',
+    styleUrls: ['tile-view-chart.component.scss'],
+})
+export class TileViewChartComponent implements OnInit, AfterViewInit {
+
+    @Input() icon: string = '';
+
+    saleData = [
+        { name: 'Litige', value: 24 },
+        { name: 'Convocation', value: 12 },
+        { name: 'Abonnement', value: 53 },
+        { name: 'Réservation', value: 21 },
+        { name: 'Invitation', value: 2 }
+    ];
+
+    testDate = new Date();
+
+    constructor(
+        public translate: TranslateService,
+        public http: HttpClient,
+        public appService: AppService,
+    ) { }
+
+    ngOnInit(): void { }
+
+    ngAfterViewInit(): void { }
+}
diff --git a/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.html b/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..d3d4c5b510e66defabb43f4f8fef902e7d3f8e89
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.html
@@ -0,0 +1,8 @@
+<mat-list role="list" style="width: 100%;overflow: auto;">
+    <mat-list-item class="resource" role="listitem" *ngFor="let resource of resources">
+        <div class="item" *ngFor="let col of displayColumns">
+            {{resource[col]}}
+        </div>
+    </mat-list-item>
+</mat-list>
+<i class="fa {{icon}} tile-icon" color="primary"></i>
diff --git a/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.scss b/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..6a6c01e6f3d77f9061e5ab1328aff4816a0fb627
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.scss
@@ -0,0 +1,23 @@
+@import '../../../../../../css/vars.scss';
+
+.item {
+    font-size: 12px;
+}
+
+.tile-icon {
+    position: absolute;
+    bottom: 0px;
+    left: 0px;
+    font-size: 90px;
+    opacity: 0.1;
+}
+
+.resource{
+    background: none;
+    transition: all 0.2s;
+}
+
+.resource:hover{
+    background: rgba($primary,0.1);
+    transition: all 0.2s;
+}
\ No newline at end of file
diff --git a/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.ts b/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8ed6195893ed6751c466356062b3df2780a01482
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/list/tile-view-list.component.ts
@@ -0,0 +1,29 @@
+import { Component, OnInit, AfterViewInit, Input } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { TranslateService } from '@ngx-translate/core';
+import { AppService } from '@service/app.service';
+
+@Component({
+    selector: 'app-tile-view-list',
+    templateUrl: 'tile-view-list.component.html',
+    styleUrls: ['tile-view-list.component.scss'],
+})
+export class TileViewListComponent implements OnInit, AfterViewInit {
+
+    @Input() displayColumns: string[];
+
+    @Input() resources: any[];
+    @Input() icon: string = '';
+
+    testDate = new Date();
+
+    constructor(
+        public translate: TranslateService,
+        public http: HttpClient,
+        public appService: AppService,
+    ) { }
+
+    ngOnInit(): void { }
+
+    ngAfterViewInit(): void { }
+}
diff --git a/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.html b/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..69eb51bf734fa19a10b98867c1102b2f57b41691
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.html
@@ -0,0 +1,11 @@
+<div style="width: 100%;height: 100%;">
+    <div color="primary" class="resume-content">
+        <span class="resume-number">
+            {{countResources}}
+        </span>
+        <span class="resume-label">
+            {{resourceLabel}}
+        </span>
+    </div>
+    <i class="fa fa-history tile-icon" color="primary"></i>
+</div>
\ No newline at end of file
diff --git a/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.scss b/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..f4fac1a754217af51f99f7916389b08da035c07c
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.scss
@@ -0,0 +1,32 @@
+@import '../../../../../../css/vars.scss';
+
+.tile-icon {
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    transform: translate(-50%,-50%);
+    font-size: 90px;
+    opacity: 0.1;
+    z-index: 1;
+}
+
+.resume-content {
+    z-index: 2;
+    position: absolute;
+    left: 50%;
+    top: 65%;
+    transform: translateY(-50%);
+    width: 50%;
+}
+
+.resume-number {
+    color: $secondary;
+    font-size: 50px;
+    font-weight: bold;
+}
+
+.resume-label {
+    font-size: 20px;
+    font-weight: bold;
+    color: #d9d9d9;
+}
\ No newline at end of file
diff --git a/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.ts b/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..29626283e0abe0f41a2e31eac15b848219f24334
--- /dev/null
+++ b/src/frontend/app/home/dashboard/tile/view/resume/tile-view-resume.component.ts
@@ -0,0 +1,26 @@
+import { Component, OnInit, AfterViewInit, Input } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { TranslateService } from '@ngx-translate/core';
+import { AppService } from '@service/app.service';
+
+@Component({
+    selector: 'app-tile-view-resume',
+    templateUrl: 'tile-view-resume.component.html',
+    styleUrls: ['tile-view-resume.component.scss'],
+})
+export class TileViewResumeComponent implements OnInit, AfterViewInit {
+
+    @Input() countResources: any[];
+    @Input() icon: string = '';
+    @Input() resourceLabel: string = '';
+
+    constructor(
+        public translate: TranslateService,
+        public http: HttpClient,
+        public appService: AppService,
+    ) { }
+
+    ngOnInit(): void { }
+
+    ngAfterViewInit(): void { }
+}
diff --git a/src/frontend/app/home/home.component.html b/src/frontend/app/home/home.component.html
index 3f9ae528c795b440c54c8477e3c281adfdaf90b8..5a4539c7df8d4c3c4799601f19b2eb65c6a67a62 100644
--- a/src/frontend/app/home/home.component.html
+++ b/src/frontend/app/home/home.component.html
@@ -25,7 +25,8 @@
         </div>
         <div class="container" [class.fullContainer]="appService.getViewMode()">
             <div class="container-content">
-                <mat-tab-group>
+                <app-dashboard></app-dashboard>
+                <!--<mat-tab-group>
                     <mat-tab *ngIf="homeData !== undefined && homeData.isLinkedToMaarchParapheur">
                         <ng-template matTabLabel>
                             <span [class.noDoc]="nbMpDocs === 0" matBadge="{{nbMpDocs}}"
@@ -39,7 +40,6 @@
                         </div>
                         <table *ngIf="!loading" mat-table [dataSource]="dataSource" matSort matSortActive="res_id"
                             matSortDisableClear matSortDirection="asc" style="width:100%;table-layout: fixed;">
-                            <!-- Number Column -->
                             <ng-container matColumnDef="res_id">
                                 <td class="first_col" mat-cell *matCellDef="let row"
                                     [ngStyle]="{'width': appService.getViewMode() ? '30%' : '15%'}">
@@ -112,7 +112,7 @@
                                 style="cursor:pointer;"></tr>
                         </table>
                     </mat-tab>
-                </mat-tab-group>
+                </mat-tab-group>-->
             </div>
         </div>
     </mat-sidenav-content>
diff --git a/src/frontend/app/home/home.component.scss b/src/frontend/app/home/home.component.scss
index 0efda6154a3fc5e2f795755478cb378febea4aee..910844adf8430ad7da1b2185a3281de216b10aa3 100644
--- a/src/frontend/app/home/home.component.scss
+++ b/src/frontend/app/home/home.component.scss
@@ -1,5 +1,10 @@
 @import '../../css/vars.scss';
 
+.container-content {
+    background: none;
+    box-shadow: none;
+}
+
 .first_col {
     position:relative;
     text-align:center;