diff --git a/app/Http/Controllers/Admin/HomeController.php b/app/Http/Controllers/Admin/HomeController.php
index 29861296e004a780d7c4548784cf5ec6ba96134a..ff5529d25461dc1a869bdc2c24dddf6b1a39ed02 100644
--- a/app/Http/Controllers/Admin/HomeController.php
+++ b/app/Http/Controllers/Admin/HomeController.php
@@ -4,6 +4,7 @@
 
 use App\Http\Controllers\Controller;
 use Carbon\Carbon;
+use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Route;
 use Illuminate\Support\Str;
 use Illuminate\View\View;
@@ -11,8 +12,13 @@
 
 class HomeController extends Controller
 {
-    public function index(): View
+    public function index(Request $request): View
     {
+        $request->validate([
+            'start_date' => 'nullable|date',
+            'end_date' => 'nullable|date',
+        ]);
+
         $publicRoutes = collect(Route::getRoutes()->getRoutes())
             ->filter(fn ($route) => ! Str::startsWith($route->uri, ['admin', 'api']) && ! empty($route->uri) && $route->uri !== '/')
             ->pluck('uri');
@@ -39,15 +45,47 @@ public function index(): View
         $totalVisitsPastThirtyDays = $visits->where('created_at', '>=', $now->copy()->subDays(30))->count();
         $totalVisitsAllTime = $visits->count();
 
-        $visitsPerDay = $visits->groupBy(fn ($visit) => Carbon::parse($visit->created_at)->format('Y-m-d'))
+        $periods = [
+            now()->format('Y-m-d') => 'Aujourd\'hui',
+            now()->subDay()->format('Y-m-d') => 'Hier',
+            now()->subDays(7)->format('Y-m-d') => 'Les 7 derniers jours',
+            now()->subDays(30)->format('Y-m-d') => 'Les 30 derniers jours',
+            now()->startOfMonth()->format('Y-m-d') => 'Ce mois-ci',
+            $visits->min('created_at')->format('Y-m-d') => 'Depuis le début',
+        ];
+
+        $startDate = $request->input('start_date', now()->subDays(30)->format('Y-m-d'));
+        $dateEnd = $request->input('end_date', now()->format('Y-m-d'));
+
+        $selectedPeriod = $startDate;
+
+        // Now, all the stats are calculated for the selected period
+
+        /*$visitsPerDay = $visits->groupBy(fn ($visit) => Carbon::parse($visit->created_at)->format('Y-m-d'))
+            ->map(fn ($group) => ['date' => $group->first()->created_at->format('Y-m-d'), 'count' => $group->count()])
+            ->values();*/
+        $visitsPerDay = $visits->where('created_at', '>=', $startDate)
+            ->where('created_at', '<=', $dateEnd)
+            ->groupBy(fn ($visit) => Carbon::parse($visit->created_at)->format('Y-m-d'))
             ->map(fn ($group) => ['date' => $group->first()->created_at->format('Y-m-d'), 'count' => $group->count()])
             ->values();
 
-        $visitsByCountry = $visits->groupBy('country_code')
+        /*$visitsByCountry = $visits->groupBy('country_code')
+            ->map(fn ($group, $country) => ['country_code' => $country, 'count' => $group->count()])
+            ->values();*/
+        $visitsByCountry = $visits->where('created_at', '>=', $startDate)
+            ->where('created_at', '<=', $dateEnd)
+            ->groupBy('country_code')
             ->map(fn ($group, $country) => ['country_code' => $country, 'count' => $group->count()])
             ->values();
 
-        $mostVisitedPages = $visits->groupBy('url')
+        /*$mostVisitedPages = $visits->groupBy('url')
+            ->map(fn ($group, $url) => ['url' => $url, 'count' => $group->count()])
+            ->sortByDesc('count')
+            ->values();*/
+        $mostVisitedPages = $visits->where('created_at', '>=', $startDate)
+            ->where('created_at', '<=', $dateEnd)
+            ->groupBy('url')
             ->map(fn ($group, $url) => ['url' => $url, 'count' => $group->count()])
             ->sortByDesc('count')
             ->values();
@@ -60,6 +98,8 @@ public function index(): View
             'visitsPerDay' => $visitsPerDay,
             'visitsByCountry' => $visitsByCountry,
             'mostVisitedPages' => $mostVisitedPages,
+            'periods' => $periods,
+            'selectedPeriod' => $selectedPeriod,
         ]);
     }
 }
diff --git a/resources/js/pages/admin/home.js b/resources/js/pages/admin/home.js
index f6c7de90dd8ad0f688bcb885d1d3121f481aa37b..b431283491da6011be352ee4a65d5003cdadb9da 100644
--- a/resources/js/pages/admin/home.js
+++ b/resources/js/pages/admin/home.js
@@ -7,4 +7,12 @@ const app = createApp();
 app.component('visits-per-day-chart', VisitsPerDayChart);
 app.component('visits-by-country-chart', VisitsByCountryChart);
 
-app.mount('#admin-home')
\ No newline at end of file
+app.mount('#admin-home')
+
+const statsSelect = document.getElementById('statsSelect');
+statsSelect.addEventListener('change', () => {
+    let startDate = statsSelect.value;
+    let endDate = new Date().toISOString().split('T')[0];
+
+    window.location.href = `?start_date=${startDate}&end_date=${endDate}`;
+});
\ No newline at end of file
diff --git a/resources/views/admin/home.blade.php b/resources/views/admin/home.blade.php
index 6f223d4769b9f35f29e023bd7738f1817894ad6a..2ecf3e23d8592b7dd83e41a2ac5cabb1299f823e 100644
--- a/resources/views/admin/home.blade.php
+++ b/resources/views/admin/home.blade.php
@@ -4,7 +4,7 @@
     <div class="container" id="admin-home">
         <h3 class="mb-4">Statistiques des Visites uniques</h3>
 
-        <div class="grid g-4 mb-4">
+        <div class="grid mb-4">
             <!-- Total des visites -->
             <div class="g-col-12 g-col-md-6 g-col-lg-3">
                 <div class="card text-center">
@@ -40,7 +40,14 @@
             </div>
         </div>
 
-        <div class="row g-4 mb-4">
+        <div class="grid mb-4">
+            <div class="g-col-12 g-col-md-6 g-col-lg-3">
+                <x-bs.select id="statsSelect" label="Période de statistiques" name="period"
+                             :options="$periods" :selected="$selectedPeriod"/>
+            </div>
+        </div>
+
+        <div class="row mb-4">
             <!-- Visites par jour -->
             <div class="g-col-md-6 mb-4">
                 <div class="card">