Index: src/main/java/com/db/finki/www/build_board/controller/thread_controller/DiscussionController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/thread_controller/DiscussionController.java	(revision 873353c87bd59d9d9db035f7ce98e6628c7762f4)
+++ src/main/java/com/db/finki/www/build_board/controller/thread_controller/DiscussionController.java	(revision 61c5c2bb7570c674d83f2d1845be0fd1b65e550a)
@@ -22,7 +22,7 @@
     }
 
-    @PostMapping("/topics/{topic-name}/discussions/add")
+    @PostMapping("/topics/{topic-id}/discussions/add")
     public String addReply(
-            @PathVariable(name = "topic-name") String topicName,
+            @PathVariable(name = "topic-id") String topicId,
             @RequestParam int parentId, @RequestParam String content, Model model,
             @SessionAttribute @P("user") BBUser user) {
@@ -33,20 +33,20 @@
         }
 
-        return "redirect:/topics/" + topicName;
+        return "redirect:/topics/" + topicId;
     }
 
     @PreAuthorize("@discussionService.getDiscussionById(#replyId).user.username==#username")
-    @PostMapping("/topics/{topic-name}/discussions/{replyId}/edit")
-    public String editReply(@PathVariable(name = "topic-name") String topicName, @PathVariable @P("replyId") int replyId, @RequestParam String content, Model model, HttpSession session
+    @PostMapping("/topics/{topic-id}/discussions/{replyId}/edit")
+    public String editReply(@PathVariable(name = "topic-id") String topicId, @PathVariable @P("replyId") int replyId, @RequestParam String content, Model model, HttpSession session
     , @P("username") String username) {
         discussionService.edit(replyId, content);
-        return "redirect:/topics/" + topicName;
+        return "redirect:/topics/" + topicId;
     }
 
     @PreAuthorize("@discussionService.getDiscussionById(#discussionId).getUser().getId()==#user.getId()")
-    @PostMapping("/topics/{topic-name}/discussions/{discussionId}/delete")
-    public String deleteDiscussion(@PathVariable(name = "topic-name") String topicName, @PathVariable @P("discussionId") int discussionId, @SessionAttribute @P("user") BBUser user, @RequestParam @Param("username") String username) {
+    @PostMapping("/topics/{topic-id}/discussions/{discussionId}/delete")
+    public String deleteDiscussion(@PathVariable(name = "topic-id") String topicId, @PathVariable @P("discussionId") int discussionId, @SessionAttribute @P("user") BBUser user, @RequestParam @Param("username") String username) {
         discussionService.delete(discussionId);
-        return "redirect:/topics/" + topicName;
+        return "redirect:/topics/" + topicId;
     }
 
Index: src/main/java/com/db/finki/www/build_board/controller/thread_controller/TagController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/thread_controller/TagController.java	(revision 873353c87bd59d9d9db035f7ce98e6628c7762f4)
+++ src/main/java/com/db/finki/www/build_board/controller/thread_controller/TagController.java	(revision 61c5c2bb7570c674d83f2d1845be0fd1b65e550a)
@@ -42,5 +42,5 @@
         model.addAttribute("topic", t);
         model.addAttribute("tags", tagService.getAllNotUsed(t));
-        return "redirect:/topics/" + t.getTitle();
+        return "redirect:/topics/" + t.getId();
     }
 
@@ -51,5 +51,5 @@
         model.addAttribute("topic", t);
         model.addAttribute("tags", tagService.getAllNotUsed(t));
-        return "redirect:/topics/" + t.getTitle();
+        return "redirect:/topics/" + t.getId();
     }
 
Index: src/main/java/com/db/finki/www/build_board/controller/thread_controller/TopicController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/thread_controller/TopicController.java	(revision 873353c87bd59d9d9db035f7ce98e6628c7762f4)
+++ src/main/java/com/db/finki/www/build_board/controller/thread_controller/TopicController.java	(revision 61c5c2bb7570c674d83f2d1845be0fd1b65e550a)
@@ -36,11 +36,11 @@
     }
 
-    @GetMapping("/{topic-name}")
-    public String showTopic(@PathVariable(name = "topic-name") String topicId, Model model,
+    @GetMapping("/{topic-id}")
+    public String showTopic(@PathVariable(name = "topic-id") int topicId, Model model,
             @RequestParam(required = false) Boolean duplicateTittle) {
         if (duplicateTittle != null) {
             model.addAttribute("errMsg", "There already exists a thread with the same title in that parent");
         }
-        Topic t = topicService.getByTitle(topicId);
+        Topic t = topicService.getById((long)topicId);
         model.addAttribute("topic", t);
         model.addAttribute("tags", tagService.getAllNotUsed(t));
@@ -81,5 +81,5 @@
             model.addAttribute("topic", t);
             model.addAttribute("tags", tagService.getAllNotUsed(t));
-            return "redirect:/topics/" + t.getTitle();
+            return "redirect:/topics/" + t.getId();
         } catch (org.springframework.orm.jpa.JpaSystemException e) {
             return handleDuplicatedTitle(e, redirectAttributes, "/topics/" + oldTitle);
Index: src/main/java/com/db/finki/www/build_board/controller/util/LikesController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/util/LikesController.java	(revision 873353c87bd59d9d9db035f7ce98e6628c7762f4)
+++ src/main/java/com/db/finki/www/build_board/controller/util/LikesController.java	(revision 61c5c2bb7570c674d83f2d1845be0fd1b65e550a)
@@ -4,4 +4,5 @@
 import com.db.finki.www.build_board.entity.thread.Project;
 import com.db.finki.www.build_board.entity.thread.Topic;
+import com.db.finki.www.build_board.entity.thread.discussion_thread.Discussion;
 import com.db.finki.www.build_board.entity.user_type.BBUser;
 import com.db.finki.www.build_board.service.util.ThreadService;
@@ -22,16 +23,12 @@
 
     private BBThread rate(int threadId, BBUser user, boolean likes) {
-        return threadService.rate(threadId,user.getId(),likes );
+        return threadService.rate(threadId, user.getId(), likes);
     }
 
-    private String getUrlForThraed(BBThread thread, String topicName){
-        if(topicName!=null)
-            return "redirect:/topics/" + topicName;
+    private String getUrlForThraed(BBThread thread, Integer id) {
+        if (id != null)
+            return "redirect:/topics/" + id;
 
-        if(thread instanceof Topic topic){
-            return "redirect:/topics/" + topic.getTitle();
-        }else{
-            return "redirect:/projects/" + ((Project)thread).getTitle();
-        }
+        return "redirect:/projects/" + ((Project) thread).getTitle();
     }
 
@@ -39,14 +36,14 @@
     public String dislikeThread(@SessionAttribute BBUser user,
                                 @PathVariable(name = "thread-id") int threadId,
-                                @RequestParam(required = false,name = "topic-name") String topicName
+                                @RequestParam(required = false, name = "topic-id") Integer topicId
     ) {
-        return getUrlForThraed(rate(threadId,user,false),topicName);
+        return getUrlForThraed(rate(threadId, user, false), topicId);
     }
 
     @PostMapping("/threads/{thread-id}/like")
     public String likeThread(@SessionAttribute BBUser user,
-                             @RequestParam(required = false,name = "topic-name") String topicName,
+                             @RequestParam(required = false, name = "topic-id") Integer topicId,
                              @PathVariable(name = "thread-id") int threadId) {
-        return getUrlForThraed(rate(threadId,user,true),topicName);
+        return getUrlForThraed(rate(threadId, user, true), topicId);
     }
 
Index: src/main/resources/templates/fragments/discussion.html
===================================================================
--- src/main/resources/templates/fragments/discussion.html	(revision 873353c87bd59d9d9db035f7ce98e6628c7762f4)
+++ src/main/resources/templates/fragments/discussion.html	(revision 61c5c2bb7570c674d83f2d1845be0fd1b65e550a)
@@ -28,5 +28,5 @@
 
                 <div>
-                    <form th:action="@{/topics/{topic-name}/discussions/{discussionId}/delete(topic-name=${topic.getTitle()
+                    <form th:action="@{/topics/{topic-id}/discussions/{discussionId}/delete(topic-id=${topic.getId()
                     },discussionId=${reply.getId()})}" method="post">
                         <input type="hidden" name="threadId" th:value="${reply.getDiscussion().getId()}" class="w-0">
@@ -47,5 +47,5 @@
             </div>
             <div class="d-none edit-reply" th:attr="data-reply-id=${reply.getDiscussion().getId()}">
-                <form th:action="@{/topics/{topic-name}/discussions/{replyId}/edit(topic-name=${topic.getTitle()},replyId=${reply.getId()})}"
+                <form th:action="@{/topics/{topic-id}/discussions/{replyId}/edit(topic-id=${topic.getId()},replyId=${reply.getId()})}"
                       method="post">
                     <input type="hidden" name="replyId" th:value="${reply.getDiscussion().getId()}">
@@ -66,5 +66,5 @@
                 <div class="d-flex flex-row">
                     <form th:action="@{/threads/{thread-id}/like(thread-id=${reply.getId()})}" method="post">
-                        <input name="topic-name" type="hidden" th:value="${topic.getTitle()}">
+                        <input name="topic-id" type="hidden" th:value="${topic.getId()}">
                         <button th:if="${session.user!=null}"
                                 type="submit" class="btn btn-outline-success btn-sm me-2 like-button"
@@ -74,5 +74,5 @@
                     </form>
                     <form th:action="@{/threads/{thread-id}/dislike(thread-id=${reply.getId()})}" method="post">
-                        <input type="hidden" name="topic-name" th:value="${topic.getTitle()}">
+                        <input type="hidden" name="topic-id" th:value="${topic.getId()}">
                         <button th:if="${session.user!=null}"
                                 class="btn btn-outline-danger btn-sm dislike-button"
@@ -94,5 +94,5 @@
         <!-- Add Reply Card Hidden -->
         <div th:attr="data-reply-id=${reply.getDiscussion().getId()}" class="card-body d-none reply-body">
-            <form th:action="@{/topics/{topic-name}/discussions/add(topic-name=${topic.getTitle()})}" method="post">
+            <form th:action="@{/topics/{topic-id}/discussions/add(topic-id=${topic.getId()})}" method="post">
                 <div class="mb-3">
                     <label class="form-label">Your Reply</label>
Index: src/main/resources/templates/home_pages/home.html
===================================================================
--- src/main/resources/templates/home_pages/home.html	(revision 873353c87bd59d9d9db035f7ce98e6628c7762f4)
+++ src/main/resources/templates/home_pages/home.html	(revision 61c5c2bb7570c674d83f2d1845be0fd1b65e550a)
@@ -158,5 +158,5 @@
             <div class="d-flex w-100 justify-content-between">
                 <h5 class="mb-1">
-                    <a th:href="@{/{type}/{name} (type=${thread.getTypeName()},name=${thread.getTitle()})}"
+                    <a th:href="@{/{type}/{id} (type=${thread.getTypeName()},id=${thread.getId()})}"
                        th:text="${thread.getTitle()}" class="text-decoration-none"></a>
                 </h5>
Index: src/main/resources/templates/project_pages/show-project.html
===================================================================
--- src/main/resources/templates/project_pages/show-project.html	(revision 873353c87bd59d9d9db035f7ce98e6628c7762f4)
+++ src/main/resources/templates/project_pages/show-project.html	(revision 61c5c2bb7570c674d83f2d1845be0fd1b65e550a)
@@ -94,5 +94,5 @@
                             <div class="d-flex">
                                 <h5 class="mb-1">
-                                    <a th:href="@{/topics/{name} (name=${topic.getTitle()})}"
+                                    <a th:href="@{/topics/{id} (id=${topic.getId()})}"
                                        th:text="${topic.getTitle()}" class="text-decoration-none"></a>
                                 </h5>
@@ -132,5 +132,4 @@
                 <div class="d-flex flex-row">
                     <form th:action="'/threads/' + ${project.getId()} + '/like'" method="post">
-                        <input type="hidden" name="threadId" th:value="${project.getId()}">
                         <button th:if="${session.user!=null}"
                                 type="submit" class="btn btn-outline-success btn-sm me-2 like-button">
@@ -140,5 +139,4 @@
                     </form>
                     <form th:action="'/threads/' + ${project.getId()} + '/dislike'" method="post">
-                        <input type="hidden" name="threadId" th:value="${project.getId()}">
                         <button th:if="${session.user!=null}"
                                 class="btn btn-outline-danger btn-sm dislike-button">
Index: src/main/resources/templates/show-topic.html
===================================================================
--- src/main/resources/templates/show-topic.html	(revision 873353c87bd59d9d9db035f7ce98e6628c7762f4)
+++ src/main/resources/templates/show-topic.html	(revision 61c5c2bb7570c674d83f2d1845be0fd1b65e550a)
@@ -41,5 +41,5 @@
     </div>
 </div>
-<main class="container mt-5">
+<main class="mb-5 container mt-5">
     <!-- Topic Title and Description -->
     <div class="card shadow-sm mb-4">
@@ -79,5 +79,5 @@
                 </div>
                 <div th:attr="data-reply-id=${topic.getId()}" class="card-body d-none reply-body">
-                    <form th:action="@{/topics/{topic-name}/discussions/add(topic-name=${topic.getTitle()})}"
+                    <form th:action="@{/topics/{topic-id}/discussions/add(topic-id=${topic.getId()})}"
                           method="post">
                         <div class="mb-3">
@@ -103,5 +103,5 @@
                 <div class="d-flex flex-row">
                     <form th:action="@{/threads/{thread-id}/like(thread-id=${topic.getId()})}" method="post">
-                        <input type="hidden" name="threadId" th:value="${topic.getId()}">
+                        <input type="hidden" name="topic-id" th:value="${topic.getId()}">
                         <button th:if="${session.user!=null}"
                                 type="submit" class="btn btn-outline-success btn-sm me-2 like-button">
@@ -111,5 +111,5 @@
                     </form>
                     <form th:action="@{/threads/{thread-id}/dislike(thread-id=${topic.getId()})}" method="post">
-                        <input type="hidden" name="threadId" th:value="${topic.getId()}">
+                        <input type="hidden" name="topic-id" th:value="${topic.getId()}">
                         <button th:if="${session.user!=null}"
                                 class="btn btn-outline-danger btn-sm dislike-button">
