Index: backend/controllers/forumController.js
===================================================================
--- backend/controllers/forumController.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ backend/controllers/forumController.js	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -177,4 +177,20 @@
 };
 
+const getAllPostsByUser = async (req, res) => {
+  const userId = req.user.sub;
+  try {
+    const posts = await prisma.forum_posts.findMany({
+      where: { author_id: userId },
+      orderBy: {
+        date_created: "desc",
+      },
+    });
+    res.status(200).json(posts);
+  } catch (err) {
+    console.error("Error fetching posts by user:", err);
+    res.status(500).json({ error: "Failed to fetch user posts" });
+  }
+};
+
 const deleteForumPost = async (req, res) => {
   const { id } = req.params;
@@ -343,4 +359,5 @@
   createForumPost,
   getForumPosts,
+  getAllPostsByUser,
 
   deleteForumPost,
Index: backend/controllers/reviewController.js
===================================================================
--- backend/controllers/reviewController.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ backend/controllers/reviewController.js	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -97,5 +97,5 @@
   try {
     const userId = req.user.sub;
-    console.log(userId);
+
     const pendingPosts = await prisma.to_be_reviewed.findMany({
       where: {
@@ -106,5 +106,5 @@
       },
     });
-    console.log(pendingPosts);
+
     res.status(200).json(pendingPosts);
   } catch (err) {
Index: backend/routers/forumRouter.js
===================================================================
--- backend/routers/forumRouter.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ backend/routers/forumRouter.js	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -5,4 +5,5 @@
 router.post("/posts", forumController.createForumPost);
 router.get("/posts", forumController.getForumPosts);
+router.get("/user-posts", forumController.getAllPostsByUser);
 
 router.delete("/posts/:id", forumController.deleteForumPost);
Index: backend/scripts/scriptForTesting.js
===================================================================
--- backend/scripts/scriptForTesting.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ backend/scripts/scriptForTesting.js	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -1,5 +1,5 @@
 const { start } = require("repl");
 const prisma = require("../lib/prisma");
-
+const { sendModeratorEmail } = require("../services/emailService");
 // async function getTodaysChallenges() {
 //   try {
@@ -59,22 +59,77 @@
 // getTodaysChallenges();
 
-async function resetUsers() {
+// async function resetUsers() {
+//   try {
+//     const usersOutput = await prisma.users.updateMany({
+//       data: {
+//         solvedDailyChallenge: false,
+//         daily_test_case_id: null,
+//         daily_points: 0,
+//         attempts: 0,
+//       },
+//     });
+//     console.log(
+//       `Daily reset process completed successfully. Updated ${usersOutput.count} users to reset their daily challenge status.`
+//     );
+//   } catch (error) {
+//     console.error("Error resetting users:", error);
+//     process.exitCode = 1;
+//   }
+// }
+
+// resetUsers();
+
+async function sendmailToModerators() {
   try {
-    const usersOutput = await prisma.users.updateMany({
-      data: {
-        solvedDailyChallenge: false,
-        daily_test_case_id: null,
-        daily_points: 0,
-        attempts: 0,
+    // 1. Define the time threshold (24 hours ago)
+    const oneDayAgo = new Date();
+    oneDayAgo.setDate(oneDayAgo.getDate());
+
+    // 2. Check if there are any posts older than the threshold
+    const postsToReviewCount = await prisma.to_be_reviewed.count({
+      where: {
+        created_at: {
+          lt: oneDayAgo, // 'lt' means "less than"
+        },
       },
     });
-    console.log(
-      `Daily reset process completed successfully. Updated ${usersOutput.count} users to reset their daily challenge status.`
-    );
+
+    console.log(`Found ${postsToReviewCount} post(s) older than 24 hours.`);
+
+    // 3. If no old posts, exit gracefully
+    if (postsToReviewCount === 0) {
+      console.log("No old posts to review. No emails sent.");
+      return;
+    }
+
+    // 4. If there are old posts, get all moderators
+    const moderators = await prisma.users.findMany({
+      where: {
+        isModerator: true,
+      },
+      select: {
+        email: true, // Only select the email field
+      },
+    });
+
+    if (moderators.length === 0) {
+      console.log(
+        "Found old posts, but no moderators are defined in the system."
+      );
+      return;
+    }
+
+    const moderatorEmails = moderators.map((m) => m.email);
+
+    moderatorEmails.forEach((email) => {
+      sendModeratorEmail(email, postsToReviewCount);
+    });
   } catch (error) {
-    console.error("Error resetting users:", error);
+    console.error("Error in sendEmailToModerators script:", error);
     process.exitCode = 1;
+  } finally {
+    await prisma.$disconnect();
   }
 }
 
-resetUsers();
+sendmailToModerators();
Index: backend/services/emailService.js
===================================================================
--- backend/services/emailService.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ backend/services/emailService.js	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -57,4 +57,25 @@
   }
 };
+const sendModeratorEmail = async (userEmail, postsNumber) => {
+  const mailOptions = {
+    from: "FinkiRanked",
+    to: userEmail,
+    subject: "Action Required: Posts Awaiting Review",
+    html: `
+        <h1>Action Required: Posts Awaiting Review</h1>
+        <p>This is an automated notification to let you know that there are <strong>${postsNumber}</strong> forum post(s) that have been waiting for review for more than 24 hours.</p>
+        <p>Please log in to the moderator dashboard at your earliest convenience to review and approve or reject these submissions.</p>
+        <br>
+        <p>Thank you for your help in maintaining our community standards.</p>
+        <p>The FinkiRanked System</p>
+    `,
+  };
 
-module.exports = { sendApprovalEmail, sendDeletionEmail };
+  try {
+    await transporter.sendMail(mailOptions);
+    console.log(`Moderator email sent successfully to ${userEmail}`);
+  } catch (error) {
+    console.error(`Failed to send approval email to ${userEmail}:`, error);
+  }
+};
+module.exports = { sendApprovalEmail, sendDeletionEmail, sendModeratorEmail };
Index: client/src/App.jsx
===================================================================
--- client/src/App.jsx	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ client/src/App.jsx	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -15,4 +15,5 @@
 import ManageChallenges from "./Dashboard/components/ManageChallenges";
 import CreateNewChallenge from "./Dashboard/components/CreateNewChallenge";
+import UserPosts from "./Dashboard/components/userPosts";
 export default function App() {
   return (
@@ -42,4 +43,5 @@
         <Route path="manage-challenges" element={<ManageChallenges />} />
         <Route path="create-new-challenge" element={<CreateNewChallenge />} />
+        <Route path="user-posts" element={<UserPosts />} />
       </Route>
     </Routes>
Index: client/src/Dashboard/components/Forum.jsx
===================================================================
--- client/src/Dashboard/components/Forum.jsx	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ client/src/Dashboard/components/Forum.jsx	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -146,6 +146,16 @@
 
                     <p className="text-xs sm:text-sm lg:text-base text-gray-500 mb-2">
-                      By {post.author_name},{" "}
-                      <span>{post.date_created?.split("T")[0]}</span>
+                      By <span className="underline">{post.author_name}</span>{" "}
+                      <br></br>
+                      <span>
+                        {new Date(post.date_created).toLocaleDateString(
+                          "en-US",
+                          {
+                            year: "numeric",
+                            month: "short",
+                            day: "numeric",
+                          }
+                        )}
+                      </span>
                     </p>
                     <p className="mt-2 text-gray-400 text-sm sm:text-base lg:text-lg xl:text-xl line-clamp-3 sm:line-clamp-none">
Index: client/src/Dashboard/components/ForumPostDetail.jsx
===================================================================
--- client/src/Dashboard/components/ForumPostDetail.jsx	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ client/src/Dashboard/components/ForumPostDetail.jsx	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -25,4 +25,5 @@
   const location = useLocation();
   const statePost = useState(location.state?.post || {});
+  const fromPath = location.state?.from || "/dashboard/forum";
   const post = statePost[0];
   const [posting, setPosting] = useState(false);
@@ -122,7 +123,7 @@
           <button
             className="btn btn-ghost mb-4"
-            onClick={() => navigate("/dashboard/forum")}
+            onClick={() => navigate(fromPath)}
           >
-            ← Back to Forum
+            ← Back to {fromPath.includes("user-posts") ? "Your Posts" : "Forum"}
           </button>
           <div className="card bg-base-100 shadow-xl  p-6 mb-8">
Index: client/src/Dashboard/components/Navbar.jsx
===================================================================
--- client/src/Dashboard/components/Navbar.jsx	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ client/src/Dashboard/components/Navbar.jsx	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -22,4 +22,10 @@
         location.pathname === "/dashboard/create-post" ||
         location.pathname.startsWith("/dashboard/forum-detail/"))
+    ) {
+      return true;
+    }
+    if (
+      path === "/dashboard/user-posts" &&
+      location.pathname === "/dashboard/user-posts"
     ) {
       return true;
@@ -139,4 +145,30 @@
               </svg>
               Forum
+            </button>
+          </li>
+          <li>
+            <button
+              className={`flex items-center gap-4 px-4 py-3 rounded-lg transition-colors ${
+                isActive("/dashboard/user-posts")
+                  ? "bg-[#FFB800] text-black"
+                  : "hover:bg-[#FFB800] hover:text-black"
+              }`}
+              onClick={() => navigate("/dashboard/user-posts")}
+            >
+              <svg
+                xmlns="http://www.w3.org/2000/svg"
+                className="w-5 h-5"
+                viewBox="0 0 24 24"
+                fill="none"
+                stroke="currentColor"
+                strokeWidth="2"
+              >
+                <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
+                <polyline points="14 2 14 8 20 8"></polyline>
+                <line x1="16" y1="13" x2="8" y2="13"></line>
+                <line x1="16" y1="17" x2="8" y2="17"></line>
+                <polyline points="10 9 9 9 8 9"></polyline>
+              </svg>
+              Your Forum Posts
             </button>
           </li>
Index: client/src/Dashboard/components/Profile.jsx
===================================================================
--- client/src/Dashboard/components/Profile.jsx	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ client/src/Dashboard/components/Profile.jsx	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -5,10 +5,7 @@
 import { useAuth } from "../../contexts/AuthContext.jsx";
 import { useNavigate } from "react-router-dom";
-import { useEffect } from "react";
-import { getPendingPosts } from "@/services/reviewService";
+
 const Profile = () => {
-  const { user, loading, logout } = useAuth();
-  const [pendingPosts, setPendingPosts] = useState([]);
-  const [loadingPosts, setLoadingPosts] = useState(false);
+  const { user, loading } = useAuth();
 
   const navigate = useNavigate();
@@ -17,79 +14,89 @@
     navigate("/logout");
   };
-  useEffect(() => {
-    if (user) {
-      const fetchPendingPosts = async () => {
-        try {
-          const data = await getPendingPosts();
-
-          setPendingPosts(data);
-        } catch (error) {
-          console.error("Error fetching pending posts:", error);
-        } finally {
-          setLoadingPosts(false);
-        }
-      };
-      fetchPendingPosts();
-    }
-  }, []);
 
   return (
     <div
       data-theme="luxury"
-      className="dashboard h-screen flex bg-base-100 overflow-none"
+      className="dashboard min-h-screen flex bg-gradient-to-br from-base-100 to-base-200"
     >
       <div
         data-theme="luxury"
-        className="w-full flex flex-col items-center p-6 bg-base-200"
+        className="w-full flex flex-col items-center p-6"
       >
-        <div className="card w-full max-w-md bg-base-100 shadow-xl">
-          <div className="card-body items-center text-center">
+        <div className="card w-full max-w-2xl bg-base-100 shadow-2xl border border-base-300">
+          <div className="card-body">
             {loading ? (
-              <span className="loading loading-spinner loading-lg"></span>
+              <div className="flex flex-col items-center justify-center py-12">
+                <span className="loading loading-spinner loading-lg text-primary"></span>
+                <p className="mt-4 text-base-content/70">Loading profile...</p>
+              </div>
             ) : (
               <>
-                <div className="avatar">
-                  <div className="w-24 rounded-full ring ring-primary ring-offset-base-100 ring-offset-2">
-                    <img src={pp} alt="Profile" />
+                {/* Profile Header */}
+                <div className="flex flex-col items-center text-center mb-8">
+                  <div className="avatar mb-4">
+                    <div className="w-32 rounded-full ring-4 ring-primary ring-offset-4 ring-offset-base-100 shadow-lg">
+                      <img src={pp} alt="Profile" className="object-cover" />
+                    </div>
+                  </div>
+                  <h1 className="text-3xl font-bold text-base-content mb-2">
+                    {user.name}
+                  </h1>
+                  <p className="text-base-content/60 text-lg">{user.email}</p>
+                </div>
+                <div className="flex flex-row justify-center">
+                  <div className="bg-gradient-to-r from-tertiary/10 to-tertiary/5 p-4  w-50 rounded-lg border border-tertiary/20 flex flex-col items-center mb-8">
+                    <RankBadgeNav rankName={user.rank} size="lg" />
+                    <p className="text-sm text-base-content/70 mt-2">
+                      Current Rank
+                    </p>
                   </div>
                 </div>
-                <h2 className="card-title mt-4">{user.name}</h2>
-                <p className="text-gray-500">{user.email}</p>
-                <div className="mt-4">
-                  <div className="text-lg">
-                    <RankBadgeNav rankName={user.rank} size="lg" />
+                {/* Stats Section */}
+                <div className="grid grid-cols-1 md:grid-cols-2 gap-4 mb-8">
+                  <div className="bg-gradient-to-r from-secondary/10 to-secondary/5 p-4 rounded-lg border border-secondary/20">
+                    <div className="flex flex-col items-center">
+                      <span className="text-2xl font-bold text-secondary">
+                        {user.points}
+                      </span>
+                      <p className="text-sm text-base-content/70">
+                        Total Points
+                      </p>
+                    </div>
                   </div>
-                  <p className="text-lg mt-5">
-                    <span className="font-bold">Total Points:</span>{" "}
-                    {user.points}
-                  </p>
-                  <p className="text-lg mt-5">
-                    <span className="font-bold">Solved Challenges:</span>{" "}
-                    {user.solved_problems}
-                  </p>
+
+                  <div className="bg-gradient-to-r from-accent/10 to-accent/5 p-4 rounded-lg border border-accent/20">
+                    <div className="flex flex-col items-center">
+                      <span className="text-2xl font-bold text-accent">
+                        {user.solved_problems}
+                      </span>
+                      <p className="text-sm text-base-content/70">
+                        Solved Challenges
+                      </p>
+                    </div>
+                  </div>
                 </div>
-                <div className="w-full mt-6">
-                  <h3 className="text-xl font-bold">Posts Awaiting Approval</h3>
-                  {loadingPosts ? (
-                    <span className="loading loading-spinner loading-md mt-2"></span>
-                  ) : pendingPosts.length > 0 ? (
-                    <ul className="mt-2 text-left list-disc list-inside bg-base-200 p-4 rounded-lg">
-                      {pendingPosts.map((post) => (
-                        <li key={post.id}>{post.title}</li>
-                      ))}
-                    </ul>
-                  ) : (
-                    <p className="mt-2 text-gray-500">
-                      You have no posts waiting for review.
-                    </p>
-                  )}
-                </div>
-                <div className="mt-6">
-                  <a
+
+                {/* Sign Out Button */}
+                <div className="flex justify-center">
+                  <button
                     onClick={handleSignOut}
-                    className="btn btn-action btn-sm mx-2"
+                    className="btn btn-outline btn-error hover:btn-error hover:shadow-lg transition-all duration-200"
                   >
+                    <svg
+                      className="w-4 h-4 mr-2"
+                      fill="none"
+                      stroke="currentColor"
+                      viewBox="0 0 24 24"
+                    >
+                      <path
+                        strokeLinecap="round"
+                        strokeLinejoin="round"
+                        strokeWidth="2"
+                        d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"
+                      ></path>
+                    </svg>
                     Sign Out
-                  </a>
+                  </button>
                 </div>
               </>
Index: client/src/Dashboard/components/UserPosts.jsx
===================================================================
--- client/src/Dashboard/components/UserPosts.jsx	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
+++ client/src/Dashboard/components/UserPosts.jsx	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -0,0 +1,344 @@
+import { useAuth } from "../../contexts/AuthContext.jsx";
+import { useEffect, useState } from "react";
+import { useNavigate } from "react-router-dom";
+import { getPendingPosts } from "@/services/reviewService";
+import { getAllPostsByUser } from "@/services/forumService.js";
+import commentIcon from "../../assets/images/comment.svg";
+
+const UserPosts = () => {
+  const { user } = useAuth();
+  const [approvedPosts, setApprovedPosts] = useState([]);
+  const [pendingPosts, setPendingPosts] = useState([]);
+  const [loading, setLoading] = useState(true);
+  const [activeTab, setActiveTab] = useState("published");
+  const [searchQuery, setSearchQuery] = useState("");
+  const navigate = useNavigate();
+  useEffect(() => {
+    if (user) {
+      const fetchAllPosts = async () => {
+        try {
+          setLoading(true);
+
+          const [approvedData, pendingData] = await Promise.all([
+            getAllPostsByUser(),
+            getPendingPosts(),
+          ]);
+
+          setApprovedPosts(approvedData);
+          console.log(approvedData);
+          setPendingPosts(pendingData);
+        } catch (error) {
+          console.error("Error fetching user posts:", error);
+        } finally {
+          setLoading(false);
+        }
+      };
+
+      fetchAllPosts();
+    }
+  }, []);
+
+  const filteredApprovedPosts = approvedPosts.filter((post) => {
+    const searchLower = searchQuery.toLowerCase();
+    const postDate = new Date(post.date_created).toLocaleDateString("en-US", {
+      year: "numeric",
+      month: "short",
+      day: "numeric",
+    });
+
+    return (
+      post.title.toLowerCase().includes(searchLower) ||
+      post.content.toLowerCase().includes(searchLower) ||
+      postDate.toLowerCase().includes(searchLower)
+    );
+  });
+
+  if (loading) {
+    return (
+      <div className="flex justify-center items-center h-full">
+        <span className="loading loading-spinner loading-lg"></span>
+      </div>
+    );
+  }
+
+  return (
+    <div className="p-4 md:p-6 lg:p-8 bg-gradient-to-br from-base-100 to-base-200 min-h-screen min-w-[515px]">
+      {/* Tab Navigation */}
+      <div className="flex justify-center mb-6 sm:mb-8 gap-2 ">
+        <div className="rounded-lg bg-base-300 p-1 flex gap-2">
+          <button
+            className={`tab tab-md sm:tab-lg rounded-lg ${
+              activeTab === "published"
+                ? "tab-active bg-[#FFB800] text-black hover:text-black"
+                : "hover:bg-base-200 "
+            }`}
+            onClick={() => setActiveTab("published")}
+          >
+            <svg
+              className="w-4 h-4 mr-2 "
+              fill="none"
+              stroke="currentColor"
+              viewBox="0 0 24 24"
+            >
+              <path
+                strokeLinecap="round"
+                strokeLinejoin="round"
+                strokeWidth="2"
+                d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
+              ></path>
+            </svg>
+            <span>Published ({filteredApprovedPosts.length})</span>
+          </button>
+          <button
+            className={`tab tab-md sm:tab-lg rounded-lg ${
+              activeTab === "pending"
+                ? "tab-active bg-[#FFB800] text-black hover:text-black"
+                : "hover:bg-base-200 "
+            }`}
+            onClick={() => setActiveTab("pending")}
+          >
+            <svg
+              className="w-4 h-4 mr-2"
+              fill="none"
+              stroke="currentColor"
+              viewBox="0 0 24 24"
+            >
+              <path
+                strokeLinecap="round"
+                strokeLinejoin="round"
+                strokeWidth="2"
+                d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"
+              ></path>
+            </svg>
+            <span>Pending ({pendingPosts.length})</span>
+          </button>
+        </div>
+      </div>
+      <div className="mb-6 sm:mb-8 flex justify-center">
+        <div className="relative w-full max-w-lg">
+          {activeTab == "published" && (
+            <>
+              <input
+                type="text"
+                placeholder="Search your posts by title or content..."
+                className="input input-bordered w-full pl-10"
+                value={searchQuery}
+                onChange={(e) => setSearchQuery(e.target.value)}
+              />
+              <svg
+                className="w-5 h-5 absolute top-1/2 left-3 transform -translate-y-1/2 text-base-content/40 z-10"
+                fill="none"
+                stroke="currentColor"
+                viewBox="0 0 24 24"
+              >
+                <path
+                  strokeLinecap="round"
+                  strokeLinejoin="round"
+                  strokeWidth="2"
+                  d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
+                ></path>
+              </svg>
+            </>
+          )}
+        </div>
+      </div>
+
+      {/* Tab Content */}
+      <div className="animate-fadeIn">
+        {activeTab === "published" && (
+          <div>
+            <div className="flex items-center mb-6">
+              <div className="w-1 h-8 bg-success rounded-full mr-2 sm:mr-4"></div>
+              <h2 className="text-lg sm:text-xl font-semibold text-base-content">
+                Your Published Posts
+              </h2>
+              <div className="flex-1 h-px bg-gradient-to-r from-[#FFB800]/30 to-transparent ml-2 sm:ml-4"></div>
+            </div>
+
+            {filteredApprovedPosts.length > 0 ? (
+              <div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
+                {filteredApprovedPosts.map((post) => (
+                  <div
+                    key={post.id}
+                    className="card bg-base-100 shadow-lg hover:shadow-xl transition-all duration-300 border "
+                  >
+                    <div className="card-body p-4 sm:p-6">
+                      <div className="flex">
+                        <h3
+                          className="card-title text-base sm:text-lg mb-3 text-base-content line-clamp-2 hover:underline cursor-pointer "
+                          onClick={() => {
+                            navigate(`/dashboard/forum-detail/${post.id}`, {
+                              state: { post, from: "/dashboard/user-posts" },
+                            });
+                          }}
+                        >
+                          {post.title}
+                        </h3>
+                      </div>
+                      <p className="mt-2 text-gray-400 text-sm sm:text-base  line-clamp-3 sm:line-clamp-none">
+                        {post.content && post.content.length > 150
+                          ? post.content.slice(0, 150) + "..."
+                          : post.content}
+                      </p>
+                      <div className="flex items-center text-xs sm:text-sm text-base-content/60 mb-4">
+                        <svg
+                          className="w-4 h-4 mr-2"
+                          fill="none"
+                          stroke="currentColor"
+                          viewBox="0 0 24 24"
+                        >
+                          <path
+                            strokeLinecap="round"
+                            strokeLinejoin="round"
+                            strokeWidth="2"
+                            d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"
+                          ></path>
+                        </svg>
+                        {new Date(post.date_created).toLocaleDateString(
+                          "en-US",
+                          {
+                            year: "numeric",
+                            month: "short",
+                            day: "numeric",
+                          }
+                        )}
+                      </div>
+
+                      <div className="card-actions justify-end mt-auto">
+                        <div className="flex items-center space-x-2">
+                          <div className="flex items-center gap-2 text-sm sm:text-base  ">
+                            {post.comment_count}
+                            <img
+                              src={commentIcon}
+                              alt="Comment"
+                              className="w-2 h-2 sm:w-5 sm:h-5 lg:w-6 lg:h-6 hover:opacity-80"
+                            />
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                ))}
+              </div>
+            ) : (
+              <div className="text-center py-8 sm:py-12">
+                <div className="w-16 h-16 sm:w-20 sm:h-20 bg-base-300 rounded-full flex items-center justify-center mx-auto mb-4">
+                  <svg
+                    className="w-8 h-8 sm:w-10 sm:h-10 text-base-content/40"
+                    fill="none"
+                    stroke="currentColor"
+                    viewBox="0 0 24 24"
+                  >
+                    <path
+                      strokeLinecap="round"
+                      strokeLinejoin="round"
+                      strokeWidth="2"
+                      d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"
+                    ></path>
+                  </svg>
+                </div>
+                <p className="text-base sm:text-lg text-base-content/60">
+                  No published posts found.
+                </p>
+                <p className="text-xs sm:text-sm text-base-content/40 mt-2">
+                  Start creating content to see your published posts here!
+                </p>
+              </div>
+            )}
+          </div>
+        )}
+
+        {activeTab === "pending" && (
+          <div>
+            <div className="flex items-center mb-6">
+              <div className="w-1 h-8 bg-warning rounded-full mr-2 sm:mr-4"></div>
+              <h2 className="text-lg sm:text-xl font-semibold text-base-content">
+                Awaiting Approval
+              </h2>
+              <div className="flex-1 h-px bg-gradient-to-r from-[#FFB800]/30 to-transparent ml-2 sm:ml-4"></div>
+            </div>
+
+            {pendingPosts.length > 0 ? (
+              <div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
+                {pendingPosts.map((post) => (
+                  <div
+                    key={post.id}
+                    className="card bg-base-100 shadow-lg  transition-all duration-300 border border-warning/20 relative overflow-hidden"
+                  >
+                    <div className="absolute top-0 left-0 w-full h-1 "></div>
+
+                    <div className="card-body p-4 sm:p-6">
+                      <h3 className="card-title text-base sm:text-lg mb-3 text-base-content line-clamp-2">
+                        {post.title}
+                      </h3>
+                      <p className="text-sm text-base-content/70 mt-2 line-clamp-3">
+                        {post.content}
+                      </p>
+
+                      <div className="flex items-center text-xs sm:text-sm text-base-content/60 mb-4">
+                        <svg
+                          className="w-4 h-4 mr-2"
+                          fill="none"
+                          stroke="currentColor"
+                          viewBox="0 0 24 24"
+                        >
+                          <path
+                            strokeLinecap="round"
+                            strokeLinejoin="round"
+                            strokeWidth="2"
+                            d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"
+                          ></path>
+                        </svg>
+                        Submitted{" "}
+                        {new Date(post.created_at).toLocaleDateString("en-US", {
+                          year: "numeric",
+                          month: "short",
+                          day: "numeric",
+                        })}
+                      </div>
+
+                      <div className="card-actions justify-end mt-auto">
+                        <div className="flex items-center space-x-2">
+                          <div className="flex items-center text-xs text-warning">
+                            <div className="w-3 h-3 mr-1.5 bg-warning rounded-full animate-pulse"></div>
+                            Under Review
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                ))}
+              </div>
+            ) : (
+              <div className="text-center py-8 sm:py-12">
+                <div className="w-16 h-16 sm:w-20 sm:h-20 bg-success/20 rounded-full flex items-center justify-center mx-auto mb-4">
+                  <svg
+                    className="w-8 h-8 sm:w-10 sm:h-10 text-success"
+                    fill="none"
+                    stroke="currentColor"
+                    viewBox="0 0 24 24"
+                  >
+                    <path
+                      strokeLinecap="round"
+                      strokeLinejoin="round"
+                      strokeWidth="2"
+                      d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
+                    ></path>
+                  </svg>
+                </div>
+                <p className="text-base sm:text-lg text-base-content/60">
+                  All clear! No posts waiting for review.
+                </p>
+                <p className="text-xs sm:text-sm text-base-content/40 mt-2">
+                  Your submissions will appear here while awaiting approval.
+                </p>
+              </div>
+            )}
+          </div>
+        )}
+      </div>
+    </div>
+  );
+};
+
+export default UserPosts;
Index: client/src/services/forumService.js
===================================================================
--- client/src/services/forumService.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ client/src/services/forumService.js	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -1,24 +1,27 @@
 import apiClient from "./apiClient";
 
-export const getForumPosts = (page, limit) => {
-  return apiClient.get(`/forum/posts?page=${page}&limit=${limit}`);
+export const getForumPosts = async (page, limit) => {
+  return await apiClient.get(`/forum/posts?page=${page}&limit=${limit}`);
 };
 
-export const deleteForumPost = (postId) => {
-  return apiClient.delete(`/forum/posts/${postId}`);
+export const deleteForumPost = async (postId) => {
+  return await apiClient.delete(`/forum/posts/${postId}`);
 };
-export const createForumPost = (postData) => {
-  return apiClient.post("/forum/posts", postData);
+export const createForumPost = async (postData) => {
+  return await apiClient.post("/forum/posts", postData);
+};
+export const getAllPostsByUser = async () => {
+  return await apiClient.get("/forum/user-posts");
 };
 
 //Comment functions
 
-export const getCommentsForPost = (postId) => {
+export const getCommentsForPost = async (postId) => {
   return apiClient.get(`/forum/comments/${postId}`);
 };
-export const createComment = (commentData) => {
+export const createComment = async (commentData) => {
   return apiClient.post("/forum/comments", commentData);
 };
-export const deleteComment = (commentId) => {
+export const deleteComment = async (commentId) => {
   return apiClient.delete(`/forum/comments/${commentId}`);
 };
Index: client/src/services/reviewService.js
===================================================================
--- client/src/services/reviewService.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ client/src/services/reviewService.js	(revision 127dcb9a5c6f4c1e4d5c4ed6719716a768278232)
@@ -10,6 +10,6 @@
 };
 
-export const createApprovalForumPost = (postData) => {
-  return apiClient.post("/review/posts/approval", postData);
+export const createApprovalForumPost = async (postData) => {
+  return await apiClient.post("/review/posts/approval", postData);
 };
 export const approveReviewPost = async (postId, postData, userId) => {
