diff --git a/src/app/controllers/User/GetFollowsController.php b/src/app/controllers/User/GetFollowsController.php
index 89f9e7c6612c18fdac84a7eb824ed88a998997af..bae80139286a7ccce5262b8a7f1e5c4580c2c4d0 100644
--- a/src/app/controllers/User/GetFollowsController.php
+++ b/src/app/controllers/User/GetFollowsController.php
@@ -3,7 +3,7 @@
 
 
 require_once SRC_ROOT_PATH . "/app/baseclasses/BaseController.php";
-require_once SRC_ROOT_PATH . "/app/models/GetPostModel.php";
+require_once SRC_ROOT_PATH . "/app/models/GetAnalyticDataModel.php";
 
 class GetFollowsController extends BaseController{
     protected static $instance;
@@ -12,14 +12,15 @@ class GetFollowsController extends BaseController{
     }
     public static function getInstance(){
         if(!isset(self::$instance)){
-            self::$instance = new static(GetPostModel::getInstance());
+            self::$instance = new static(GetAnalyticDataModel::getInstance());
         }
         return self::$instance;
     }
     
     public function get($urlParams){
-        $idowner = $urlParams[0];
-        $data = $this->srv->getFollows($idowner);
+        $username = $urlParams[0];
+        $date = $urlParams[1];
+        $data = $this->srv->getFollows($username, $date);
         if($data!=null){
             header('Content-Type: application/json');
             return json_encode(array(
diff --git a/src/app/controllers/User/GetDataPostController.php b/src/app/controllers/User/GetPostCountController.php
similarity index 74%
rename from src/app/controllers/User/GetDataPostController.php
rename to src/app/controllers/User/GetPostCountController.php
index 068f463e6ff22a5e1b086114ac9866c40f1b81c1..b865666bac977079813f7a5d64c24f003c06a1fa 100644
--- a/src/app/controllers/User/GetDataPostController.php
+++ b/src/app/controllers/User/GetPostCountController.php
@@ -3,23 +3,23 @@
 
 
 require_once SRC_ROOT_PATH . "/app/baseclasses/BaseController.php";
-require_once SRC_ROOT_PATH . "/app/models/GetPostModel.php";
+require_once SRC_ROOT_PATH . "/app/models/GetAnalyticDataModel.php";
 
-class GetDataPostController extends BaseController{
+class GetPostCountController extends BaseController{
     protected static $instance;
     private function __construct($srv){
         parent::__construct($srv);
     }
     public static function getInstance(){
         if(!isset(self::$instance)){
-            self::$instance = new static(GetPostModel::getInstance());
+            self::$instance = new static(GetAnalyticDataModel::getInstance());
         }
         return self::$instance;
     }
     
     public function get($urlParams){
-        $idowner = $urlParams[0];
-        $data = $this->srv->getDataPostByOwner($idowner);
+        $username = $urlParams[0];
+        $data = $this->srv->getPostCountByOwner($username);
         if($data!=null){
             header('Content-Type: application/json');
             return json_encode(array(
diff --git a/src/app/controllers/User/GetDataPostIDController.php b/src/app/controllers/User/GetPostDataController.php
similarity index 72%
rename from src/app/controllers/User/GetDataPostIDController.php
rename to src/app/controllers/User/GetPostDataController.php
index 66252ead470f16f6d21226b5d48c04e580c9f460..572a763dae3c3d5a41c3987b4bd5028324abb0e7 100644
--- a/src/app/controllers/User/GetDataPostIDController.php
+++ b/src/app/controllers/User/GetPostDataController.php
@@ -3,24 +3,25 @@
 
 
 require_once SRC_ROOT_PATH . "/app/baseclasses/BaseController.php";
-require_once SRC_ROOT_PATH . "/app/models/GetPostModel.php";
+require_once SRC_ROOT_PATH . "/app/models/GetAnalyticDataModel.php";
 
-class GetDataPostIDController extends BaseController{
+class GetPostDataController extends BaseController{
     protected static $instance;
     private function __construct($srv){
         parent::__construct($srv);
     }
     public static function getInstance(){
         if(!isset(self::$instance)){
-            self::$instance = new static(GetPostModel::getInstance());
+            self::$instance = new static(GetAnalyticDataModel::getInstance());
         }
         return self::$instance;
     }
     
     public function get($urlParams){
-        $idowner = $urlParams[0];
+        $username = $urlParams[0];
         $idpost = $urlParams[1];
-        $data = $this->srv->getDataPostIDByOwner($idowner,$idpost);
+        $date = $urlParams[2];
+        $data = $this->srv->getDataPostIDByOwner($username,$idpost,$date);
         if($data!=null){
             header('Content-Type: application/json');
             return json_encode(array(
diff --git a/src/app/models/GetAnalyticDataModel.php b/src/app/models/GetAnalyticDataModel.php
new file mode 100644
index 0000000000000000000000000000000000000000..9362d72c80dab95f585c7651e005cb01fda7f165
--- /dev/null
+++ b/src/app/models/GetAnalyticDataModel.php
@@ -0,0 +1,100 @@
+<?php
+
+require_once SRC_ROOT_PATH . "/app/baseclasses/BaseModel.php";
+require_once SRC_ROOT_PATH . "/app/core/PDOHandler.php";
+
+class GetAnalyticDataModel
+{
+    protected static $instance;
+
+
+    public static function getInstance()
+    {
+        if (!isset(self::$instance)) {
+            self::$instance = new static();
+        }
+        return self::$instance;
+    }
+
+    public function getFollows($username, $date){
+        try{
+            $db = PDOHandler::getInstance()->getPDO();
+            $sql = "SELECT COUNT(*) AS total from follows f INNER JOIN users u ON followed_user_id=id WHERE u.username='$username' AND f.created_at <= '$date'::date";
+            $result = $db->query($sql);
+            if($result){
+                $data = $result->fetchAll(PDO::FETCH_ASSOC);
+                return $data;
+            }
+            else{
+                return null;
+            }
+        }catch(Exception $e){
+            echo $e->getMessage();
+            return null;
+        }
+    }
+    public function getPostCountByOwner($username){
+        try{
+            $db = PDOHandler::getInstance()->getPDO();
+            $sql = "SELECT COUNT(*) count FROM posts p LEFT JOIN users u ON owner_id=id WHERE username='$username' AND p.refer_type IS NULL";
+            $result = $db->query($sql);
+            // $sql2 = "SELECT DATE(created_at) as day, COUNT(post_id) as total from posts WHERE refer_post_owner=$owner AND refer_type='Reply' GROUP BY day ORDER BY day DESC LIMIT 7";
+            // $result2 = $db->query($sql2);
+            // $sql3 = "SELECT DATE(created_at) as day, COUNT(post_id) as total from likes WHERE post_owner_id=$owner GROUP BY day ORDER BY day DESC LIMIT 7";
+            // $result3 = $db->query($sql3);
+            // $sql4 = "SELECT DATE(created_at) as day, SUM(views) as total from posts WHERE owner_id=$owner GROUP BY day ORDER BY day DESC LIMIT 7";
+            // $result4 = $db->query($sql4);
+            if($result){
+                $data = $result->fetchAll(PDO::FETCH_ASSOC);
+                return $data;
+            }
+            else{
+                return null;
+            }
+        }catch(Exception $e){
+            echo $e->getMessage();
+            return null;
+        }
+    }
+    public function getDataPostIDByOwner($username, $post_id, $date){
+        try{
+            $db = PDOHandler::getInstance()->getPDO();
+            $sql = "SELECT id FROM users WHERE username='$username'";
+            $result = $db->query($sql);
+            if(is_null($result)) return null;
+            $owner = $result->fetch(PDO::FETCH_ASSOC);
+            if(!$owner) return null;
+            $owner = $owner['id'];
+
+            $repliesQuery = "SELECT COUNT(*) AS total FROM posts WHERE refer_type='Reply' AND refer_post_owner=$owner AND refer_post=$post_id AND created_at <= '$date'::date";
+            $repliesResult = $db->query($repliesQuery);
+            if(is_null($repliesResult)) return null;
+            $repliescount = $repliesResult->fetch(PDO::FETCH_ASSOC);
+
+            $likesQuery = "SELECT COUNT(*) AS total FROM likes WHERE post_owner_id=$owner AND post_id=$post_id AND created_at <= '$date'::date";
+            $likesResult = $db->query($likesQuery);
+            if(is_null($likesResult)) return null;
+            $likescount = $likesResult->fetch(PDO::FETCH_ASSOC);
+            
+            $viewsResult = "SELECT views AS total FROM posts WHERE owner_id=$owner AND post_id=$post_id";
+            $viewsResult = $db->query($viewsResult);
+            if(is_null($viewsResult)) return null;
+            $viewscount = $viewsResult->fetch(PDO::FETCH_ASSOC);
+            if(!$viewscount) return null;
+            
+            // var_dump($repliescount);
+            // var_dump($likescount);
+            // var_dump($viewscount);
+            return array(
+                'replies' => $repliescount['total'],
+                'likes' => $likescount['total'],
+                'views' => $viewscount['total']
+            );
+        }catch(Exception $e){
+            echo $e->getMessage();
+            return null;
+        }
+    }
+}
+
+?>
\ No newline at end of file
diff --git a/src/app/models/GetPostModel.php b/src/app/models/GetPostModel.php
deleted file mode 100644
index f28ed02f6ff2266ab867436eeeeca0ad647a9bb3..0000000000000000000000000000000000000000
--- a/src/app/models/GetPostModel.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-
-require_once SRC_ROOT_PATH . "/app/baseclasses/BaseModel.php";
-require_once SRC_ROOT_PATH . "/app/core/PDOHandler.php";
-
-class GetPostModel
-{
-    protected static $instance;
-
-
-    public static function getInstance()
-    {
-        if (!isset(self::$instance)) {
-            self::$instance = new static();
-        }
-        return self::$instance;
-    }
-
-    public function getFollows($id){
-        try{
-            $db = PDOHandler::getInstance()->getPDO();
-            $sql = "SELECT DATE(created_at) as day, COUNT(followed_user_id) as total from follows WHERE followed_user_id=$id GROUP BY day ORDER BY day DESC LIMIT 7;";
-            $result = $db->query($sql);
-            if($result){
-                $data = $result->fetchAll(PDO::FETCH_ASSOC);
-                return $data;
-            }
-            else{
-                return null;
-            }
-        }catch(Exception $e){
-            echo $e->getMessage();
-            return null;
-        }
-    }
-    public function getDataPostByOwner($owner){
-        try{
-            $db = PDOHandler::getInstance()->getPDO();
-            $sql = "SELECT p.post_id,u.id,u.username,u.profile_name,p.body,pr.path,p.created_at FROM posts as p LEFT JOIN post_resources as pr ON p.post_id=pr.post_id AND p.owner_id=pr.post_owner_id JOIN users as u ON p.owner_id=u.id WHERE p.owner_id=$owner AND p.refer_type IS NULL ";
-            $result = $db->query($sql);
-            $sql2 = "SELECT DATE(created_at) as day, COUNT(post_id) as total from posts WHERE refer_post_owner=$owner AND refer_type='Reply' GROUP BY day ORDER BY day DESC LIMIT 7";
-            $result2 = $db->query($sql2);
-            $sql3 = "SELECT DATE(created_at) as day, COUNT(post_id) as total from likes WHERE post_owner_id=$owner GROUP BY day ORDER BY day DESC LIMIT 7";
-            $result3 = $db->query($sql3);
-            $sql4 = "SELECT DATE(created_at) as day, SUM(views) as total from posts WHERE owner_id=$owner GROUP BY day ORDER BY day DESC LIMIT 7";
-            $result4 = $db->query($sql4);
-            if($result){
-                if($result2){
-                    if($result3){
-                        if($result4){
-                            $data = $result->fetchAll(PDO::FETCH_ASSOC);
-                            $data2 = $result2->fetchAll(PDO::FETCH_ASSOC);
-                            $data3 = $result3->fetchAll(PDO::FETCH_ASSOC);
-                            $data4 = $result4->fetchAll(PDO::FETCH_ASSOC);
-                            return array(
-                                'post' => $data,
-                                'reply' => $data2,
-                                'likes' => $data3,
-                                'view' => $data4
-                            );
-                        }
-                        else{
-                            return null;
-                        }
-                    }
-                    else{
-                        return null;
-                    }
-                }
-                else{
-                    return null;
-                }
-            }
-            else{
-                return null;
-            }
-        }catch(Exception $e){
-            echo $e->getMessage();
-            return null;
-        }
-    }
-    public function getDataPostIDByOwner($owner,$post_id){
-        try{
-            $db = PDOHandler::getInstance()->getPDO();
-            $sql = "SELECT p.post_id,u.id,u.username,u.profile_name,p.body,pr.path,p.created_at FROM posts as p LEFT JOIN post_resources as pr ON p.post_id=pr.post_id AND p.owner_id=pr.post_owner_id JOIN users as u ON p.owner_id=u.id WHERE p.owner_id=$owner AND p.post_id=$post_id AND p.refer_type IS NULL ";
-            $result = $db->query($sql);
-            $sql2 = "SELECT DATE(created_at) as day, COUNT(post_id) as total from posts WHERE refer_post_owner=$owner AND refer_post=$post_id AND refer_type='Reply' GROUP BY day ORDER BY day DESC LIMIT 7";
-            $result2 = $db->query($sql2);
-            $sql3 = "SELECT DATE(created_at) as day, COUNT(post_id) as total from likes WHERE post_owner_id=$owner AND post_id=$post_id GROUP BY day ORDER BY day DESC LIMIT 7";
-            $result3 = $db->query($sql3);
-            $sql4 = "SELECT DATE(created_at) as day, views as total from posts WHERE owner_id=$owner AND post_id=$post_id";
-            $result4 = $db->query($sql4);
-            if($result){
-                if($result2){
-                    if($result3){
-                        if($result4){
-                            $data = $result->fetch(PDO::FETCH_ASSOC);
-                            $data2 = $result2->fetchAll(PDO::FETCH_ASSOC);
-                            $data3 = $result3->fetchAll(PDO::FETCH_ASSOC);
-                            $data4 = $result4->fetch(PDO::FETCH_ASSOC);
-                            return array(
-                                'post' => $data,
-                                'reply' => $data2,
-                                'likes' => $data3,
-                                'view' => $data4
-                            );
-                        }
-                        else{
-                            return null;
-                        }
-                    }
-                    else{
-                        return null;
-                    }
-                }
-                else{
-                    return null;
-                }
-            }
-            else{
-                return null;
-            }
-        }catch(Exception $e){
-            echo $e->getMessage();
-            return null;
-        }
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/src/index.php b/src/index.php
index 1dc6492697f943e56deb24df1467b3b5033dbc4a..cafcceb4711c92e8ac401e9053354d9172bd8a28 100644
--- a/src/index.php
+++ b/src/index.php
@@ -13,8 +13,8 @@ require_once CONTROLLER_PATH . "/User/LogoutController.php";
 require_once CONTROLLER_PATH . "/User/RegisterController.php";
 require_once CONTROLLER_PATH . "/User/GetAllUserController.php";
 require_once CONTROLLER_PATH . "/User/GetFollowsController.php";
-require_once CONTROLLER_PATH . "/User/GetDataPostController.php";
-require_once CONTROLLER_PATH . "/User/GetDataPostIDController.php";
+require_once CONTROLLER_PATH . "/User/GetPostCountController.php";
+require_once CONTROLLER_PATH . "/User/GetPostDataController.php";
 require_once CONTROLLER_PATH . "/Admin/AdminController.php";
 require_once CONTROLLER_PATH . "/Admin/BanController.php";
 require_once CONTROLLER_PATH . "/Admin/UnbanController.php";
@@ -69,9 +69,9 @@ $router->addHandler("/api/profileuser/*", ProfileUserController::getInstance(),
 $router->addHandler("/api/follow", FollowController::getInstance(), []);
 $router->addHandler("/api/unfollow", UnfollowController::getInstance(), []);
 $router->addHandler("/api/getalluser", GetAllUserController::getInstance(), []);
-$router->addHandler("/api/getdatafollows/*", GetFollowsController::getInstance(), []);
-$router->addHandler("/api/getdatapost/*", GetDataPostController::getInstance(), []);
-$router->addHandler("/api/getdatapostid/*/*", GetDataPostIDController::getInstance(), []);
+$router->addHandler("/api/getdatafollows/*/*", GetFollowsController::getInstance(), []);
+$router->addHandler("/api/getpostcount/*", GetPostCountController::getInstance(), []);
+$router->addHandler("/api/getpostdata/*/*/*", GetPostDataController::getInstance(), []);
 
 
 $router->addHandler("/", HomePage::getInstance(), []);