diff --git a/BackendFolder/SwitchRoom/src/main/java/vt/CS5934/SwitchRoom/controllers/UserController.java b/BackendFolder/SwitchRoom/src/main/java/vt/CS5934/SwitchRoom/controllers/UserController.java
index 16e714536be7ec8a818b4c351cde89da791ce06a..f6fb157f2391b6e0ecdaf7c7f02b5ea9b208bafc 100644
--- a/BackendFolder/SwitchRoom/src/main/java/vt/CS5934/SwitchRoom/controllers/UserController.java
+++ b/BackendFolder/SwitchRoom/src/main/java/vt/CS5934/SwitchRoom/controllers/UserController.java
@@ -134,4 +134,20 @@ public class UserController {
 
         return response;
     }
+
+    @GetMapping("/profile")
+    public ResponseModel getProfile(
+            @CookieValue(value = "userId", required = false) String userId,
+            @CookieValue(value = "token", required = false) String token) {
+        ResponseModel response = new ResponseModel();
+
+        if (userId == null || token == null || !userService.checkLoginSession(userId, token)) {
+            response.setMessage("Login session expired or invalid");
+            response.setStatus(HttpStatus.FORBIDDEN);
+            return response;
+        }
+
+        response = userService.getProfile(userId);
+        return response;
+    }
 }
diff --git a/BackendFolder/SwitchRoom/src/main/java/vt/CS5934/SwitchRoom/services/UserService.java b/BackendFolder/SwitchRoom/src/main/java/vt/CS5934/SwitchRoom/services/UserService.java
index fe034308284e63c191b5606441185ae3d1f9219a..50032ddb4efc8eced728087bffa8caf98b7e658c 100644
--- a/BackendFolder/SwitchRoom/src/main/java/vt/CS5934/SwitchRoom/services/UserService.java
+++ b/BackendFolder/SwitchRoom/src/main/java/vt/CS5934/SwitchRoom/services/UserService.java
@@ -2,6 +2,7 @@ package vt.CS5934.SwitchRoom.services;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import net.bytebuddy.implementation.bytecode.Throw;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,7 +16,9 @@ import vt.CS5934.SwitchRoom.repositories.UserRepository;
 
 import javax.transaction.Transactional;
 import java.security.NoSuchAlgorithmException;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class UserService {
@@ -90,7 +93,7 @@ public class UserService {
         UserModel existUser = userRepository.findByUserId(Integer.parseInt(userId));
 
         if (existUser == null) {
-            logger.error("checkLoginSession: FORBIDDEN (user not found)");
+            logger.warn("checkLoginSession: FORBIDDEN (user not found)");
             return false;
         }
         ObjectMapper mapper = new ObjectMapper();
@@ -113,4 +116,26 @@ public class UserService {
         }
     }
 
+    public ResponseModel getProfile(String userId) {
+        ResponseModel response = new ResponseModel();
+        UserModel existUser = userRepository.findByUserId(Integer.parseInt(userId));
+
+        if (existUser == null) {
+            logger.warn("getProfile: FORBIDDEN (user not found)");
+            response.setMessage("user not found");
+            response.setStatus(HttpStatus.FORBIDDEN);
+            return response;
+        }
+
+        Map<String, String> profile = new LinkedHashMap<>();
+        profile.put("username", existUser.getUsername());
+        profile.put("email", existUser.getEmail());
+        profile.put("firstName", existUser.getFirstname());
+        profile.put("lastName", existUser.getLastname());
+
+        response.setData(profile);
+        response.setStatus(HttpStatus.OK);
+
+        return response;
+    }
 }
diff --git a/FrontendFolder/switch-room/src/components/ProfilePage.vue b/FrontendFolder/switch-room/src/components/ProfilePage.vue
index cc4fc1d91c0bb0d00b1c70d66aba573a86005c88..7bfbf2f5f45b6847637446a4a45a5e5ddbe8ce26 100644
--- a/FrontendFolder/switch-room/src/components/ProfilePage.vue
+++ b/FrontendFolder/switch-room/src/components/ProfilePage.vue
@@ -8,21 +8,25 @@
       <div class="row clearfix">
         <div class="">
           <div class="form">
-            <label for="user-oldPassword" style="padding-top: 13px">
-              &nbsp;Username
-            </label>
+            <div class="profile-label">
+              <div>&nbsp;Username</div>
+              <div>{{profile.username}}&nbsp;</div>
+            </div>
             <div class="form-border"></div>
-            <label for="user-newPassword" style="padding-top: 13px">
-              &nbsp;Email
-            </label>
+            <div class="profile-label">
+              <div>&nbsp;Email</div>
+              <div>{{profile.email}}&nbsp;</div>
+            </div>
             <div class="form-border"></div>
-            <label for="user-newPassword" style="padding-top: 13px">
-              &nbsp;First Name
-            </label>
+            <div class="profile-label">
+              <div>&nbsp;First Name</div>
+              <div>{{profile.firstName}}&nbsp;</div>
+            </div>
             <div class="form-border"></div>
-            <label for="user-newPassword" style="padding-top: 13px">
-              &nbsp;Last Name
-            </label>
+            <div class="profile-label">
+              <div>&nbsp;Last Name</div>
+              <div>{{profile.lastName}}&nbsp;</div>
+            </div>
             <div class="form-border"></div>
             <button id="submit-btn" @click.prevent="onClickResetPassword" type="submit" value="Submit">
               Reset Password
@@ -35,16 +39,30 @@
 </template>
 
 <script setup lang="ts">
-import { ref, reactive } from "vue";
-import * as UserService from "../services/UserService";
+import { ref, reactive, onMounted } from "vue";
 import { useRouter } from "vue-router";
-import { User } from "@/type/types";
+import {getProfile} from "../services/UserService";
 const router = useRouter();
-const userInformation = reactive({
-  oldPassword: "",
-  newPassword: ""
+const profile = reactive({
+  username: "",
+  email: "",
+  firstName: "",
+  lastName: "",
 });
-
+onMounted(async () => {
+  await getProfile()
+    .then((response) => {
+      if (response.status == "OK") {
+        const data = response.data
+        profile.username = data["username"]
+        profile.email = data["email"]
+        profile.firstName = data["firstName"]
+        profile.lastName = data["lastName"]
+      } else {
+        alert(response.message)
+      }
+    })
+})
 const onClickResetPassword = () => {
   router.push("/resetpassword");
 };
@@ -100,6 +118,13 @@ body {
   width: 100%;
 }
 
+.profile-label {
+  padding-top: 13px;
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+
 #submit-btn {
   background: #2ec06f;
   border: none;
diff --git a/FrontendFolder/switch-room/src/services/UserService.ts b/FrontendFolder/switch-room/src/services/UserService.ts
index 5e10fac974268bb5040e00a1e16cb2d28fdce59b..77fed4b449d1a2805195905150257e14c38d5664 100644
--- a/FrontendFolder/switch-room/src/services/UserService.ts
+++ b/FrontendFolder/switch-room/src/services/UserService.ts
@@ -19,5 +19,15 @@ function resetPassword(userData: any) {
   const urlPath = "/resetPassword";
   return serverHttpService.Post(baseUrl + urlPath, JSON.parse(userData));
 }
+function getProfile() {
+  const urlPath = "/profile";
+  return serverHttpService.Get(baseUrl + urlPath);
+}
 
-export { postUserDataToServer, loginUser, checkLoginSession, resetPassword };
+export { 
+  postUserDataToServer,
+  loginUser,
+  checkLoginSession,
+  resetPassword,
+  getProfile
+};