diff --git a/app/Views/home/home.php b/app/Views/home/home.php
index ebfc812b8de3fc6cb9a87df696f2481ea8f5e59c..4a14a80a4aa40e3487323bc21dcb09efddd83009 100644
--- a/app/Views/home/home.php
+++ b/app/Views/home/home.php
@@ -25,7 +25,14 @@
     
     // Get search results or all events 
     $searchResults = $eventController->searchEvents($searchQuery, $sortKey, $minStock);
-    $events = $eventController->paginateEvents($searchResults);
+    if (!isset($_GET['page'])) {
+        $_GET['page'] = 1;
+    }
+    $paginationData = $eventController->paginateEvents($searchResults,$_GET['page']);
+    $events = $paginationData['events'];
+    $totalEvents = $paginationData['total'];
+    $currentPage = $paginationData['page'];
+    $maxPage = $paginationData['maxpage'];
 ?>
 
 <!DOCTYPE html>
@@ -42,6 +49,7 @@
     <link rel="stylesheet" type="text/css" href="/../../styles/container.css">
     <link rel="stylesheet" type="text/css" href="/../../styles/auth.css">
     <link rel="stylesheet" type="text/css" href="/../../styles/dropdown.css">
+    <link rel="stylesheet" type="text/css" href="/../../styles/pagination.css">
 </head>
 
 <body>
@@ -52,30 +60,37 @@
         <div class="column">
             <button onclick="openCreateEventPage()" id="createEventBtn" class="admin">Create Event</button>
             <div class="row">
-                <input type="text" placeholder="Search.." value="<?= htmlspecialchars($searchQuery)?>" style="width:250%;">
-                <?php if (!empty($searchQuery) || !empty($minStock) || !empty($sortKey)) : ?>
-                    <select name="sort" class="styled-select">
-                        <option value="" <?= empty($sortKey) ? 'selected' : '' ?>>No Sorting</option>
-                        <option value="name" <?= $sortKey === 'name' ? 'selected' : '' ?>>Sort by Name</option>
-                        <option value="location" <?= $sortKey === 'location' ? 'selected' : '' ?>>Sort by Location</option>
-                    </select>
-                <?php else : ?>
-                    <select name="sort" class="styled-select">
-                        <option value="" selected>No Sorting</option>
-                        <option value="name">Sort by Name</option>
-                        <option value="location">Sort by Location</option>
-                    </select>
-                <?php endif; ?>
+                <input type="text" id="searchInput" placeholder="Search.." value="<?= htmlspecialchars($searchQuery)?>" style="width:250%;">
+                <select name="sort" id="sortSelect" class="styled-select">
+                    <option value="" <?= empty($sortKey) ? 'selected' : '' ?>>No Sorting</option>
+                    <option value="name" <?= $sortKey === 'name' ? 'selected' : '' ?>>Sort by Name</option>
+                    <option value="location" <?= $sortKey === 'location' ? 'selected' : '' ?>>Sort by Location</option>
+                </select>
                 <!-- Change input type to "text" for minimum stock -->
-                <input type="text" name="min_stock" placeholder="Min Stock" value="<?= htmlspecialchars($minStock) ?>">
+                <input type="text" id="minStockInput" name="min_stock" placeholder="Min Stock" value="<?= htmlspecialchars($minStock) ?>">
                 <button type="submit" id="search-button">Search</button>
             </div>
+            
             <?php foreach ($events as $event) :    
                 include '../template/event.php';
             endforeach;?>
+
+            <div class="pagination">
+                <?php if ($currentPage > 1) : ?>
+                    <a href="?page=<?= $currentPage - 1 ?>">Previous</a>
+                <?php endif; ?>
+                
+                <?php for ($i = 1; $i <= $maxPage; $i++) : ?>
+                    <a href="?page=<?= $i ?>" <?= ($i == $currentPage) ? 'class="active"' : '' ?>><?= $i ?></a>
+                <?php endfor; ?>
+        
+                <?php if ($currentPage < $maxPage) : ?>
+                    <a href="?page=<?= $currentPage + 1 ?>">Next</a>
+                <?php endif; ?>
+            </div>
         </div>
     </div>
-
+    
     <?php include '../template/footer.php';?>
 
     <script defer>
@@ -87,8 +102,46 @@
         function openCreateEventPage() {
             window.location.href = "/app/Views/event/create.php";
         }
+
+        let debounceTimer;
+        let searchInput = document.getElementById('searchInput');
+        let cursorPosition = 0;
+
+        // Initialize the cursor position
+        searchInput.addEventListener('input', function () {
+            cursorPosition = this.selectionStart;
+        });
+
+        function debounceSearch() {
+            clearTimeout(debounceTimer);
+            debounceTimer = setTimeout(function () {
+                // Get the search input values
+                const searchQuery = searchInput.value;
+                const minStock = document.getElementById('minStockInput').value;
+                const sortKey = document.getElementById('sortSelect').value;
+
+                // Construct the URL with search, min_stock, and sort parameters
+                const url = `/app/Views/home/home.php?search=${encodeURIComponent(searchQuery)}&min_stock=${encodeURIComponent(minStock)}&sort=${encodeURIComponent(sortKey)}`;
+
+                // Redirect to the updated URL
+                window.location.href = url;
+
+                // Restore focus and cursor position
+                searchInput.focus();
+                searchInput.setSelectionRange(cursorPosition, cursorPosition);
+            }, 500); // Adjust the debounce delay as needed (in milliseconds)
+        }
+
+        // Attach the debounce function to the search input's input event
+        searchInput.addEventListener('input', debounceSearch);
+
+        // Attach an event listener to the sort dropdown
+        document.getElementById('sortSelect').addEventListener('change', function () {
+            // Trigger the debounceSearch function when the sorting option changes
+            debounceSearch();
+        });
     </script>
-    <script src="js/script.js"></script>
+
 </body>
 
 </html>