diff --git a/src/admin/gym/application/index.php b/src/admin/gym/application/index.php
index 735a214154711975d27067502589f43137328a76..7f28c352b4a788468649e61b511f0154f200cce4 100644
--- a/src/admin/gym/application/index.php
+++ b/src/admin/gym/application/index.php
@@ -13,6 +13,7 @@ AuthMiddleware::getInstance()->secureRoute(true);
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <link rel="stylesheet" href="/public/css/style.css">
+    <link rel="stylesheet" href="/public/css/application.css"> 
     <title>Gym Finder App</title>
 </head>
 
@@ -20,25 +21,60 @@ AuthMiddleware::getInstance()->secureRoute(true);
     <div class="app">
         <script>
             const apikey = <?php echo json_encode($_ENV['API_KEY']) ?>;
+            const urlParams = new URLSearchParams(window.location.search);
+            const gymId = urlParams.get("gym_id");
+            const username = urlParams.get("trainer_username");
         </script>
         <?php
         echo NavbarAdmin();
         ?>
         <div class="space"></div>
+        <div class="application-container" id="application-trainer">
+        </div>
+        <div class="space"></div>
+        
+        <div class="first-line-button">
+            <button class="button-filter" id="accept-trainer" onclick="showPopupAcc();">
+                Accept Trainer
+            </button>
+
+            <div class="popup" id="pop-up-accept" onclick="hidePopupAcc();">
+                <div class="popup-content" onclick="event.stopPropagation();">
+                    <div class="popup-title acc" id="pop-up-title-edit-delete">
+                        Do you want to accept this trainer?
+                    </div>
+                    <div class="space2"></div>
+                    <button class="search-filter" onclick="acceptApplication(gymId, username);">Yes</button>
+                    <div class="space3"></div>
+                    <button class="cancel-filter"onclick="hidePopupAcc();">Cancel</button>
+                </div>
+            </div>
 
-        <div class="gym-page-content">
-            <div class="gym-content" id="gym-content">
-                
+            <div class="popup" id="pop-up-reject" onclick="hidePopupRej();">
+                <div class="popup-content" onclick="event.stopPropagation();">
+                    <div class="popup-title" id="pop-up-title-edit-delete">
+                        Do you want to reject this trainer?
+                    </div>
+                    <div class="space2"></div>
+                    <button class="search-filter" onclick="rejectApplication(gymId, username);">Yes</button>
+                    <div class="space3"></div>
+                    <button class="cancel-filter"onclick="hidePopupRej();">Cancel</button>
+                </div>
             </div>
-            <div class="space"></div>
-            
-           
-            <div class="space"></div>
+
+            <button class="button-filter reject" id="reject-trainer" onclick="showPopupRej();">
+                Reject Trainer
+            </button>
         </div>
+
+
     </div>
     <script src="/public/javascript/gym/format_card.js"></script>
     <script src="/public/javascript/gym/trainer_card.js"></script>
     <script src="/public/javascript/gym/application.js"></script>
+    <script>
+        getApplication(gymId, username);
+    </script>
 </body>
 
-</html>
\ No newline at end of file
+</html>
diff --git a/src/admin/gym/index.php b/src/admin/gym/index.php
index 06253149f710a94d60c6473daf12eb75ebfbaf1b..92c4ba126d436e001c8aca67912f9125f3e43a29 100644
--- a/src/admin/gym/index.php
+++ b/src/admin/gym/index.php
@@ -73,6 +73,13 @@ AuthMiddleware::getInstance()->secureRoute(true);
             </div>
             <div class="space"></div>
             
+            <div class="gym-attribute">Trainer List</div>
+            <div class="gym-card-container" id="gym-trainer-list">
+            <div class="space"></div>
+                Loading...
+            </div>
+            <div class="space"></div>
+
             <div class="gym-attribute">Application List</div>
             <div class="gym-card-container" id="gym-application-list">
             <div class="space"></div>
@@ -109,6 +116,9 @@ AuthMiddleware::getInstance()->secureRoute(true);
     <script src="/public/javascript/gym/format_card.js"></script>
     <script src="/public/javascript/gym/trainer_card.js"></script>
     <script src="/public/javascript/gym/application.js"></script>
+    <script>
+        getGymApplication(<?php echo $gym_id ?>);
+    </script>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/src/admin/gym/trainer/index.php b/src/admin/gym/trainer/index.php
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/public/css/application.css b/src/public/css/application.css
new file mode 100644
index 0000000000000000000000000000000000000000..0fe9e07864d9b9ddc6ed25258848334d6bdc1bf5
--- /dev/null
+++ b/src/public/css/application.css
@@ -0,0 +1,52 @@
+.application-container {
+    max-width: 80%;
+    margin: 0 auto;
+    margin-top: 2%;
+    margin-bottom: 2%;
+    padding: 2%;
+    padding-top: 1%;
+    border: 1px solid #ccc;
+    border-radius: 10px;
+    font-size: var(--font-size-medium);
+    /* color: var(--text-standard); */
+    font-family: var(--font-standard);
+    font-weight: 400;
+}
+
+table {
+    width: 100%;
+    border-collapse: collapse;
+}
+
+table, th, td {
+    border: 1px solid #ccc;
+}
+
+th, td {
+    padding: 10px;
+    text-align: left;
+}
+
+.first-line-button {
+    gap: 5%;
+}
+
+.reject {
+    background-color: rgb(238, 61, 61);
+    color: #e7faff;
+}
+
+.reject:hover, .reject:focus {
+    background-color: #b10000;
+    color: #e7faff;
+}
+
+.acc {
+    color: var(--text-standard);
+}
+@media screen and (min-width: 1440px){
+    .application-container {
+        max-width: 70%;
+        font-size: var(--font-size-standard);
+    }
+}
\ No newline at end of file
diff --git a/src/public/css/gym.css b/src/public/css/gym.css
index 4ababf615365b9909540b4df49552dbd497c4eed..c123ddd276572713025492802f5e306a96e61a5c 100644
--- a/src/public/css/gym.css
+++ b/src/public/css/gym.css
@@ -30,8 +30,8 @@
 }
 .loading, .gym-name, .gym-attribute, .nama-kota, .gym-description, .gym-price, .rate-button, .gym-card-text, .trainer-card-text {
   color: var(--text-standard);
-  text-align: center;
   font-family: var(--font-standard);
+  text-align: center;
   font-size: 20px;
   font-style: normal;
   font-weight: 400;
@@ -80,7 +80,11 @@
 }
 .gym-card-text-bottom {
   width: 100%;
-  font-weight: 400;
+  font-weight: 500;
+  font-family: var(--font-standard);
+}
+.bold {
+  font-weight: 600;
 }
 .gym-card {
   margin-top: 10px;
diff --git a/src/public/css/style.css b/src/public/css/style.css
index 836d0eb496210bee88d38bf06ce4edc2cae3e198..4767dc0ff1a9a62afd1f55c2fafed87aacd3f00d 100644
--- a/src/public/css/style.css
+++ b/src/public/css/style.css
@@ -16,7 +16,7 @@
   --button-standard: #f0f9ff;
   --button-active-standard: #bee1f8;
   --red-color: #cb0000;
-  --cancel-filter-color: #b1cad1;
+  --cancel-filter-color: #b1cad1;   
   --filter-option: #d9e8ed;
   --filter-option-stroke: #b3c7d2;
   --filter-option-hover: #c6e1eb;
diff --git a/src/public/javascript/gym/application.js b/src/public/javascript/gym/application.js
index 55a2b7b0c64306751028dd1687bca41d347289d1..d4ebfe89352e90b46058f2f26967ca801269c28c 100644
--- a/src/public/javascript/gym/application.js
+++ b/src/public/javascript/gym/application.js
@@ -1,32 +1,48 @@
-function modifyGymApplicationList(data) {
-    const gymApplicationList = document.getElementById("gym-application-list");
-    gymApplicationList.innerHTML = "";
-    data.forEach((trainer) => {
-      gymApplicationList.innerHTML += TrainerCard(trainer);
-    });
-}
+function hidePopupAcc() { document.querySelector(`#pop-up-accept`).style.display = "none";}
+function showPopupAcc() { document.querySelector(`#pop-up-accept`).style.display = "flex";}
+function hidePopupRej() { document.querySelector(`#pop-up-reject`).style.display = "none";}
+function showPopupRej() { document.querySelector(`#pop-up-reject`).style.display = "flex";}
+
 // dummy data
 let trainer = {
-    name: "John Doe",
-    username: "johndoe",
-    acceptance: 0,
-    gym_id: 43
+  username: "johndoe",
+  gym_id: 43,
+  acceptance: 0,
+  trainer_name: "John Doe",
+  trainer_description: "Aku ingin bekerja",
+  application_description: "Aku ingin bekerja di sebuah gym, aku memiliki semangat di gym 43 ini semoga bisa keterima. Sekian dan terima kasih atas perhatian dan kesan dan pesannya",
 }
 let trainer2 = {
-    name: "Jane Doe",
-    username: "janedoe",
-    acceptance: 1,
-    gym_id: 43
+  username: "johndoedfdf",
+  gym_id: 43, 
+  acceptance: 0,
+  trainer_name: "John Doe",
+  trainer_description: "Aku ingin bekerja",
+  application_description: "Aku ingin bekerja",
 }
 let data = [trainer, trainer2];
-modifyGymApplicationList(data);
 
-function getApplication(gymId, username) {
+
+function modifyGymApplicationList(data) {
+    const gymApplicationList = document.getElementById("gym-application-list");
+    gymApplicationList.innerHTML = "";
+    if (data.length == 0) {
+      gymApplicationList.innerHTML = `
+      <div class="space"></div>
+      <div class="gym-card-text"> No Aplication found </div>
+      `;
+    }
+    data.forEach((trainer) => {
+      gymApplicationList.innerHTML += ApplicationCard(trainer);
+    });
+}
+
+function getGymApplication(gymId) {
+    modifyGymApplicationList(data);
     const xhr = new XMLHttpRequest();
     xhr.onreadystatechange = function () {
       if (this.readyState === 4) {
         if (this.status === 200) {
-        //   modifyGymRateList(JSON.parse(this.responseText)["ratings"], username);
           modifyGymApplicationList(JSON.parse(this.responseText)["trainers"]);
         } else {
           const json = JSON.parse(this.responseText);
@@ -40,11 +56,19 @@ function getApplication(gymId, username) {
     xhr.send();
 }
 
+function getApplication(username, gymId) {
+  // alert("get application with username: " + username + " and gym id: " + gymId);
+  modifyApplication(trainer);
+
+}
+
 function acceptApplication(username, gymId) {
-    const xhr = new XMLHttpRequest();
-    xhr.onreadystatechange = function () {
-      if (this.readyState === 4) {
-        if (this.status === 200) {
+  alert("ajax : accept with username: " + username + " and gym id: " + gymId);
+  const xhr = new XMLHttpRequest();
+  xhr.onreadystatechange = function () {
+    if (this.readyState === 4) {
+      if (this.status === 200) {
+          alert("accept with username: " + username + " and gym id: " + gymId);
         
         } else {
           const json = JSON.parse(this.responseText);
@@ -56,4 +80,52 @@ function acceptApplication(username, gymId) {
     // xhr.open("GET", `/api/gym/rating?gym_id=${gymId}`, true);
     // xhr.setRequestHeader("X-API-KEY", apikey);
     xhr.send();
+}
+
+function rejectApplication(username, gymId) {
+  alert("ajax : reject with username: " + username + " and gym id: " + gymId);
+  const xhr = new XMLHttpRequest();
+  xhr.onreadystatechange = function () {
+    if (this.readyState === 4) {
+      if (this.status === 200) {
+          alert("reject with username: " + username + " and gym id: " + gymId);
+        
+        } else {
+          const json = JSON.parse(this.responseText);
+          alert(json["error"]);
+        }
+      }
+    };
+    // xhr.open("GET", `/api/gym/rating?gym_id=${gymId}`, true);
+    // xhr.setRequestHeader("X-API-KEY", apikey);
+    xhr.send();
+}
+
+function modifyApplication(trainer) {
+    const gymApplicationList = document.getElementById("application-trainer");
+    gymApplicationList.innerHTML = `
+    <h2>Trainer Application</h2>
+    <table>
+        <tr>
+            <td><strong>Username</strong></td>
+            <td>${trainer.username}</td>
+        </tr>
+        <tr>
+            <td><strong>Gym ID</strong></td>
+            <td>${trainer.gym_id}</td>
+        </tr>
+        <tr>
+            <td><strong>Trainer Name</strong></td>
+            <td>${trainer.trainer_name}</td>
+        </tr>
+        <tr>
+            <td><strong>Trainer Description</strong></td>
+            <td>${trainer.trainer_description}</td>
+        </tr>
+        <tr>
+            <td><strong>Application Description</strong></td>
+            <td>${trainer.application_description}</td>
+        </tr>
+    </table>
+    `
 }
\ No newline at end of file
diff --git a/src/public/javascript/gym/trainer_card.js b/src/public/javascript/gym/trainer_card.js
index 69a9ccfd2272bd8995a8345b8a039c4186f0de8c..992d0200ec4886bbc1513d58cd2ae6114bf1ba6a 100644
--- a/src/public/javascript/gym/trainer_card.js
+++ b/src/public/javascript/gym/trainer_card.js
@@ -10,15 +10,15 @@ function acceptance(acc_code){
     }
 }
 
-function TrainerCard(trainer){
-    let truncated_name = truncateText(trainer.name, 16);
+function ApplicationCard(trainer){
+    let truncated_name = truncateText(trainer.trainer_name, 16);
     let acceptance_status = acceptance(trainer.acceptance);
     let tname = "trainer name : " + truncated_name;
     let tusername = "username : " + trainer.username;
-    let trainer_card = `
+    let application_card = `
     <a class="gym-card" id="gym-card-${trainer.username}" href="./application/?gym_id=${trainer.gym_id}&trainer_username=${trainer.username}">
     <div class="trainer-card-text">
-        <div class="gym-card-name"> ${tname} </div>
+        <div class="gym-card-text-bottom"> ${tname} </div>
         <div class="space3"></div>
         <div class="gym-card-text-bottom">
             <div class="gym-card-text-bottom-left">
@@ -31,5 +31,25 @@ function TrainerCard(trainer){
     </div>
     </a>
     `;
+    return application_card;
+}
+
+function TrainerCard(trainer){
+    let truncated_name = truncateText(trainer.trainer_name, 16);
+    let tname = "trainer name : " + truncated_name;
+    let tusername = "username : " + trainer.username;
+    let trainer_card = `
+    <a class="gym-card" id="gym-card-${trainer.username}" href="./application/?gym_id=${trainer.gym_id}&trainer_username=${trainer.username}">
+    <div class="trainer-card-text bold">
+        <div class="gym-card-text-bottom"> ${tname} </div>
+        <div class="space3"></div>
+        <div class="gym-card-text-bottom">
+            <div class="gym-card-text-bottom-left">
+                ${tusername}
+            </div>
+        </div>
+    </div>
+    </a>
+    `;
     return trainer_card;
 }
\ No newline at end of file