Index: src/main/java/com/db/finki/www/build_board/controller/home_page/UserProfileController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/home_page/UserProfileController.java	(revision 61963f68ad1072c92d26a9c6b1d18cd0f37d9628)
+++ src/main/java/com/db/finki/www/build_board/controller/home_page/UserProfileController.java	(revision 8dbc333588c3c47a0991d06e07aa4a6e2bf5cf79)
@@ -3,4 +3,5 @@
 import com.db.finki.www.build_board.entity.entity_enum.Status;
 import com.db.finki.www.build_board.entity.user_type.BBUser;
+import com.db.finki.www.build_board.service.ReportService;
 import com.db.finki.www.build_board.service.user.BBUserDetailsService;
 import com.db.finki.www.build_board.service.request.ProjectRequestService;
@@ -24,9 +25,11 @@
     private final FileUploadService fileUploadService;
     private final ProjectRequestService projectRequestService;
+    private final ReportService reportService;
 
-    public UserProfileController(BBUserDetailsService userService, FileUploadService fileUploadService, ProjectRequestService projectRequestService) {
+    public UserProfileController(BBUserDetailsService userService, FileUploadService fileUploadService, ProjectRequestService projectRequestService, ReportService reportService) {
         this.userService = userService;
         this.fileUploadService = fileUploadService;
         this.projectRequestService = projectRequestService;
+        this.reportService = reportService;
     }
 
@@ -53,4 +56,15 @@
     }
 
+    @GetMapping("/reports")
+    public String getReportsByUser(@PathVariable String username,
+            @SessionAttribute @P("user") BBUser user,
+            @RequestParam(required = false) Status status,
+            Model model) {
+        BBUser byUser = (BBUser) userService.loadUserByUsername(username);
+        model.addAttribute("user", byUser);
+        model.addAttribute("requests", reportService.getByStatusAndUser(status,byUser));
+        model.addAttribute("status", Status.values());
+        return "/show-user-reports";
+    }
 
     @GetMapping("/project-requests")
Index: src/main/java/com/db/finki/www/build_board/repository/ReportRepository.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/repository/ReportRepository.java	(revision 61963f68ad1072c92d26a9c6b1d18cd0f37d9628)
+++ src/main/java/com/db/finki/www/build_board/repository/ReportRepository.java	(revision 8dbc333588c3c47a0991d06e07aa4a6e2bf5cf79)
@@ -1,5 +1,4 @@
 package com.db.finki.www.build_board.repository;
 
-import com.db.finki.www.build_board.entity.request.ProjectRequests;
 import com.db.finki.www.build_board.entity.request.Report;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -25,4 +24,17 @@
             @Param("status") String status,
             @Param("latest") String forLatest
-                                                            );
+                                                 );
+
+    @Query(
+            nativeQuery = true,
+            value = """
+                        select * 
+                        from report r 
+                        join submission s 
+                        on s.id = r.id 
+                        where s.created_by = :user_id and (:status is null or s.status= :status) 
+                    """
+    )
+    List<Report> findAllBySendByUsernameAndStatus(@Param("user_id") long userId,
+            @Param("status") String status);
 }
Index: src/main/java/com/db/finki/www/build_board/service/ReportService.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/service/ReportService.java	(revision 61963f68ad1072c92d26a9c6b1d18cd0f37d9628)
+++ src/main/java/com/db/finki/www/build_board/service/ReportService.java	(revision 8dbc333588c3c47a0991d06e07aa4a6e2bf5cf79)
@@ -123,3 +123,11 @@
         reportRepository.save(report);
     }
+
+    public List<Report> getByStatusAndUser(Status status, BBUser byUser) {
+        return reportRepository.findAllBySendByUsernameAndStatus(byUser.getId(),
+                Optional
+                        .ofNullable(status)
+                        .map(Status::name)
+                        .orElse(null));
+    }
 }
Index: src/main/resources/templates/project_pages/requests/show-requests.html
===================================================================
--- src/main/resources/templates/project_pages/requests/show-requests.html	(revision 61963f68ad1072c92d26a9c6b1d18cd0f37d9628)
+++ src/main/resources/templates/project_pages/requests/show-requests.html	(revision 8dbc333588c3c47a0991d06e07aa4a6e2bf5cf79)
@@ -70,8 +70,7 @@
             </div>
             <div class="card-footer"
-                 th:if="${req.getStatus().name().equals('DENIED')}"
+                 th:if="${req.getFeedback() != null}"
             >
                 <button type="button"
-                        th:if="${req.getStatus().name().equals('DENIED')}"
                         class="btn-feedback-open btn btn-success">View feedback
                 </button>
Index: src/main/resources/templates/show-reports.html
===================================================================
--- src/main/resources/templates/show-reports.html	(revision 61963f68ad1072c92d26a9c6b1d18cd0f37d9628)
+++ src/main/resources/templates/show-reports.html	(revision 8dbc333588c3c47a0991d06e07aa4a6e2bf5cf79)
@@ -107,5 +107,5 @@
                 </button>
             </div>
-            <div class="card-footer">
+            <div class="card-footer" th:if="${req.getFeedback() != null}">
                 <button type="button"
                         class="btn-feedback-open btn btn-success">
Index: src/main/resources/templates/show-user-reports.html
===================================================================
--- src/main/resources/templates/show-user-reports.html	(revision 8dbc333588c3c47a0991d06e07aa4a6e2bf5cf79)
+++ src/main/resources/templates/show-user-reports.html	(revision 8dbc333588c3c47a0991d06e07aa4a6e2bf5cf79)
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Users Requests</title>
+    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
+</head>
+<body>
+<header>
+    <div th:replace="/home_pages/home :: navigation"></div>
+</header>
+<section class="d-flex mt-3 flex-column w-100 align-items-center mt-5">
+    <form method="get" th:action="@{/{username}/reports(username=${user.getUsername()})}"
+          class="d-flex flex-row gap-2 align-items-center"
+          style="width:fit-content">
+        <label for="status-query">Filter by status:</label>
+        <select id="status-query" name="status" class="form-select form-select-sm w-auto">
+            <option
+                    th:each="st:${status}"
+                    th:text="${st}"
+                    th:value="${st}"
+            ></option>
+            <option value="">All</option>
+        </select>
+        <button class="btn btn-primary">Search</button>
+    </form>
+</section>
+<main class="d-flex justify-content-center mt-5 align-items-center flex-column ">
+    <div class="card shadow-sm mb-4 w-75"
+         th:each="req:${requests}">
+        <div class="card-header  text-white d-flex justify-content-between align-items-center"
+             th:with="st=${req.getStatus()}"
+             th:classappend="${st.name() == 'PENDING' ? 'bg-warning' : (st.name() == 'DENIED' ? 'bg-danger' : 'bg-info')}"
+        >
+            <h3 th:text="${req.getCreator().getUsername()}">Creator of request</h3>
+            <h3 class="fs-6 ">
+                <span>Status:</span>
+                <span
+                        th:text="${#strings.capitalize(req.getStatus().name().toLowerCase())}"></span>
+            </h3>
+        </div>
+        <div class="d-flex flex-column gap-3 justify-content-between card-body">
+            <div>
+                <h4>Description</h4>
+                <p th:text="${req.getDescription()}">Description of the project goes here.</p>
+                <p th:text="|Submitted on: ${#temporals.format(req.getCreatedAt(), 'dd/MM/yyyy  HH:mm')}|"></p>
+            </div>
+        </div>
+        <div class="card-footer" th:if="${req.getFeedback() != null}">
+            <button type="button"
+                    class="btn-feedback-open btn btn-success">View feedback
+            </button>
+            <div
+                    th:with="feed=${req.getFeedback()}"
+                    class="feedback d-flex flex-column gap-2 invisible" style="height: 0">
+                <h5>Feedback</h5>
+                <p th:text="${feed==null ? '' : (feed.getDescription()!=null ? feed.getDescription() : '')}"></p>
+                <p>
+                    <span>Submitted at:</span>
+                    <span th:text="${feed != null ?  feed.getCreatedAt() : ''}"></span>
+                <div class="w-100 d-flex justify-content-end">
+                    <button type="button" class="btn-feedback-close btn-danger btn">Close</button>
+                </div>
+            </div>
+        </div>
+    </div>
+</main>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
+<script src="/js/modal_utils.js"></script>
+<script>
+    document.querySelectorAll(".modal").forEach(modal => modalConts.push(modal))
+    const formModal = document.querySelector("#modal-form")
+    document.addEventListener("click", ev => {
+        console.log(ev.target.type)
+        if (ev.target == null || ev.target.type !== 'button') return;
+        if (ev.target.classList.contains("btn-feedback-open")) {
+            const btn = ev.target
+            const feedbackCont = btn.nextElementSibling
+
+            btn.classList.add('invisible')
+            btn.style.width = '0'
+            btn.style.height = '0'
+
+            feedbackCont.style.height = 'max-content';
+            feedbackCont.classList.remove('invisible')
+
+        } else if (ev.target.classList.contains("btn-feedback-close")) {
+            const closeBtn = ev.target
+            const feedbackCont = closeBtn.parentElement.parentElement
+            const btn = feedbackCont.previousElementSibling
+
+            console.log(feedbackCont)
+
+            btn.classList.remove('invisible')
+            btn.style.width = 'max-content'
+            btn.style.height = 'max-content'
+
+            feedbackCont.style.height = '0';
+            feedbackCont.classList.add('invisible')
+        }
+    })
+</script>
+</body>
+</html>
