Index: src/main/java/com/db/finki/www/build_board/controller/ExceptionHandler.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/ExceptionHandler.java	(revision 8ab5513f0df5fafcba39e33719d54ae58616f7d5)
+++ src/main/java/com/db/finki/www/build_board/controller/ExceptionHandler.java	(revision ec80eec5715d33c1b8d17f8214c9fb485b3ebc5c)
@@ -9,5 +9,5 @@
 import org.springframework.web.servlet.resource.NoResourceFoundException;
 
-@ControllerAdvice
+//@ControllerAdvice
 public class ExceptionHandler {
 
Index: src/main/java/com/db/finki/www/build_board/controller/home_pages/UserProfileController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/home_pages/UserProfileController.java	(revision 8ab5513f0df5fafcba39e33719d54ae58616f7d5)
+++ src/main/java/com/db/finki/www/build_board/controller/home_pages/UserProfileController.java	(revision ec80eec5715d33c1b8d17f8214c9fb485b3ebc5c)
@@ -16,4 +16,6 @@
 
 // todo ovaj page e private samo za userot, uste eden mozit da napreme so ke e samo javno info za userot
+// todo: java scriptot za tag 
+
 @Controller
 @RequestMapping("{username}")
@@ -26,7 +28,7 @@
         this.fileUploadService = fileUploadService;
     }
-   @PreAuthorize("#user.getUsername().equals(#username)")
+   
     @GetMapping("/profile")
-    public String getProfilePage(@PathVariable @P("username") String username, @SessionAttribute @P("user") BBUser user, Model model) {
+    public String getProfilePage(@PathVariable String username, @SessionAttribute BBUser user, Model model) {
         try {
             model.addAttribute("user", userService.loadUserByUsername(username));
@@ -52,5 +54,4 @@
         } catch (IOException e) {
             redirectAttributes.addFlashAttribute("message", "Cant upload avatar");
-            System.out.println(e.getMessage());
         }
 
Index: src/main/java/com/db/finki/www/build_board/controller/thread_controllers/requests/ProjectRequestController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/thread_controllers/requests/ProjectRequestController.java	(revision 8ab5513f0df5fafcba39e33719d54ae58616f7d5)
+++ src/main/java/com/db/finki/www/build_board/controller/thread_controllers/requests/ProjectRequestController.java	(revision ec80eec5715d33c1b8d17f8214c9fb485b3ebc5c)
@@ -20,5 +20,5 @@
     }
 
-    @PostMapping("/{req-id}")
+    @PostMapping("/{req-id}/accept")
     public RedirectView acceptRequest(@PathVariable(name = "req-id") Integer reqId, @PathVariable(name = "pr-title") String projectTitle){
         return new RedirectView(
@@ -27,5 +27,5 @@
     }
 
-    @PostMapping("/{req-id}")
+    @PostMapping("/{req-id}/deny")
     public RedirectView denyRequest(@PathVariable(name = "req-id") Integer reqId, @PathVariable(name = "pr-title") String projectTitle){
         return new RedirectView(
Index: src/main/java/com/db/finki/www/build_board/entity/user_types/BBUser.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/entity/user_types/BBUser.java	(revision 8ab5513f0df5fafcba39e33719d54ae58616f7d5)
+++ src/main/java/com/db/finki/www/build_board/entity/user_types/BBUser.java	(revision ec80eec5715d33c1b8d17f8214c9fb485b3ebc5c)
@@ -3,7 +3,5 @@
 import com.db.finki.www.build_board.entity.threads.BBThread;
 import com.db.finki.www.build_board.service.threads.impl.FileUploadService;
-import jakarta.annotation.PostConstruct;
 import jakarta.persistence.*;
-import lombok.Data;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -21,5 +19,4 @@
 import java.util.Objects;
 
-//TODO: user regsitration
 
 @Getter
Index: src/main/resources/templates/error_pages/error.html
===================================================================
--- src/main/resources/templates/error_pages/error.html	(revision 8ab5513f0df5fafcba39e33719d54ae58616f7d5)
+++ src/main/resources/templates/error_pages/error.html	(revision ec80eec5715d33c1b8d17f8214c9fb485b3ebc5c)
@@ -17,5 +17,5 @@
         <p class="d-flex flex-column justify-content-center align-items-center">
             <span class="text-danger fs-3" th:text="${status}"></span>
-            <span class="text-primary fs-5" th:text="${exception.getMessage()}"></span>
+<!--            <span class="text-primary fs-5" th:text="${exception.getMessage()}"></span>-->
         </p>
         <hr>
Index: src/main/resources/templates/fragments/user_fields.html
===================================================================
--- src/main/resources/templates/fragments/user_fields.html	(revision 8ab5513f0df5fafcba39e33719d54ae58616f7d5)
+++ src/main/resources/templates/fragments/user_fields.html	(revision ec80eec5715d33c1b8d17f8214c9fb485b3ebc5c)
@@ -1,35 +1,31 @@
-<form method="post"
-      class="d-flex gap-2 flex-grow-1 flex-column gap-2 list-group-flush "
-      th:action="${url}"
-      th:fragment="user_fields(url)"
->
-    <h5>Personal Details</h5>
-    <label class="fw-bold ">Username:
-        <input th:readonly="${!canEdit}"
-               name="username" type="text" th:value="${user.getUsername()}"
-               class="w-100 border border-secondary ps-2 rounded list-group-item">
-    </label>
-    <label class="fw-bold ">Name:
-        <input name="name" th:readonly="${!canEdit}"
-               type="text" th:value="${user.getName()}" class="border ps-2 border-secondary rounded w-100 list-group-item">
-    </label>
-    <label th:readonly="${!canEdit}"
-           class="fw-bold ">Email:
-        <input name="email" type="text" th:value="${user.getEmail()}" class="border ps-2 border-secondary rounded w-100 list-group-item">
-    </label>
-    <label>
-        <span class="fw-bold d-block">Description</span>
-        <textarea name="description" class="border border-secondary ps-2 rounded w-100" th:readonly="${!canEdit}"
-                  th:text="${user.getDescription()}"></textarea>
-    </label>
-    <label th:readonly="${!canEdit}"
-           class="fw-bold ">Password:
-        <input name="password"
-               placeholder="Leave empty if you don't want to change it"
-               type="password" class="w-100 ps-2 list-group-item border border-secondary rounded">
-    </label>
-    <input type="hidden" name="cur_user_username"
-           th:value="${session.user == null} ? '' : ${session.user.getUsername()}">
-    <button th:if="${canEdit}" class="btn btn-success btn-sm w-50 align-self-center">Save changes
-    </button>
+<form th:with="borderStyle=${canEdit ? 'border-secondary rounded' : 'border-0 pe-none'}" method="post"
+       class="d-flex gap-2 flex-grow-1 flex-column gap-2 list-group-flush " th:action="${url}"
+       th:fragment="user_fields(url)">
+       <h5>Personal Details</h5>
+       <label class="fw-bold ">Username:
+              <input th:readonly="${!canEdit}" th:disabled="${!canEdit}" th:classappend="${borderStyle}" name="username"
+                     type="text" th:value="${user.getUsername()}" class="w-100 border  ps-2  list-group-item">
+       </label>
+       <label class="fw-bold ">Name:
+              <input th:readonly="${!canEdit}" th:disabled="${!canEdit}" th:classappend="${borderStyle}" name="name"
+                     type="text" th:value="${user.getName()}" class="border ps-2  w-100 list-group-item">
+       </label>
+       <label class="fw-bold ">Email:
+              <input th:readonly="${!canEdit}" th:disabled="${!canEdit}" th:classappend="${borderStyle}" name="email"
+                     type="text" th:value="${user.getEmail()}" class="border ps-2 w-100 list-group-item">
+       </label>
+       <label>
+              <span class="fw-bold d-block">Description</span>
+              <textarea name="description" th:readonly="${!canEdit}" th:disabled="${!canEdit}"
+                     th:classappend="${borderStyle}" class="border ps-2  w-100"
+                     th:text="${user.getDescription()}"></textarea>
+       </label>
+       <label th:if="${canEdit}" class="fw-bold ">Password:
+              <input name="password" placeholder="Leave empty if you don't want to change it" type="password"
+                     th:classappend="${borderStyle}" class="w-100 ps-2 list-group-item border ">
+       </label>
+       <input type="hidden" name="cur_user_username"
+              th:value="${session.user == null} ? '' : ${session.user.getUsername()}">
+       <button th:if="${canEdit}" class="btn btn-success btn-sm w-50 align-self-center">Save changes
+       </button>
 </form>
Index: src/main/resources/templates/home_pages/profile.html
===================================================================
--- src/main/resources/templates/home_pages/profile.html	(revision 8ab5513f0df5fafcba39e33719d54ae58616f7d5)
+++ src/main/resources/templates/home_pages/profile.html	(revision ec80eec5715d33c1b8d17f8214c9fb485b3ebc5c)
@@ -2,4 +2,5 @@
 <!DOCTYPE html>
 <html lang="en">
+
 <head>
     <meta charset="UTF-8">
@@ -8,81 +9,89 @@
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
 </head>
+
 <body class="bg-light">
-<div th:replace="/home_pages/home :: navigation"></div>
-<div class="container mt-5 w-50-xs w-75-md " style="width: max-content">
-    <!-- User Profile Card -->
-    <div class="card">
-        <div class="card-header bg-primary text-white">
-            <h4 class="mb-0">User Profile</h4>
+    <div th:replace="/home_pages/home :: navigation"></div>
+    <div class="container mt-5 w-50-xs w-75-md " style="width: max-content">
+        <!-- User Profile Card -->
+        <div class="card">
+            <div class="card-header bg-primary text-white">
+                <h4 class="mb-0">User Profile</h4>
+            </div>
+
+            <div class="card-body me-5 ms-5 pe-5 ps-5 d-flex flex-row gap-5 ">
+
+                <!-- Profile Picture -->
+                <div
+                    class="col-md-4 flex-grow-2 text-center d-flex justify-content-center align-items-center flex-column">
+                    <form method="post" th:action="@{/{username}/upload-avatar(username=${user.getUsername()})}"
+                        enctype="multipart/form-data">
+                        <img th:src="${user.getAvatarUrl()}" alt="Profile Picture" id="profileImage-input"
+                            class="rounded-circle border border-1 border-info mb-3"
+                            style="width: 150px; height: 150px; object-fit: cover;">
+                        <th:block th:if="${canEdit}">
+                            <input type="file" id="userImage" name="userImage" accept="image/*"
+                                class="form-control mb-2">
+                            <input type="hidden" th:value="${session.user == null ? '' : session.user.getUsername()}"
+                                name="cur_user_username">
+                            <button type="submit" class="btn btn-success btn-sm w-100">Upload Picture</button>
+                        </th:block>
+                    </form>
+                </div>
+                <!-- User Details -->
+                <div
+                    th:replace="fragments/user_fields :: user_fields(url=@{/{username}/profile/change(username=${user.getUsername()})})">
+                </div>
+                <!--            <form method="post"-->
+                <!--                  class="d-flex gap-2 flex-grow-1 flex-column gap-2 list-group-flush "-->
+                <!--                  th:action="@{/{username}/profile/change(username=${user.getUsername()})}"-->
+                <!--            >-->
+                <!--                <h5>Personal Details</h5>-->
+                <!--                <label class="fw-bold ">Username:-->
+                <!--                    <input th:readonly="${!canEdit}"-->
+                <!--                           name="username" type="text" th:value="${user.getUsername()}"-->
+                <!--                           class="w-100 border border-secondary ps-2 rounded list-group-item">-->
+                <!--                </label>-->
+                <!--                <label class="fw-bold ">Name:-->
+                <!--                    <input name="name" th:readonly="${!canEdit}"-->
+                <!--                           type="text" th:value="${user.getName()}" class="border ps-2 border-secondary rounded w-100 list-group-item">-->
+                <!--                </label>-->
+                <!--                <label th:readonly="${!canEdit}"-->
+                <!--                       class="fw-bold ">Email:-->
+                <!--                    <input name="email" type="text" th:value="${user.getEmail()}" class="border ps-2 border-secondary rounded w-100 list-group-item">-->
+                <!--                </label>-->
+                <!--                <label>-->
+                <!--                    <span class="fw-bold d-block">Description</span>-->
+                <!--                    <textarea name="description" class="border border-secondary ps-2 rounded w-100" th:readonly="${!canEdit}"-->
+                <!--                              th:text="${user.getDescription()}"></textarea>-->
+                <!--                </label>-->
+                <!--                <label th:readonly="${!canEdit}"-->
+                <!--                       class="fw-bold ">Password:-->
+                <!--                    <input name="password"-->
+                <!--                           placeholder="Leave empty if you don't want to change it"-->
+                <!--                           type="text" class="w-100 ps-2 list-group-item border border-secondary rounded">-->
+                <!--                </label>-->
+                <!--                <input type="hidden" name="cur_user_username"-->
+                <!--                       th:value="${session.user == null} ? '' : ${session.user.getUsername()}">-->
+                <!--                <button th:if="${canEdit}" class="btn btn-success btn-sm w-50 align-self-center">Save changes-->
+                <!--                </button>-->
+                <!--            </form>-->
+
+                <script>
+                    const img = document.querySelector("#profileImage-input");
+                    console.log(img)
+                    document.querySelector('input[type="file"]').addEventListener("change", ev => {
+                        const [file] = ev.target.files
+                        console.log(file)
+                        if (file) {
+                            console.log(URL.createObjectURL(file))
+                            img.setAttribute("src", URL.createObjectURL(file));
+                        }
+                    })
+                </script>
+            </div>
         </div>
 
-        <div class="card-body me-5 ms-5 pe-5 ps-5 d-flex flex-row gap-5 ">
+        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
+</body>
 
-            <!-- Profile Picture -->
-            <div class="col-md-4 flex-grow-2 text-center d-flex justify-content-center align-items-center flex-column"
-            >
-                <form method="post" th:action="@{/{username}/upload-avatar(username=${user.getUsername()})}"  enctype="multipart/form-data">
-                    <img th:src="${user.getAvatarUrl()}" alt="Profile Picture" id="profileImage-input"
-                         class="rounded-circle border border-1 border-info mb-3"
-                         style="width: 150px; height: 150px; object-fit: cover;">
-                    <input type="file" id="userImage" name="userImage" accept="image/*" class="form-control mb-2">
-                    <input type="hidden" th:value="${session.user == null ? '' : session.user.getUsername()}"
-                           name="cur_user_username">
-                    <button type="submit" class="btn btn-success btn-sm w-100">Upload Picture</button>
-                </form>
-            </div>
-            <!-- User Details -->
-            <div th:replace="fragments/user_fields :: user_fields(url=@{/{username}/profile/change(username=${user.getUsername()})})"></div>
-<!--            <form method="post"-->
-<!--                  class="d-flex gap-2 flex-grow-1 flex-column gap-2 list-group-flush "-->
-<!--                  th:action="@{/{username}/profile/change(username=${user.getUsername()})}"-->
-<!--            >-->
-<!--                <h5>Personal Details</h5>-->
-<!--                <label class="fw-bold ">Username:-->
-<!--                    <input th:readonly="${!canEdit}"-->
-<!--                           name="username" type="text" th:value="${user.getUsername()}"-->
-<!--                           class="w-100 border border-secondary ps-2 rounded list-group-item">-->
-<!--                </label>-->
-<!--                <label class="fw-bold ">Name:-->
-<!--                    <input name="name" th:readonly="${!canEdit}"-->
-<!--                           type="text" th:value="${user.getName()}" class="border ps-2 border-secondary rounded w-100 list-group-item">-->
-<!--                </label>-->
-<!--                <label th:readonly="${!canEdit}"-->
-<!--                       class="fw-bold ">Email:-->
-<!--                    <input name="email" type="text" th:value="${user.getEmail()}" class="border ps-2 border-secondary rounded w-100 list-group-item">-->
-<!--                </label>-->
-<!--                <label>-->
-<!--                    <span class="fw-bold d-block">Description</span>-->
-<!--                    <textarea name="description" class="border border-secondary ps-2 rounded w-100" th:readonly="${!canEdit}"-->
-<!--                              th:text="${user.getDescription()}"></textarea>-->
-<!--                </label>-->
-<!--                <label th:readonly="${!canEdit}"-->
-<!--                       class="fw-bold ">Password:-->
-<!--                    <input name="password"-->
-<!--                           placeholder="Leave empty if you don't want to change it"-->
-<!--                           type="text" class="w-100 ps-2 list-group-item border border-secondary rounded">-->
-<!--                </label>-->
-<!--                <input type="hidden" name="cur_user_username"-->
-<!--                       th:value="${session.user == null} ? '' : ${session.user.getUsername()}">-->
-<!--                <button th:if="${canEdit}" class="btn btn-success btn-sm w-50 align-self-center">Save changes-->
-<!--                </button>-->
-<!--            </form>-->
-
-            <script>
-                const img = document.querySelector("#profileImage-input");
-                console.log(img)
-                document.querySelector('input[type="file"]').addEventListener("change", ev => {
-                    const [file] = ev.target.files
-                    console.log(file)
-                    if (file) {
-                        console.log(URL.createObjectURL(file))
-                        img.setAttribute("src", URL.createObjectURL(file));
-                    }
-                })
-            </script>
-        </div>
-    </div>
-
-    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
-</body>
 </html>
