diff --git a/src/App.php b/src/App.php
index 8360a69451cd7430f637382fc24f55f7dd45c3d4..6a15a0ff76bcbc994e41a6a2219bef44c7971572 100644
--- a/src/App.php
+++ b/src/App.php
@@ -40,6 +40,7 @@ class App
     $this->router->addRoute('/register', RegisterController::class);
     $this->router->addRoute('/films', FilmController::class);
     $this->router->addRoute('/film-details', FilmController::class);
+    $this->router->addRoute('/film-polling', FilmController::class);
     $this->router->addRoute('/search', FilmController::class);
     $this->router->addRoute('/add-film', CreateFilmController::class);
     $this->router->addRoute('/update-film', UpdateFilmController::class);
diff --git a/src/controllers/FilmController.php b/src/controllers/FilmController.php
index 29aca7f26ea5e88f0dad195f6ed2b7a5477c3dde..ed0d2d19efd83961a8d6e4370b106e991790e4e7 100644
--- a/src/controllers/FilmController.php
+++ b/src/controllers/FilmController.php
@@ -27,21 +27,35 @@ class FilmController extends BaseController
     protected function get($urlParams)
     {
         $uri = Request::getURL();
-        $page = (isset($_GET['page']) and (int) $_GET['page'] >= 1) ? $_GET['page'] : 1;
-        $word = $_GET['q'] ?? "";
-        $genre = $_GET['genre'] ?? 'all';
-        $released_year = $_GET['year'] ?? 'all';
-        $isDesc = $_GET['sort'] ?? "asc";
-        $order = $_GET['order'] ?? 'title';
-        $data = $this->service->searchAndFilter($word, $order, $isDesc, $genre, $released_year, $page);
-        $row_count = $this->service->countRowBySearchAndFilter($word, $genre, $released_year);
+        
+        if ($uri == "/films" || $uri == '/search') {
+            $page = (isset($_GET['page']) and (int) $_GET['page'] >= 1) ? $_GET['page'] : 1;
+            $word = $_GET['q'] ?? "";
+            $genre = $_GET['genre'] ?? 'all';
+            $released_year = $_GET['year'] ?? 'all';
+            $isDesc = $_GET['sort'] ?? "asc";
+            $order = $_GET['order'] ?? 'title';
+            $data = $this->service->searchAndFilter($word, $order, $isDesc, $genre, $released_year, $page);
+            $row_count = $this->service->countRowBySearchAndFilter($word, $genre, $released_year);
 
-        if ($uri == "/films") {
-            $data['genres'] = $this->service->getAllCategoryValues('genre');
-            $data['released_years'] = $this->service->getAllCategoryValues('released_year');
-            $data['total_page'] = ceil($row_count / 10);
+            if ($uri == '/films') {
+                $data['genres'] = $this->service->getAllCategoryValues('genre');
+                $data['released_years'] = $this->service->getAllCategoryValues('released_year');
+                $data['total_page'] = ceil($row_count / 10);
+                parent::render($data, 'films', "layouts/base");
+            }
+            else {
+                $films = [];
+    
+                foreach ($data['films'] as $film) {
+                    $films[] = $film->toResponse();
+                }
+                $data['films'] = $films;
+                $data['total_page'] = ceil($row_count / 10);
+    
+                response::send_json_response($data);
+            }
 
-            parent::render($data, 'films', "layouts/base");
         } elseif ($uri == '/film-details') {
             $data['film'] = $this->service->getById($_GET['film_id']);
             if (isset($_SESSION['user_id'])) {
@@ -51,16 +65,15 @@ class FilmController extends BaseController
             }
 
             parent::render($data, 'film-details', "layouts/base");
-        } else {
+        } else if ($uri == '/film-polling') {
+            $isInitialSync = $_GET['initial'] ?? 'no';
+            error_log($isInitialSync);
+            $data = $this->service->polling($isInitialSync);
             $films = [];
-
-            foreach ($data['films'] as $film) {
+            foreach ($data as $film) {
                 $films[] = $film->toResponse();
             }
-            $data['films'] = $films;
-            $data['total_page'] = ceil($row_count / 10);
-
-            response::send_json_response($data);
+            response::send_json_response($films);
         }
     }
 
diff --git a/src/controllers/UpdateFilmController.php b/src/controllers/UpdateFilmController.php
index 3359157f121309be481259c6875f405e0d47a9f1..e39aa8817598144052c36009219b1cd9114d3f9f 100644
--- a/src/controllers/UpdateFilmController.php
+++ b/src/controllers/UpdateFilmController.php
@@ -165,6 +165,9 @@ class UpdateFilmController extends BaseController
         }
 
         // Call service
+        $currentDateTime = new \DateTime('now', new \DateTimeZone('UTC'));
+        $formattedDateTime = $currentDateTime->format("Y-m-d H:i:s"); 
+        $data["last_updated"] = $formattedDateTime;
         $filmModel = new FilmModel();
         $filmModel->constructFromArray($data);
         $response = $this->service->update($filmModel);
diff --git a/src/services/FilmService.php b/src/services/FilmService.php
index eb143a71d03508ec93bfc03d6b6e2bb2e49b6847..1ae946efc3d370dbe5d8cc779eeb386eebff3888 100644
--- a/src/services/FilmService.php
+++ b/src/services/FilmService.php
@@ -29,6 +29,8 @@ class FilmService extends BaseService
 
   public function add($image_path, $trailer_path, $title, $released_year, $director, $description, $cast, $genre)
   {
+    $currentDateTime = new \DateTime('now', new \DateTimeZone('UTC'));
+    $formattedDateTime = $currentDateTime->format("Y-m-d H:i:s"); 
     $film = new FilmModel();
     $film
       ->set('image_path', $image_path)
@@ -39,7 +41,8 @@ class FilmService extends BaseService
       ->set('trailer_path', $trailer_path)
       ->set('description', $description)
       ->set('cast', $cast)
-      ->set('genre', $genre);
+      ->set('genre', $genre)
+      ->set('last_updated', $formattedDateTime);
 
     $id = $this->repository->insert($film, array(
       'image_path' => PDO::PARAM_STR,
@@ -50,6 +53,7 @@ class FilmService extends BaseService
       'description' => PDO::PARAM_STR,
       'cast' => PDO::PARAM_STR,
       'genre' => PDO::PARAM_STR,
+      'last_updated'=> PDO::PARAM_STR,
     ));
 
     $response = $this->repository->getById($id);
@@ -81,6 +85,7 @@ class FilmService extends BaseService
     $arrParams['description'] = PDO::PARAM_STR;
     $arrParams['cast'] = PDO::PARAM_STR;
     $arrParams['genre'] = PDO::PARAM_STR;
+    $arrParams['last_updated'] = PDO::PARAM_STR;
 
     return $this->repository->update($film, $arrParams);
   }
@@ -105,6 +110,17 @@ class FilmService extends BaseService
     return $data;
   }
 
+  public function polling($isInitialSync)
+  {
+    $response = $this->repository->getAllBySearchAndFilter(null, null, null, null, null, null, null, $isInitialSync);
+    $films = [];
+    foreach ($response as $resp) {
+      $film = new FilmModel();
+      $films[] = $film->constructFromArray($resp);
+    }
+    return $films;
+  }
+
   public function getAllCategoryValues($category)
   {
     return $this->repository->getAllCategoryValues($category);