diff --git a/api/auth/register.php b/api/auth/register.php
index 494523f4a72a03001534196a4346c84fb9a5cf04..66a01066e2a37b542811dcb7e3ca2a7b9e886a15 100644
--- a/api/auth/register.php
+++ b/api/auth/register.php
@@ -43,7 +43,6 @@ if (isset($_POST['username']) && isset($_POST['password']) && isset($_POST['emai
   $email = $_POST['email'];
   $rows = $user_model->register(array('username' => $username, 'password' => $password, 'email' => $email));
   $language_rows = $language_model->getLanguageCount();
-  $language_rows = intval($language_rows['count']);
   for ($i = 1; $i <= $language_rows; $i++) {
     $progress_rows = $progress_model->initialize(array('user_id' => $rows, 'language_id' => $i));
   }
diff --git a/app/controllers/Admin.php b/app/controllers/Admin.php
index 04fb5de05fce2a8e2e742f590849f27dda0e4375..717464eb42b71517526a6c62b0db07d1e0f2a62e 100644
--- a/app/controllers/Admin.php
+++ b/app/controllers/Admin.php
@@ -7,19 +7,19 @@ class Admin extends Controller {
   }
 
   public function dashboard() {
-    if (!(isset($_SESSION['username']) && !empty($_SESSION['username']))) {
+    if (!(isset($_SESSION['username']) && !empty($_SESSION['username'])) || $_SESSION['is_admin']==false) {
       header('Location: /login');
+      exit();
     }
 
     $data["pageTitle"] = "Admin dashboard";
     $data["username"] = $_SESSION['username'];
+    $data["languageCount"] = $this->model("LanguageModel")->getLanguageCount();
+    $data["moduleCount"] = $this->model("ModuleModel")->getModuleCount();
     // ini masih hardcode
-    // $data["numOfLanguage"] = $this->model('LanguageModel')->getLanguageCount();
-    $data["numOfLanguage"] = 4;
-    $data["numOfModules"] = 12; 
-    $data["numOfVideos"] = 60; 
-    $data["numOfUsers"] = 3; 
+    $data["videoCount"] = 60; 
     //
+    $data["userCount"] = $this->model("UserModel")->getUserCount();; 
 
     $this->view('header/index', $data);
     $this->view('navbar/index');
@@ -28,8 +28,9 @@ class Admin extends Controller {
   }
 
   public function manage($languageName = null, $moduleName = null) {
-    if (!(isset($_SESSION['username']) && !empty($_SESSION['username']))) {
+    if (!(isset($_SESSION['username']) && !empty($_SESSION['username'])) || $_SESSION['is_admin']=false) {
       header('Location: /login');
+      exit();
     }
 
     if (isset($languageName) && !empty($languageName) && isset($moduleName) && !empty($moduleName)) {
diff --git a/app/init.php b/app/init.php
index 3fd79f7e3ef7d2d432476aa6b1454dafcaa7aaa9..96dfb13632f74ef39b662872ab7054eaea033280 100644
--- a/app/init.php
+++ b/app/init.php
@@ -1,4 +1,5 @@
 <?php
 
 require_once 'core/App.php';
-require_once 'core/Controller.php';
\ No newline at end of file
+require_once 'core/Controller.php';
+require_once 'core/Database.php';
\ No newline at end of file
diff --git a/app/models/LanguageModel.php b/app/models/LanguageModel.php
index 9fba1b32a5f7c7a70b40d3e6e859526a5c365cc3..a7d4649c31757e76270162f027de05fa27b5fd57 100644
--- a/app/models/LanguageModel.php
+++ b/app/models/LanguageModel.php
@@ -1,7 +1,5 @@
 <?php
 
-// require_once "../core/Database.php";
-
 class LanguageModel
 {
   private $table = 'languages';
@@ -15,6 +13,7 @@ class LanguageModel
   public function getLanguageCount()
   {
     $this->db->query('SELECT COUNT(*) FROM ' . $this->table);
-    return $this->db->single();
+    $temp = $this->db->single(); 
+    return intval($temp["count"]);
   }
 }
\ No newline at end of file
diff --git a/app/models/ModuleModel.php b/app/models/ModuleModel.php
new file mode 100644
index 0000000000000000000000000000000000000000..eb80743b13ac4ed4283abfab912458ee4c8b451f
--- /dev/null
+++ b/app/models/ModuleModel.php
@@ -0,0 +1,19 @@
+<?php
+
+class ModuleModel
+{
+  private $table = 'modules';
+  private $db;
+
+  public function __construct()
+  {
+    $this->db = new Database();
+  }
+
+  public function getModuleCount()
+  {
+    $this->db->query('SELECT COUNT(*) FROM ' . $this->table);
+    $temp = $this->db->single(); 
+    return intval($temp["count"]);
+  }
+}
\ No newline at end of file
diff --git a/app/models/UserModel.php b/app/models/UserModel.php
index 2f7ad36c29919f8ffb02cd2d9e80595d4781a281..caed36346afe243a3efd3d6476f4c44c529f1754 100644
--- a/app/models/UserModel.php
+++ b/app/models/UserModel.php
@@ -53,9 +53,10 @@ class UserModel
     return $this->db->rowCount();
   }
 
-  public function getNumOfUsers()
+  public function getUserCount()
   {
-    $this->db->query('SELECT * FROM users');
-    return $this->db->rowCount();
+    $this->db->query('SELECT COUNT(*) FROM users');
+    $temp = $this->db->single(); 
+    return intval($temp["count"]);
   }
 }
\ No newline at end of file
diff --git a/app/views/admin/dashboard/index.php b/app/views/admin/dashboard/index.php
index ceb08e942ac858c4bda163ec52f9a954ce2849d6..bee0015d7a9afb635555041d59d201038f1ca721 100644
--- a/app/views/admin/dashboard/index.php
+++ b/app/views/admin/dashboard/index.php
@@ -16,19 +16,19 @@
 
       <div class="entity-card">
         <span class="font-bold text-md">Language</span>
-        <span class="font-reg text-sm"><?= $data["numOfLanguage"] ?> Entities</span>
+        <span class="font-reg text-sm"><?= $data["languageCount"] ?> Records</span>
       </div>
       <div class="entity-card">
         <span class="font-bold text-md">Modules</span>
-        <span class="font-reg text-sm"><?= $data["numOfModules"] ?> Entities</span>
+        <span class="font-reg text-sm"><?= $data["moduleCount"] ?> Records</span>
       </div>
       <div class="entity-card">
         <span class="font-bold text-md">Videos</span>
-        <span class="font-reg text-sm"><?= $data["numOfVideos"] ?> Entities</span>
+        <span class="font-reg text-sm"><?= $data["videoCount"] ?> Records</span>
       </div>
       <div class="entity-card">
         <span class="font-bold text-md">Users</span>
-        <span class="font-reg text-sm"><?= $data["numOfUsers"] ?> Entities</span>
+        <span class="font-reg text-sm"><?= $data["userCount"] ?> Records</span>
       </div>
     </div>
 
diff --git a/index.php b/index.php
index e4b441a806d0c90be00d610172cb0ed74fddf848..45e65abfeffcd4f15b4fd9f9072fb4ee370acd1e 100644
--- a/index.php
+++ b/index.php
@@ -1,5 +1,6 @@
 <?php
 if(!session_id()) session_start();
 
+require_once 'config/config.php';
 require_once 'app/init.php';
 $app = new App;
\ No newline at end of file
diff --git a/public/css/register.css b/public/css/register.css
index 102d462177928fc721c595ffeaa96088a52123a9..72744005cea67464db0d260c481a6ea81ba6cf8a 100644
--- a/public/css/register.css
+++ b/public/css/register.css
@@ -218,6 +218,7 @@
 #username-error, #email-error, #password-error, #confirm-password-error {
   color: red;
   font-size: 14px;
+  position: absolute;
 }
 
 @media (max-width: 1000px) {