Index: backend/controllers/forumController.js
===================================================================
--- backend/controllers/forumController.js	(revision 909821d87b77e470a89d64f5600d2259fb44dc15)
+++ backend/controllers/forumController.js	(revision 1f20dcf3b8cf36394e2b47f2b2d0e38fae9f2b84)
@@ -155,5 +155,5 @@
       const daysSince = Math.floor((now - createdAt) / (1000 * 60 * 60 * 24));
       const commentCount = post.comment_count || 0;
-      const score = commentCount * 2 - daysSince;
+      const score = Math.max(0, 100 - daysSince * 5) + commentCount * 2;
       return {
         ...post,
@@ -308,15 +308,8 @@
     }
 
-    if (
-      dateSort === 'past-week' ||
-      dateSort === 'past-month' ||
-      dateSort === 'past-year'
-    ) {
-      const fromDate = new Date();
-      if (dateSort === 'past-week') fromDate.setDate(fromDate.getDate() - 7);
-      if (dateSort === 'past-month') fromDate.setMonth(fromDate.getMonth() - 1);
-      if (dateSort === 'past-year')
-        fromDate.setFullYear(fromDate.getFullYear() - 1);
-      filters.push({ date_created: { gte: fromDate } });
+    if (dateSort === 'newest') {
+      orderBy.push({ date_created: 'desc' });
+    } else {
+      orderBy.push({ date_created: 'asc' });
     }
 
@@ -344,5 +337,5 @@
     }
 
-    const [posts, totalCount] = await Promise.all([
+    const [posts, totalCount, userPostsCount] = await Promise.all([
       prisma.forum_posts.findMany({
         where: whereCondition,
@@ -362,4 +355,9 @@
         where: whereCondition,
       }),
+      prisma.forum_posts.count({
+        where: {
+          author_id: userId,
+        },
+      }),
     ]);
 
@@ -375,4 +373,5 @@
       totalPages: Math.ceil(totalCount / limit),
       currentPage: page,
+      userPostsCount: userPostsCount,
     });
   } catch (err) {
Index: backend/controllers/reviewController.js
===================================================================
--- backend/controllers/reviewController.js	(revision 909821d87b77e470a89d64f5600d2259fb44dc15)
+++ backend/controllers/reviewController.js	(revision 1f20dcf3b8cf36394e2b47f2b2d0e38fae9f2b84)
@@ -172,14 +172,23 @@
     const userId = req.user.sub;
 
-    const pendingPosts = await prisma.to_be_reviewed.findMany({
-      where: {
-        author_id: userId,
-      },
-      orderBy: {
-        created_at: 'desc',
-      },
-    });
-
-    res.status(200).json(pendingPosts);
+    const [pendingPosts, pendingCount] = await Promise.all([
+      prisma.to_be_reviewed.findMany({
+        where: {
+          author_id: userId,
+        },
+        orderBy: {
+          created_at: 'desc',
+        },
+      }),
+      prisma.to_be_reviewed.count({
+        where: {
+          author_id: userId,
+        },
+      }),
+    ]);
+
+    res
+      .status(200)
+      .json({ pendingPosts: pendingPosts, pendingCount: pendingCount });
   } catch (err) {
     console.error("Error fetching user's pending posts:", err);
Index: client/src/CreatePost/CreatePost.jsx
===================================================================
--- client/src/CreatePost/CreatePost.jsx	(revision 909821d87b77e470a89d64f5600d2259fb44dc15)
+++ client/src/CreatePost/CreatePost.jsx	(revision 1f20dcf3b8cf36394e2b47f2b2d0e38fae9f2b84)
@@ -1,14 +1,19 @@
-import React, { useState, useEffect } from "react";
-import { useNavigate } from "react-router-dom";
-import { createForumPost } from "@/services/forumService";
-import { useAuth } from "@/contexts/AuthContext";
+import React, { useState, useEffect } from 'react';
+import { useNavigate, useLocation } from 'react-router-dom';
+import { createForumPost } from '@/services/forumService';
+import { useAuth } from '@/contexts/AuthContext';
 import {
   createApprovalForumPost,
   discardApprovalForumPost,
-} from "@/services/reviewService";
-import { getTasksForForumPost } from "@/services/taskService";
+} from '@/services/reviewService';
+import { getTasksForForumPost } from '@/services/taskService';
 const CreatePost = () => {
-  const [title, setTitle] = useState("");
-  const [content, setContent] = useState("");
+  const [title, setTitle] = useState('');
+  const [content, setContent] = useState('');
+  const location = useLocation();
+  const fromPath = location.state?.from || '/dashboard/forum';
+
+  const fromForumSearchParams = location.state?.fromForumSearch;
+  const fromUserPostsSearchParams = location.state?.fromUserPostsSearch;
   const { user } = useAuth();
   const [isSubmitting, setIsSubmitting] = useState(false);
@@ -16,29 +21,37 @@
   const [selectedChallengeId, setSelectedChallengeId] = useState(0);
   const [challenges, setChallenges] = useState([]);
-  const [topic, setTopic] = useState("general");
-  const [modal, setModal] = useState({ isOpen: false, message: "", type: "" });
+  const [topic, setTopic] = useState('general');
+  const [modal, setModal] = useState({ isOpen: false, message: '', type: '' });
   const navigate = useNavigate();
   useEffect(() => {
     if (modal.isOpen) {
-      document.body.style.overflow = "hidden";
+      document.body.style.overflow = 'hidden';
     } else {
-      document.body.style.overflow = "unset";
+      document.body.style.overflow = 'unset';
     }
 
     return () => {
-      document.body.style.overflow = "unset";
+      document.body.style.overflow = 'unset';
     };
   }, [modal.isOpen]);
 
-  const showModal = (message, type = "info") => {
+  const showModal = (message, type = 'info') => {
     setModal({ isOpen: true, message, type });
   };
 
   const closeModal = () => {
-    setModal({ isOpen: false, message: "", type: "" });
-    if (modal.type === "success" || modal.type === "pending") {
-      navigate("/dashboard/forum");
-    } else if (modal.type === "auth") {
-      navigate("/login");
+    setModal({ isOpen: false, message: '', type: '' });
+    if (modal.type === 'success' || modal.type === 'pending') {
+      let targetUrl = fromPath;
+
+      if (fromForumSearchParams) {
+        targetUrl = `${fromPath}?${fromForumSearchParams}`;
+      } else if (fromUserPostsSearchParams) {
+        targetUrl = `${fromPath}?${fromUserPostsSearchParams}`;
+      }
+
+      navigate(targetUrl);
+    } else if (modal.type === 'auth') {
+      navigate('/login');
     }
   };
@@ -48,5 +61,5 @@
     setTopic(selectedTopic);
 
-    if (selectedTopic === "daily-challenge") {
+    if (selectedTopic === 'daily-challenge') {
       console.log(challenges);
       if (!challenges || challenges.length === 0) {
@@ -56,8 +69,8 @@
         } catch (error) {
           setChallenges([]);
-          console.error("Error fetching challenges:", error);
+          console.error('Error fetching challenges:', error);
           showModal(
-            "Failed to load challenges. Please try again later.",
-            "error"
+            'Failed to load challenges. Please try again later.',
+            'error'
           );
         }
@@ -71,5 +84,5 @@
 
     if (!user || !user.id || !user.username) {
-      showModal("You must be logged in to create a post.", "auth");
+      showModal('You must be logged in to create a post.', 'auth');
       setIsSubmitting(false);
       return;
@@ -84,32 +97,32 @@
         topic,
         challengeId:
-          topic === "daily-challenge" && challenges.length > 0
+          topic === 'daily-challenge' && challenges.length > 0
             ? challenges[selectedChallengeId]?.id || null
             : null,
       };
       const res = await createForumPost(postData);
-      if (res.reason === "USER_FLAGGED") {
+      if (res.reason === 'USER_FLAGGED') {
         console.log(res.message);
         setPendingModerator(true);
-        showModal(res.message, "moderatorPrompt");
-      } else if (res.message.includes("moderator approval")) {
-        showModal(res.message, "pending");
+        showModal(res.message, 'moderatorPrompt');
+      } else if (res.message.includes('moderator approval')) {
+        showModal(res.message, 'pending');
       } else {
-        showModal("Post created successfully!", "success");
+        showModal('Post created successfully!', 'success');
       }
     } catch (error) {
-      console.error("Error creating post:", error);
+      console.error('Error creating post:', error);
       if (error.response) {
         if (
           error.response.status === 202 &&
-          error.response.data?.message?.includes("moderator approval")
+          error.response.data?.message?.includes('moderator approval')
         ) {
           showModal(
             error.response.data.message ||
-              "Content is too long. Your post has been submitted for moderator approval.",
-            "pending"
+              'Content is too long. Your post has been submitted for moderator approval.',
+            'pending'
           );
         } else if (error.response.status === 401) {
-          showModal("Authentication failed. Please log in again.", "auth");
+          showModal('Authentication failed. Please log in again.', 'auth');
         } else {
           showModal(
@@ -117,9 +130,9 @@
               error.response.data?.message ||
               `Error: ${error.message}`,
-            "error"
+            'error'
           );
         }
       } else {
-        showModal(`An unexpected error occurred: ${error.message}`, "error");
+        showModal(`An unexpected error occurred: ${error.message}`, 'error');
       }
     } finally {
@@ -129,5 +142,5 @@
   const handleModeratorDecision = async (decision) => {
     setPendingModerator(false);
-    if (decision === "yes") {
+    if (decision === 'yes') {
       try {
         const postData = {
@@ -140,21 +153,21 @@
 
         showModal(
-          res.message || "Your post has been submitted for moderator approval.",
-          "pending"
+          res.message || 'Your post has been submitted for moderator approval.',
+          'pending'
         );
       } catch (error) {
         showModal(
           error.response?.data?.error ||
-            "Failed to submit post for moderator approval.",
-          "error"
+            'Failed to submit post for moderator approval.',
+          'error'
         );
       }
     } else {
       discardApprovalForumPost(user.id);
-      setModal({ isOpen: false, message: "", type: "" });
+      setModal({ isOpen: false, message: '', type: '' });
     }
   };
   useEffect(() => {
-    if (topic === "daily-challenge" && challenges.length > 0) {
+    if (topic === 'daily-challenge' && challenges.length > 0) {
       setSelectedChallengeId(0);
     }
@@ -172,5 +185,10 @@
           </h2>
           <button
-            onClick={() => navigate("/dashboard/forum")}
+            onClick={() => {
+              const targetUrl = fromForumSearchParams
+                ? `${fromPath}?${fromForumSearchParams}`
+                : fromPath;
+              navigate(targetUrl);
+            }}
             className="btn btn-outline btn-sm sm:btn-md gap-2 w-full sm:w-auto"
           >
@@ -287,7 +305,7 @@
                 </select>
               </div>
-              {topic === "daily-challenge" &&
+              {topic === 'daily-challenge' &&
                 challenges.length > 0 &&
-                typeof selectedChallengeId === "number" && (
+                typeof selectedChallengeId === 'number' && (
                   <div className="form-control w-full">
                     <label className="label mb-1.5">
@@ -333,15 +351,15 @@
                             <h3 className="font-semibold text-base sm:text-lg text-base-content leading-tight">
                               {challenges[selectedChallengeId]?.title
-                                .split("-")
+                                .split('-')
                                 .map(
                                   (word) =>
                                     word.charAt(0).toUpperCase() + word.slice(1)
                                 )
-                                .join(" ") || "No challenge title"}
+                                .join(' ') || 'No challenge title'}
                             </h3>
                             {challenges[selectedChallengeId]?.solving_date &&
                               selectedChallengeId > 0 && (
                                 <p className="text-xs sm:text-sm text-base-content/70 mt-1">
-                                  This challenge was available on:{" "}
+                                  This challenge was available on:{' '}
                                   <span className="underline">
                                     {new Date(
@@ -349,8 +367,8 @@
                                         selectedChallengeId
                                       ].solving_date
-                                    ).toLocaleDateString("en-GB", {
-                                      day: "2-digit",
-                                      month: "short",
-                                      year: "numeric",
+                                    ).toLocaleDateString('en-GB', {
+                                      day: '2-digit',
+                                      month: 'short',
+                                      year: 'numeric',
                                     })}
                                   </span>
@@ -453,5 +471,5 @@
               <button
                 type="button"
-                onClick={() => navigate("/dashboard/forum")}
+                onClick={() => navigate('/dashboard/forum')}
                 className="btn btn-ghost btn-md sm:btn-lg w-full sm:w-auto order-2 sm:order-1"
                 disabled={isSubmitting}
@@ -470,5 +488,5 @@
                   </>
                 ) : (
-                  "Publish Post"
+                  'Publish Post'
                 )}
               </button>
@@ -488,5 +506,5 @@
           <div className="bg-base-200 rounded-lg shadow-xl p-4 sm:p-6 w-full max-w-sm sm:max-w-md mx-4">
             <div className="flex items-center gap-3 mb-4">
-              {modal.type === "success" && (
+              {modal.type === 'success' && (
                 <div className="w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-success flex items-center justify-center shrink-0">
                   <svg
@@ -505,5 +523,5 @@
                 </div>
               )}
-              {modal.type === "pending" && (
+              {modal.type === 'pending' && (
                 <div className="w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-warning flex items-center justify-center shrink-0">
                   <svg
@@ -522,5 +540,5 @@
                 </div>
               )}
-              {modal.type == "moderatorPrompt" && (
+              {modal.type == 'moderatorPrompt' && (
                 <div className="w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-warning flex items-center justify-center shrink-0">
                   <svg
@@ -539,5 +557,5 @@
                 </div>
               )}
-              {(modal.type === "auth" || modal.type === "error") && (
+              {(modal.type === 'auth' || modal.type === 'error') && (
                 <div className="w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-error flex items-center justify-center shrink-0">
                   <svg
@@ -547,5 +565,5 @@
                     viewBox="0 0 24 24"
                   >
-                    {modal.type === "auth" ? (
+                    {modal.type === 'auth' ? (
                       <path
                         strokeLinecap="round"
@@ -566,10 +584,10 @@
               )}
               <h3 className="font-bold text-base sm:text-lg" id="modal-title">
-                {modal.type === "success" && "Success!"}
-                {modal.type === "pending" && "Pending Approval"}
-                {modal.type === "auth" && "Authentication Required"}
-                {modal.type === "error" && "Error"}
-                {modal.type === "moderatorPrompt" &&
-                  "We found your recent posts inappropriate"}
+                {modal.type === 'success' && 'Success!'}
+                {modal.type === 'pending' && 'Pending Approval'}
+                {modal.type === 'auth' && 'Authentication Required'}
+                {modal.type === 'error' && 'Error'}
+                {modal.type === 'moderatorPrompt' &&
+                  'We found your recent posts inappropriate'}
               </h3>
             </div>
@@ -580,9 +598,9 @@
             </div>
             <div className="flex justify-end gap-2 mt-6 sm:mt-8">
-              {modal.type === "moderatorPrompt" ? (
+              {modal.type === 'moderatorPrompt' ? (
                 <>
                   <button
                     className="btn btn-success btn-sm sm:btn-md"
-                    onClick={() => handleModeratorDecision("yes")}
+                    onClick={() => handleModeratorDecision('yes')}
                   >
                     Yes
@@ -590,5 +608,5 @@
                   <button
                     className="btn btn-error btn-sm sm:btn-md"
-                    onClick={() => handleModeratorDecision("no")}
+                    onClick={() => handleModeratorDecision('no')}
                   >
                     No
Index: client/src/Dashboard/components/Forum.jsx
===================================================================
--- client/src/Dashboard/components/Forum.jsx	(revision 909821d87b77e470a89d64f5600d2259fb44dc15)
+++ client/src/Dashboard/components/Forum.jsx	(revision 1f20dcf3b8cf36394e2b47f2b2d0e38fae9f2b84)
@@ -193,5 +193,12 @@
             <div className="pt-3 pr-3 flex gap-3 justify-end">
               <button
-                onClick={() => navigate('/dashboard/create-post')}
+                onClick={() => {
+                  navigate(`/dashboard/create-post`, {
+                    state: {
+                      from: '/dashboard/forum',
+                      fromForumSearch: forumSearchParams.toString(),
+                    },
+                  });
+                }}
                 className="btn bg-[#FFB800] text-black btn-sm gap-1"
               >
@@ -215,4 +222,5 @@
                   navigate(`/dashboard/user-posts`, {
                     state: {
+                      from: '/dashboard/forum',
                       fromForumSearch: forumSearchParams.toString(),
                     },
@@ -663,5 +671,5 @@
                           {post.challengeTitle && (
                             <span className="inline-block bg-yellow-100 text-yellow-800 text-xs font-medium px-1 py-0.5 rounded truncate max-w-[120px]">
-                              {post.challengeTitle}
+                              {formatFilterLabel(post.challengeTitle)}
                             </span>
                           )}
Index: client/src/Dashboard/components/ManagePosts.jsx
===================================================================
--- client/src/Dashboard/components/ManagePosts.jsx	(revision 909821d87b77e470a89d64f5600d2259fb44dc15)
+++ client/src/Dashboard/components/ManagePosts.jsx	(revision 1f20dcf3b8cf36394e2b47f2b2d0e38fae9f2b84)
@@ -217,4 +217,11 @@
 
   const isLoading = authLoading || isFetching;
+  const formatFilterLabel = (value) => {
+    if (!value) return '';
+    return value
+      .split('-')
+      .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
+      .join(' ');
+  };
 
   return (
@@ -292,5 +299,5 @@
                         <input
                           type="text"
-                          placeholder="Search titles and content..."
+                          placeholder="Search by title, content or author"
                           value={filters.searchText}
                           onChange={(e) =>
@@ -638,5 +645,5 @@
                   {post.challengeTitle && (
                     <span className="inline-block bg-yellow-100 text-yellow-800 text-xs font-semibold px-1.5 py-0.5 rounded">
-                      {post.challengeTitle}
+                      {formatFilterLabel(post.challengeTitle)}
                     </span>
                   )}
Index: client/src/Dashboard/components/UserPosts.jsx
===================================================================
--- client/src/Dashboard/components/UserPosts.jsx	(revision 909821d87b77e470a89d64f5600d2259fb44dc15)
+++ client/src/Dashboard/components/UserPosts.jsx	(revision 1f20dcf3b8cf36394e2b47f2b2d0e38fae9f2b84)
@@ -18,5 +18,5 @@
   const fromPath = location.state?.from || '/dashboard/forum';
 
-  const fromForumSearchPrams = location.state?.fromForumSearch;
+  const fromForumSearchParams = location.state?.fromForumSearch;
   const [searchParams, setSearchParams] = useSearchParams();
   const [isCalendarOpen, setIsCalendarOpen] = useState(false);
@@ -24,4 +24,6 @@
   const [activeTab, setActiveTab] = useState('published');
   const navigate = useNavigate();
+  const [totalUserPosts, setTotalUserPosts] = useState(0);
+  const [totalPendingPosts, setTotalPendingPosts] = useState(0);
   const [currentPage, setCurrentPage] = useState(1);
   const [totalPages, setTotalPages] = useState(1);
@@ -67,5 +69,6 @@
 
         const data = await getPendingPosts();
-        setPendingPosts(data);
+        setPendingPosts(data.pendingPosts);
+        setTotalPendingPosts(data.pendingCount);
 
         const newTotalPages = Math.ceil(data.length / PENDING_PAGE_SIZE);
@@ -102,5 +105,5 @@
       setApprovedPosts(approvedData.posts || []);
       setTotalPages(approvedData.totalPages || 1);
-
+      setTotalUserPosts(approvedData.userPostsCount);
       closeModal();
       showModal('Post deleted successfully.', 'success');
@@ -113,5 +116,14 @@
 
   const [isDeleting, setIsDeleting] = useState(false);
-  const [filters, setFilters] = useState({ ...defaultFilters });
+  const [filters, setFilters] = useState(() => {
+    const initialFilters = { ...defaultFilters };
+    const urlParams = new URLSearchParams(window.location.search);
+    for (const [key, value] of urlParams.entries()) {
+      if (key in initialFilters) {
+        initialFilters[key] = value;
+      }
+    }
+    return initialFilters;
+  });
   const [appliedFilters, setAppliedFilters] = useState(() => {
     //Useful?
@@ -211,4 +223,5 @@
           setApprovedPosts(approvedData.posts || []);
           setTotalPages(approvedData.totalPages || 1);
+          setTotalUserPosts(approvedData.userPostsCount);
         } catch (error) {
           console.error('Error fetching user posts:', error);
@@ -227,5 +240,6 @@
     const fetchPendingPosts = async () => {
       const data = await getPendingPosts();
-      setPendingPosts(data);
+      setPendingPosts(data.pendingPosts);
+      setTotalPendingPosts(data.pendingCount);
     };
     fetchPendingPosts();
@@ -262,5 +276,5 @@
                   </svg>
                   <span className="text-xs sm:text-sm lg:text-base">
-                    Published ({approvedPosts.length})
+                    Published ({totalUserPosts})
                   </span>
                 </button>
@@ -295,5 +309,12 @@
               <div className="flex gap-3 absolute right-0">
                 <button
-                  onClick={() => navigate('/dashboard/create-post')}
+                  onClick={() => {
+                    navigate(`/dashboard/create-post`, {
+                      state: {
+                        from: '/dashboard/user-posts',
+                        fromUserPostsSearch: searchParams.toString(),
+                      },
+                    });
+                  }}
                   className="btn bg-[#FFB800] text-black btn-sm gap-1"
                 >
@@ -315,6 +336,6 @@
                 <button
                   onClick={() => {
-                    const targetUrl = fromForumSearchPrams
-                      ? `${fromPath}?${fromForumSearchPrams}`
+                    const targetUrl = fromForumSearchParams
+                      ? `${fromPath}?${fromForumSearchParams}`
                       : fromPath;
                     navigate(targetUrl);
@@ -476,7 +497,5 @@
                           >
                             <option value="newest">Most Recent</option>
-                            <option value="past-week">Past Week</option>
-                            <option value="past-month">Past Month</option>
-                            <option value="past-year">Past Year</option>
+                            <option value="oldest-first">Oldest First</option>
                           </select>
                         </div>
@@ -646,5 +665,5 @@
                         <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                           <span className="font-medium text-xs">
-                            {filters.dateSort === 'oldest'
+                            {filters.dateSort === 'oldest-first'
                               ? 'Oldest First'
                               : 'Most Recent'}
@@ -763,5 +782,5 @@
                                     {post.challengeTitle && (
                                       <span className="inline-block bg-yellow-100 text-yellow-800 text-xs font-semibold px-1.5 py-0.5 rounded">
-                                        {post.challengeTitle}
+                                        {formatFilterLabel(post.challengeTitle)}
                                       </span>
                                     )}
Index: client/src/services/forumService.js
===================================================================
--- client/src/services/forumService.js	(revision 909821d87b77e470a89d64f5600d2259fb44dc15)
+++ client/src/services/forumService.js	(revision 1f20dcf3b8cf36394e2b47f2b2d0e38fae9f2b84)
@@ -85,5 +85,5 @@
     }
 
-    if (filters.dateSort && filters.dateSort !== 'newest') {
+    if (filters.dateSort) {
       url += `&sort=${filters.dateSort}`;
     }
