Index: backend/controllers/forumController.js
===================================================================
--- backend/controllers/forumController.js	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ backend/controllers/forumController.js	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -1,24 +1,23 @@
-const prisma = require("../lib/prisma");
-const ForumPost = require("../models/ForumPost");
-const Comment = require("../models/Comment");
-const filter = require("leo-profanity");
-const mkProfanity = require("../filters/macedonianProfanity");
+const prisma = require('../lib/prisma');
+const ForumPost = require('../models/ForumPost');
+const Comment = require('../models/Comment');
+const filter = require('leo-profanity');
+const mkProfanity = require('../filters/macedonianProfanity');
 filter.add(mkProfanity);
-const safeWords = require("../filters/safeWords");
-const { analyzePostContent } = require("../ai/processRequestAi");
-const { createReviewPost } = require("./reviewController");
-const verifyModeratorStatus = require("../services/checkModeratorStatus");
-const { resetPostCheckCounter } = require("../services/forumCountersReset");
+const safeWords = require('../filters/safeWords');
+const { analyzePostContent } = require('../ai/processRequestAi');
+const { createReviewPost } = require('./reviewController');
+const verifyModeratorStatus = require('../services/checkModeratorStatus');
+const { resetPostCheckCounter } = require('../services/forumCountersReset');
 const {
   sendDeletedFromForumEmail,
   sendDeletedCommentEmail,
   sendCommentedNotificationEmail,
-} = require("../services/emailService");
+} = require('../services/emailService');
 const createForumPost = async (req, res) => {
-  console.log(req.user);
   const { title, content, authorId, authorName, topic, challengeId } = req.body;
   if (!title || !content || !authorId || !authorName || !topic) {
     return res.status(400).json({
-      error: "Title, content, authorId, and authorName are required",
+      error: 'Title, content, authorId, and authorName are required',
     });
   }
@@ -30,7 +29,6 @@
     const postCounter = user.postCounter;
     const postCheckCounter = user.postCheckCounter;
-    console.log("Post check:", postCheckCounter);
-
-    if (postCounter >= -11) {
+
+    if (postCounter >= 1) {
       const post = new ForumPost({
         title,
@@ -47,9 +45,9 @@
       if (isProfane) {
         return res.status(400).json({
-          error: "Content contains inappropriate language",
+          error: 'Content contains inappropriate language',
         });
       } else if (filter.check(post.content)) {
         return res.status(400).json({
-          error: "Content contains inappropriate language",
+          error: 'Content contains inappropriate language',
         });
       } else if (post.content.length > 200) {
@@ -59,9 +57,9 @@
           return;
         } catch (reviewError) {
-          console.error("Error submitting post for review:", reviewError);
+          console.error('Error submitting post for review:', reviewError);
           return res.status(500).json({
             error:
               reviewError.message ||
-              "Failed to submit post for review due to an internal error.",
+              'Failed to submit post for review due to an internal error.',
           });
         }
@@ -69,6 +67,6 @@
         return res.status(202).json({
           message:
-            "Would you like to send this post to moderator for approval?",
-          reason: "USER_FLAGGED",
+            'Would you like to send this post to moderator for approval?',
+          reason: 'USER_FLAGGED',
         });
       } else if (
@@ -81,6 +79,5 @@
         try {
           const aiResponse = await analyzePostContent(post.title, post.content);
-          if (aiResponse.aiResponse === "INAPPROPRIATE") {
-            console.log("AI analysis says INAPPROPRIATE:", aiResponse.reason);
+          if (aiResponse.aiResponse === 'INAPPROPRIATE') {
             await prisma.users.update({
               where: { id: authorId },
@@ -90,11 +87,11 @@
             });
             return res.status(400).json({
-              error: "Content is not appropriate for the forum",
+              error: 'Content is not appropriate for the forum',
             });
           }
         } catch (error) {
-          console.error("AI analysis error:", error);
+          console.error('AI analysis error:', error);
           return res.status(500).json({
-            error: "AI analysis failed, please try again later",
+            error: 'AI analysis failed, please try again later',
           });
         }
@@ -102,5 +99,4 @@
       const { author_id, challenge_id, ...data } = post;
 
-      //Connect must be used becase multiple relations were introduced
       const savedPost = await prisma.forum_posts.create({
         data: {
@@ -119,15 +115,15 @@
       await resetPostCheckCounter(authorId);
       res.status(201).json({
-        message: "Forum post created successfully",
+        message: 'Forum post created successfully',
         post: savedPost,
       });
     } else {
       return res.status(400).json({
-        error: "You have reached the daily limit for creating posts.",
+        error: 'You have reached the daily limit for creating posts.',
       });
     }
   } catch (err) {
-    console.error("Server error:", err);
-    res.status(500).json({ error: "Internal server error" });
+    console.error('Server error:', err);
+    res.status(500).json({ error: 'Internal server error' });
   }
 };
@@ -180,5 +176,5 @@
     const filters = [];
     let orderBy = [];
-    if (topic && topic !== "all") {
+    if (topic && topic !== 'all') {
       filters.push({ topic });
     }
@@ -192,11 +188,11 @@
       }
     }
-    if (sort === "past-week" || sort === "past-month" || sort === "past-year") {
+    if (sort === 'past-week' || sort === 'past-month' || sort === 'past-year') {
       const fromDate = new Date();
-      if (sort === "past-week") {
+      if (sort === 'past-week') {
         fromDate.setDate(fromDate.getDate() - 7);
-      } else if (sort === "past-month") {
+      } else if (sort === 'past-month') {
         fromDate.setDate(fromDate.getDate() - 30);
-      } else if (sort === "past-year") {
+      } else if (sort === 'past-year') {
         fromDate.setDate(fromDate.getDate() - 365);
       }
@@ -207,17 +203,17 @@
       });
     } else if (!commentSort) {
-      orderBy.push({ date_created: "desc" });
+      orderBy.push({ date_created: 'desc' });
     }
     if (search) {
-      const challengeSearchTerm = search.toLowerCase().replace(/\s+/g, "-");
+      const challengeSearchTerm = search.toLowerCase().replace(/\s+/g, '-');
       filters.push({
         OR: [
-          { title: { contains: search, mode: "insensitive" } },
-          { content: { contains: search, mode: "insensitive" } },
+          { title: { contains: search, mode: 'insensitive' } },
+          { content: { contains: search, mode: 'insensitive' } },
           {
             challenges: {
               title: {
                 contains: challengeSearchTerm,
-                mode: "insensitive",
+                mode: 'insensitive',
               },
             },
@@ -227,14 +223,12 @@
     }
 
-    // Combine filters with AND if there are any
     const whereCondition = filters.length > 0 ? { AND: filters } : {};
 
-    if (commentSort === "most-popular") {
-      orderBy.push({ comment_count: "desc" });
-
-      orderBy.push({ date_created: "desc" });
-    } else if (commentSort === "least-popular") {
-      orderBy.push({ comment_count: "asc" });
-      orderBy.push({ date_created: "desc" });
+    if (commentSort === 'most-popular') {
+      orderBy.push({ comment_count: 'desc' });
+      orderBy.push({ date_created: 'desc' });
+    } else if (commentSort === 'least-popular') {
+      orderBy.push({ comment_count: 'asc' });
+      orderBy.push({ date_created: 'desc' });
     }
 
@@ -243,5 +237,4 @@
     });
 
-    // Fetch posts with filters
     const allPosts = await prisma.forum_posts.findMany({
       skip: skip,
@@ -264,25 +257,28 @@
     }));
     if (
-      (sort === "past-week" || sort === "past-month" || sort == "past-year") &&
+      (sort === 'past-week' ||
+        sort === 'past-month' ||
+        sort == 'past-year' ||
+        topic == 'daily-challenge' ||
+        search) &&
       !commentSort
     ) {
+      console.log('Scoring...');
       forumPosts = scorePosts(forumPosts).map(({ score, ...post }) => post);
     }
 
-    // Set cache control headers to prevent caching
-    res.set("Cache-Control", "no-store, no-cache, must-revalidate, private");
-    res.set("Pragma", "no-cache");
-    res.set("Expires", "0");
-
-    // Add response information to help debug the filtering
-    res.set("X-Total-Posts", forumPosts.length.toString());
-    res.set("X-Filter-Topic", topic || "none");
-    res.set("X-Filter-Applied", JSON.stringify(whereCondition));
-    res.set("X-Sort-Order", JSON.stringify(orderBy));
+    res.set('Cache-Control', 'no-store, no-cache, must-revalidate, private');
+    res.set('Pragma', 'no-cache');
+    res.set('Expires', '0');
+
+    res.set('X-Total-Posts', forumPosts.length.toString());
+    res.set('X-Filter-Topic', topic || 'none');
+    res.set('X-Filter-Applied', JSON.stringify(whereCondition));
+    res.set('X-Sort-Order', JSON.stringify(orderBy));
 
     res.status(200).json({ forumPosts, totalCount });
   } catch (err) {
-    console.error("Server error:", err);
-    res.status(500).json({ error: "Internal server error" });
+    console.error('Server error:', err);
+    res.status(500).json({ error: 'Internal server error' });
   }
 };
@@ -309,5 +305,5 @@
     filters.push({ author_id: userId });
 
-    if (topic && topic !== "all") {
+    if (topic && topic !== 'all') {
       filters.push({ topic: topic.trim() });
     }
@@ -318,22 +314,22 @@
     }
 
-    if (dateSort === "newest") {
-      orderBy.push({ date_created: "desc" });
+    if (dateSort === 'newest') {
+      orderBy.push({ date_created: 'desc' });
     } else {
-      orderBy.push({ date_created: "asc" });
+      orderBy.push({ date_created: 'asc' });
     }
 
     if (searchText && searchText.trim()) {
       const search = searchText.trim();
-      const challengeSearchTerm = search.toLowerCase().replace(/\s+/g, "-");
+      const challengeSearchTerm = search.toLowerCase().replace(/\s+/g, '-');
       filters.push({
         OR: [
-          { title: { contains: search, mode: "insensitive" } },
-          { content: { contains: search, mode: "insensitive" } },
+          { title: { contains: search, mode: 'insensitive' } },
+          { content: { contains: search, mode: 'insensitive' } },
           {
             challenges: {
               title: {
                 contains: challengeSearchTerm,
-                mode: "insensitive",
+                mode: 'insensitive',
               },
             },
@@ -345,13 +341,13 @@
     const whereCondition = filters.length > 0 ? { AND: filters } : {};
 
-    if (commentSort && commentSort !== "none") {
-      if (commentSort === "most-popular") {
-        orderBy.push({ comment_count: "desc" });
+    if (commentSort && commentSort !== 'none') {
+      if (commentSort === 'most-popular') {
+        orderBy.push({ comment_count: 'desc' });
       } else {
-        orderBy.push({ comment_count: "asc" });
+        orderBy.push({ comment_count: 'asc' });
       }
-      orderBy.push({ date_created: "desc" });
+      orderBy.push({ date_created: 'desc' });
     } else {
-      orderBy.push({ date_created: "desc" });
+      orderBy.push({ date_created: 'desc' });
     }
 
@@ -395,6 +391,6 @@
     });
   } catch (err) {
-    console.error("Error fetching posts by user:", err);
-    res.status(500).json({ error: "Failed to fetch user posts" });
+    console.error('Error fetching posts by user:', err);
+    res.status(500).json({ error: 'Failed to fetch user posts' });
   }
 };
@@ -414,5 +410,5 @@
 
     if (!post) {
-      return res.status(404).json({ error: "Forum post not found" });
+      return res.status(404).json({ error: 'Forum post not found' });
     }
 
@@ -422,5 +418,5 @@
     if (!isAuthor && !isUserModerator) {
       return res.status(403).json({
-        error: "You do not have permission to delete this post",
+        error: 'You do not have permission to delete this post',
       });
     }
@@ -441,9 +437,9 @@
     return res.status(204).send();
   } catch (err) {
-    if (err.code === "P2025") {
-      return res.status(404).json({ error: "Forum post not found" });
-    }
-    console.error("Server error:", err);
-    res.status(500).json({ error: "Internal server error" });
+    if (err.code === 'P2025') {
+      return res.status(404).json({ error: 'Forum post not found' });
+    }
+    console.error('Server error:', err);
+    res.status(500).json({ error: 'Internal server error' });
   }
 };
@@ -455,5 +451,5 @@
   if (!post_id || !content || !authorId || !authorName) {
     return res.status(400).json({
-      error: "post_id, content, authorId, and authorName are required",
+      error: 'post_id, content, authorId, and authorName are required',
     });
   }
@@ -468,7 +464,7 @@
     const profane = filter.check(comment.content);
     if (profane) {
-      console.log("not safe words or profanity detected!");
+      console.log('not safe words or profanity detected!');
       return res.status(400).json({
-        error: "Content contains inappropriate language or is not on topic",
+        error: 'Content contains inappropriate language or is not on topic',
       });
     }
@@ -501,10 +497,10 @@
     }
     res.status(201).json({
-      message: "Comment created successfully",
+      message: 'Comment created successfully',
       comment: savedComment,
     });
   } catch (err) {
-    console.error("Server error:", err);
-    res.status(500).json({ error: "Internal server error" });
+    console.error('Server error:', err);
+    res.status(500).json({ error: 'Internal server error' });
   }
 };
@@ -516,5 +512,5 @@
     return res
       .status(400)
-      .json({ error: "post_id query parameter is required" });
+      .json({ error: 'post_id query parameter is required' });
   }
 
@@ -525,5 +521,5 @@
       },
       orderBy: {
-        dateCreated: "desc",
+        dateCreated: 'desc',
       },
     });
@@ -542,6 +538,6 @@
     res.status(200).json(comments);
   } catch (err) {
-    console.error("Server error:", err);
-    res.status(500).json({ error: "Internal server error" });
+    console.error('Server error:', err);
+    res.status(500).json({ error: 'Internal server error' });
   }
 };
@@ -557,5 +553,5 @@
 
     if (!comment) {
-      return res.status(404).json({ error: "Comment not found" });
+      return res.status(404).json({ error: 'Comment not found' });
     }
 
@@ -568,5 +564,5 @@
       return res
         .status(404)
-        .json({ error: "Post associated with comment not found" });
+        .json({ error: 'Post associated with comment not found' });
     }
 
@@ -576,5 +572,5 @@
     if (!isUserModerator && !isAuthor) {
       return res.status(403).json({
-        error: "You do not have permission to delete this comment",
+        error: 'You do not have permission to delete this comment',
       });
     }
@@ -607,9 +603,9 @@
     return res.status(204).send();
   } catch (err) {
-    if (err.code === "P2025") {
-      return res.status(404).json({ error: "Comment not found" });
-    }
-    console.error("Server error:", err);
-    res.status(500).json({ error: "Internal server error" });
+    if (err.code === 'P2025') {
+      return res.status(404).json({ error: 'Comment not found' });
+    }
+    console.error('Server error:', err);
+    res.status(500).json({ error: 'Internal server error' });
   }
 };
Index: backend/controllers/taskController.js
===================================================================
--- backend/controllers/taskController.js	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ backend/controllers/taskController.js	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -2,5 +2,5 @@
 const prisma = require('../lib/prisma');
 const verifyModeratorStatus = require('../services/checkModeratorStatus');
-const Challenge = require('../models/challenge');
+const Challenge = require('../models/Challenge');
 
 //Helper functions
Index: backend/models/Challenge.js
===================================================================
--- backend/models/Challenge.js	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ backend/models/Challenge.js	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -2,6 +2,6 @@
   constructor(data = {}) {
     this.id = data.id;
-    this.title = data.title || "";
-    this.content = data.content || "";
+    this.title = data.title || '';
+    this.content = data.content || '';
     this.solving_date = data.solving_date;
     this.attempted_by = data.attempted_by;
@@ -16,25 +16,25 @@
     const errors = [];
 
-    if (!this.title || this.title.trim() === "") {
-      errors.push("Challenge title is required");
+    if (!this.title || this.title.trim() === '') {
+      errors.push('Challenge title is required');
     }
 
-    if (!this.content || this.content.trim() === "") {
-      errors.push("Challenge description/content is required");
+    if (!this.content || this.content.trim() === '') {
+      errors.push('Challenge description/content is required');
     }
 
     if (!this.solving_date) {
-      errors.push("Challenge solving date is required");
+      errors.push('Challenge solving date is required');
     } else if (
       !(this.solving_date instanceof Date) &&
       isNaN(new Date(this.solving_date).getTime())
     ) {
-      errors.push("Challenge solving date must be a valid date");
+      errors.push('Challenge solving date must be a valid date');
     }
 
     if (!this.examples || !Array.isArray(this.examples)) {
-      errors.push("Examples must be an array");
+      errors.push('Examples must be an array');
     } else if (this.examples.length < 2) {
-      errors.push("At least 2 examples are required");
+      errors.push('At least 2 examples are required');
     } else {
       this.examples.forEach((example, index) => {
@@ -45,15 +45,15 @@
     }
 
-    // if (!this.test_cases || !Array.isArray(this.test_cases)) {
-    //   errors.push("Test cases must be an array");
-    // // } else if (this.test_cases.length < 10) {
-    // //   errors.push("At least 10 test cases are required");
-    // // } else {
-    //   this.test_cases.forEach((testCase, index) => {
-    //     if (!testCase.input || !testCase.output) {
-    //       errors.push(`Test case ${index + 1} must have both input and output`);
-    //     }
-    //   });
-    // }
+    if (!this.test_cases || !Array.isArray(this.test_cases)) {
+      errors.push('Test cases must be an array');
+      // } else if (this.test_cases.length < 10) {
+      //   errors.push("At least 10 test cases are required");
+      // } else {
+      this.test_cases.forEach((testCase, index) => {
+        if (!testCase.input || !testCase.output) {
+          errors.push(`Test case ${index + 1} must have both input and output`);
+        }
+      });
+    }
 
     return {
Index: backend/scripts/hourlyCheckForDailyChallengePosts.js
===================================================================
--- backend/scripts/hourlyCheckForDailyChallengePosts.js	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ backend/scripts/hourlyCheckForDailyChallengePosts.js	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -97,5 +97,4 @@
 }
 
-// Schedule the job to run at the start of every hour ('0 * * * *')
 const job = schedule.scheduleJob('0 * * * *', function () {
   console.log(
Index: backend/scripts/sendEmailToModerator.js
===================================================================
--- backend/scripts/sendEmailToModerator.js	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ backend/scripts/sendEmailToModerator.js	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -1,8 +1,8 @@
-require("dotenv").config({
-  path: require("path").resolve(__dirname, "../.env"),
+require('dotenv').config({
+  path: require('path').resolve(__dirname, '../.env'),
 });
-const { sendModeratorEmail } = require("../services/emailService");
-const schedule = require("node-schedule");
-const prisma = require("../lib/prisma");
+const { sendModeratorEmail } = require('../services/emailService');
+const schedule = require('node-schedule');
+const prisma = require('../lib/prisma');
 
 async function sendmailToModerators() {
@@ -27,5 +27,5 @@
       },
       orderBy: {
-        created_at: "asc",
+        created_at: 'asc',
       },
     });
@@ -38,5 +38,5 @@
 
     if (posts.length === 0) {
-      console.log("No old posts to review. No emails sent.");
+      console.log('No old posts to review. No emails sent.');
       return;
     }
@@ -65,5 +65,4 @@
     );
 
-    // Send emails to each moderator
     for (const email of moderatorEmails) {
       try {
@@ -97,5 +96,5 @@
 }
 
-const job = schedule.scheduleJob("0 7 * * *", function () {
+const job = schedule.scheduleJob('0 7 * * *', function () {
   console.log(
     `[${new Date().toISOString()}] Running scheduled moderator email check`
@@ -108,5 +107,5 @@
 );
 
-process.on("SIGINT", function () {
+process.on('SIGINT', function () {
   job.cancel();
   console.log(
Index: client/src/CreatePost/CreatePost.jsx
===================================================================
--- client/src/CreatePost/CreatePost.jsx	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ client/src/CreatePost/CreatePost.jsx	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -103,5 +103,4 @@
       const res = await createForumPost(postData);
       if (res.reason === 'USER_FLAGGED') {
-        console.log(res.message);
         setPendingModerator(true);
         showModal(res.message, 'moderatorPrompt');
Index: client/src/Dashboard/components/CreateNewChallenge.jsx
===================================================================
--- client/src/Dashboard/components/CreateNewChallenge.jsx	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ client/src/Dashboard/components/CreateNewChallenge.jsx	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -78,12 +78,12 @@
     setLoading(true);
     try {
-      // if (testCases.length < 10) {
-      //   showModal(
-      //     "Please add at least 10 test cases for your challenge.",
-      //     "error"
-      //   );
-      //   setLoading(false);
-      //   return;
-      // }
+      if (testCases.length < 10) {
+        showModal(
+          'Please add at least 10 test cases for your challenge.',
+          'error'
+        );
+        setLoading(false);
+        return;
+      }
       const hasEmptyTestCase = testCases.some(
         (tc) => !tc.input.trim() || !tc.output.trim()
Index: client/src/Dashboard/components/Forum.jsx
===================================================================
--- client/src/Dashboard/components/Forum.jsx	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ client/src/Dashboard/components/Forum.jsx	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -1,12 +1,12 @@
-import React, { useState, useEffect, useCallback } from "react";
-import { useNavigate, useSearchParams } from "react-router-dom";
-import commentIcon from "../../assets/images/comment.svg";
-import trashIcon from "../../assets/images/delete.svg";
-import Navbar from "./Navbar";
-import { getForumPosts, deleteForumPost } from "@/services/forumService";
-import { useAuth } from "@/contexts/AuthContext";
-import { DatePicker } from "react-daisyui-timetools";
-import "react-datepicker/dist/react-datepicker.css";
-import CalendarPopover from "./CalendarPopover";
+import React, { useState, useEffect, useCallback } from 'react';
+import { useNavigate, useSearchParams } from 'react-router-dom';
+import commentIcon from '../../assets/images/comment.svg';
+import trashIcon from '../../assets/images/delete.svg';
+import Navbar from './Navbar';
+import { getForumPosts, deleteForumPost } from '@/services/forumService';
+import { useAuth } from '@/contexts/AuthContext';
+import { DatePicker } from 'react-daisyui-timetools';
+import 'react-datepicker/dist/react-datepicker.css';
+import CalendarPopover from './CalendarPopover';
 // import { useForumSearchParams } from "../../contexts/ForumSearchParamsContext";
 const Forum = () => {
@@ -22,6 +22,6 @@
   const [modal, setModal] = useState({
     isOpen: false,
-    message: "",
-    type: "",
+    message: '',
+    type: '',
     postId: null,
   });
@@ -31,9 +31,9 @@
 
   const defaultFilters = {
-    topic: "all",
-    dateSort: "newest",
+    topic: 'all',
+    dateSort: 'newest',
     selectedDate: null,
-    commentSort: "none",
-    searchText: "",
+    commentSort: 'none',
+    searchText: '',
   };
 
@@ -49,10 +49,10 @@
   const [showFilters, setShowFilters] = useState(false);
 
-  const showModal = (message, type = "info", postId = null) => {
+  const showModal = (message, type = 'info', postId = null) => {
     setModal({ isOpen: true, message, type, postId });
   };
 
   const closeModal = () => {
-    setModal({ isOpen: false, message: "", type: "", postId: null });
+    setModal({ isOpen: false, message: '', type: '', postId: null });
   };
 
@@ -68,9 +68,5 @@
     async (pageNum = 0, append = false, activeFilters = null) => {
       try {
-        if (!append) {
-          setLoading(true);
-        } else {
-          setLoadingMore(true);
-        }
+        setLoading(true);
 
         const filtersToApply = activeFilters
@@ -91,18 +87,13 @@
         const { forumPosts, totalCount } = response;
         setTotalPages(Math.max(1, Math.ceil(totalCount / postsPerPage)));
-        setHasMore(pageNum < Math.ceil(totalCount / postsPerPage) - 1);
-
-        if (append) {
-          setPosts((prevPosts) => [...prevPosts, ...posts]);
-        } else {
-          setPosts(forumPosts);
-        }
+
+        setPosts(forumPosts || []);
 
         setPage(pageNum);
       } catch (error) {
-        console.error("Error fetching forum posts:", error);
+        console.error('Error fetching forum posts:', error);
 
         if (error.response) {
-          console.error("Error response:", error.response);
+          console.error('Error response:', error.response);
         }
 
@@ -118,5 +109,5 @@
   );
   useEffect(() => {
-    const pageFromUrl = parseInt(forumSearchParams.get("page") || "1", 10);
+    const pageFromUrl = parseInt(forumSearchParams.get('page') || '1', 10);
     const filtersFromUrl = { ...defaultFilters };
     for (const [key, value] of forumSearchParams.entries()) {
@@ -138,5 +129,5 @@
       }
     }
-    newSearchParams.set("page", "1");
+    newSearchParams.set('page', '1');
     setForumSearchParams(newSearchParams);
   };
@@ -150,5 +141,5 @@
       newSearchParams.delete(filterKey);
       setPage(1);
-      newSearchParams.set("page", "1");
+      newSearchParams.set('page', '1');
       setForumSearchParams(newSearchParams);
     }
@@ -160,5 +151,5 @@
     const freshDefaultFilters = { ...defaultFilters };
     setFilters(freshDefaultFilters);
-    setForumSearchParams({ page: "1" });
+    setForumSearchParams({ page: '1' });
 
     setPage(1);
@@ -172,15 +163,15 @@
 
       await fetchPosts(1, false, { ...filters });
-      showModal("Post deleted successfully.", "success");
+      showModal('Post deleted successfully.', 'success');
     } catch (error) {
-      console.error("Error deleting post:", error);
+      console.error('Error deleting post:', error);
     }
   };
   const formatFilterLabel = (value) => {
-    if (!value) return "";
+    if (!value) return '';
     return value
-      .split("-")
+      .split('-')
       .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
-      .join(" ");
+      .join(' ');
   };
 
@@ -190,5 +181,5 @@
         <div className="sticky top-0 z-20 bg-base-100">
           <div className="flex flex-col">
-            {/* Sticky Header Section */}
+            {/*Header */}
             <div className="pt-3 pr-3 flex gap-3 justify-end">
               <button
@@ -196,5 +187,5 @@
                   navigate(`/dashboard/create-post`, {
                     state: {
-                      from: "/dashboard/forum",
+                      from: '/dashboard/forum',
                       fromForumSearch: forumSearchParams.toString(),
                     },
@@ -222,5 +213,5 @@
                   navigate(`/dashboard/user-posts`, {
                     state: {
-                      from: "/dashboard/forum",
+                      from: '/dashboard/forum',
                       fromForumSearch: forumSearchParams.toString(),
                     },
@@ -252,7 +243,6 @@
                   <h3 className="text-base sm:text-lg font-semibold flex items-center gap-2">
                     Filters
-                    {/* Active filter count indicator */}
-                    {(filters.topic !== "all" ||
-                      filters.dateSort !== "newest" ||
+                    {(filters.topic !== 'all' ||
+                      filters.dateSort !== 'newest' ||
                       filters.selectedDate ||
                       (filters.searchText && filters.searchText.trim())) && (
@@ -260,8 +250,8 @@
                         {
                           [
-                            filters.topic !== "all",
-                            filters.dateSort !== "newest",
+                            filters.topic !== 'all',
+                            filters.dateSort !== 'newest',
                             filters.selectedDate,
-                            filters.commentSort !== "none",
+                            filters.commentSort !== 'none',
                             filters.searchText && filters.searchText.trim(),
                           ].filter(Boolean).length
@@ -276,5 +266,5 @@
                     <svg
                       className={`w-5 h-5 transition-transform duration-200 ${
-                        showFilters ? "rotate-180" : ""
+                        showFilters ? 'rotate-180' : ''
                       }`}
                       fill="none"
@@ -292,13 +282,12 @@
                 </div>
 
-                {/* Filter Controls */}
+                {/* Filters */}
                 <div
                   className={`transition-all duration-300 ${
-                    showFilters ? "block opacity-100" : "hidden opacity-0"
+                    showFilters ? 'block opacity-100' : 'hidden opacity-0'
                   } lg:block lg:opacity-100`}
                 >
-                  {/* Mobile-First Filter Layout - Compact Version */}
+                  {/* Mobile Filter  Version */}
                   <div className="space-y-2 lg:space-y-0 lg:grid lg:grid-cols-6 xl:grid-cols-8 lg:gap-2 mb-2 max-w-full">
-                    {/* Search Filter - Full width on mobile, 2 cols on desktop */}
                     <div className="flex flex-col gap-1 lg:col-span-2">
                       <label className="text-xs font-medium text-gray-500 uppercase tracking-wide">
@@ -309,4 +298,5 @@
                           type="text"
                           placeholder="Search by title, content or challenge"
+                          title="Search by title, content or challenge"
                           value={filters.searchText}
                           onChange={(e) =>
@@ -317,9 +307,9 @@
                           }
                           onKeyDown={(e) => {
-                            if (e.key === "Enter") {
+                            if (e.key === 'Enter') {
                               applyFilters();
                             }
                           }}
-                          className="input input-sm input-bordered w-full text-xs pl-8 pr-2 h-8"
+                          className="input input-sm input-bordered w-full text-xs pl-8 pr-2 h-8 truncate"
                         />
                         <svg
@@ -339,7 +329,5 @@
                     </div>
 
-                    {/* Mobile: 2-column grid for selects */}
                     <div className="grid grid-cols-2 gap-2 lg:contents">
-                      {/* Topic Filter */}
                       <div className="flex flex-col gap-1 lg:col-span-1">
                         <label className="text-xs font-medium text-gray-500 uppercase tracking-wide">
@@ -361,5 +349,4 @@
                       </div>
 
-                      {/* Date Sort */}
                       <div className="flex flex-col gap-1 lg:col-span-1">
                         <label className="text-xs font-medium text-gray-500 uppercase tracking-wide">
@@ -384,5 +371,4 @@
                     </div>
 
-                    {/* Mobile: Single column for date picker and popularity */}
                     <div className="space-y-2 lg:space-y-0 lg:contents">
                       <div className="flex flex-col gap-1 lg:col-span-1">
@@ -405,5 +391,5 @@
                         </select>
                       </div>
-                      {/* Specific Date Filter */}
+
                       <div className="relative flex flex-col gap-1 lg:col-span-1">
                         <label className="text-xs font-medium text-gray-500 uppercase tracking-wide">
@@ -420,10 +406,10 @@
                                 ? new Date(
                                     filters.selectedDate
-                                  ).toLocaleDateString("en-US", {
-                                    year: "numeric",
-                                    month: "short",
-                                    day: "numeric",
+                                  ).toLocaleDateString('en-US', {
+                                    year: 'numeric',
+                                    month: 'short',
+                                    day: 'numeric',
                                   })
-                                : ""
+                                : ''
                             }
                             placeholder="Select date"
@@ -446,5 +432,5 @@
                           </svg>
                         </div>
-                        {/* Render the popover here */}
+
                         <CalendarPopover
                           isOpen={isCalendarOpen}
@@ -459,5 +445,4 @@
                     </div>
 
-                    {/* Action Buttons */}
                     <div className="flex flex-col gap-1 lg:col-span-1">
                       <label className="text-xs font-medium text-gray-500 uppercase tracking-wide opacity-0">
@@ -465,6 +450,6 @@
                       </label>
                       <div className="flex gap-1.5">
-                        {(filters.topic !== "all" ||
-                          filters.dateSort !== "newest" ||
+                        {(filters.topic !== 'all' ||
+                          filters.dateSort !== 'newest' ||
                           filters.selectedDate ||
                           (filters.searchText &&
@@ -493,17 +478,17 @@
                   </div>
 
-                  {/* Active Filters Display - Improved Mobile Layout */}
+                  {/* Active Filters  */}
                   <div className="flex flex-wrap gap-1.5 sm:gap-2">
-                    {filters.topic !== "all" && (
+                    {filters.topic !== 'all' && (
                       <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                         <span className="font-medium text-xs">
-                          {filters.topic === "general"
-                            ? "General"
-                            : "Daily Challenge"}
+                          {filters.topic === 'general'
+                            ? 'General'
+                            : 'Daily Challenge'}
                         </span>
                         <button
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter("topic")}
+                          onClick={() => handleRemoveFilter('topic')}
                           aria-label="Remove topic filter"
                         >
@@ -520,5 +505,5 @@
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter("searchText")}
+                          onClick={() => handleRemoveFilter('searchText')}
                           aria-label="Remove search filter"
                         >
@@ -527,5 +512,5 @@
                       </span>
                     )}
-                    {filters.commentSort != "none" &&
+                    {filters.commentSort != 'none' &&
                       filters.commentSort.trim() && (
                         <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1 max-w-[200px]">
@@ -536,5 +521,5 @@
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter("commentSort")}
+                            onClick={() => handleRemoveFilter('commentSort')}
                             aria-label="Remove search filter"
                           >
@@ -544,5 +529,5 @@
                       )}
 
-                    {filters.dateSort !== "newest" && (
+                    {filters.dateSort !== 'newest' && (
                       <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                         <span className="font-medium text-xs">
@@ -552,5 +537,5 @@
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter("dateSort")}
+                          onClick={() => handleRemoveFilter('dateSort')}
                           aria-label="Remove sort filter"
                         >
@@ -563,9 +548,9 @@
                         <span className="font-medium text-xs">
                           {new Date(filters.selectedDate).toLocaleDateString(
-                            "en-US",
+                            'en-US',
                             {
-                              year: "numeric",
-                              month: "short",
-                              day: "numeric",
+                              year: 'numeric',
+                              month: 'short',
+                              day: 'numeric',
                             }
                           )}
@@ -574,5 +559,5 @@
                           type="button"
                           className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                          onClick={() => handleRemoveFilter("selectedDate")}
+                          onClick={() => handleRemoveFilter('selectedDate')}
                           aria-label="Remove date filter"
                         >
@@ -621,5 +606,5 @@
 "
                   >
-                    {posts.map((post) => (
+                    {posts.filter(Boolean).map((post) => (
                       <div
                         key={post.id}
@@ -635,6 +620,6 @@
                                 e.stopPropagation();
                                 showModal(
-                                  "Are you sure you want to delete this post? This action cannot be undone.",
-                                  "confirm",
+                                  'Are you sure you want to delete this post? This action cannot be undone.',
+                                  'confirm',
                                   post.id
                                 );
@@ -666,12 +651,12 @@
                             <span
                               className={`inline-block text-xs font-medium px-1 py-0.5 rounded ${
-                                post.topic === "general"
-                                  ? "bg-blue-100 text-blue-800"
-                                  : "bg-green-100 text-green-800"
+                                post.topic === 'general'
+                                  ? 'bg-blue-100 text-blue-800'
+                                  : 'bg-green-100 text-green-800'
                               }`}
                             >
-                              {post.topic === "general"
-                                ? "General"
-                                : "Daily Challenge"}
+                              {post.topic === 'general'
+                                ? 'General'
+                                : 'Daily Challenge'}
                             </span>
                             {post.challengeTitle && (
@@ -683,5 +668,5 @@
 
                           <p className="text-xs text-base-content/70 mb-1 sm:mb-2">
-                            By{" "}
+                            By{' '}
                             <span className="font-semibold">
                               {post.author_name}
@@ -690,9 +675,9 @@
                             <span className="italic">
                               {new Date(post.date_created).toLocaleDateString(
-                                "en-US",
+                                'en-US',
                                 {
-                                  year: "numeric",
-                                  month: "short",
-                                  day: "numeric",
+                                  year: 'numeric',
+                                  month: 'short',
+                                  day: 'numeric',
                                 }
                               )}
@@ -702,5 +687,5 @@
                           <p className="hidden sm:block text-sm md:text-xs lg:text-sm 2xl:text-lg text-base-content/80 line-clamp-1 mb-auto">
                             {post.content && post.content.length > 50
-                              ? post.content.slice(0, 50) + "..."
+                              ? post.content.slice(0, 50) + '...'
                               : post.content}
                           </p>
@@ -737,5 +722,5 @@
                       onClick={() => {
                         const newPage = page - 1;
-                        forumSearchParams.set("page", newPage.toString());
+                        forumSearchParams.set('page', newPage.toString());
                         setForumSearchParams(forumSearchParams);
                       }}
@@ -752,8 +737,8 @@
                           key={idx}
                           className={`btn btn-sm px-2 sm:px-3 ${
-                            page - 1 === idx ? "border-amber-400" : "btn-ghost"
+                            page - 1 === idx ? 'border-amber-400' : 'btn-ghost'
                           }`}
                           onClick={() => {
-                            forumSearchParams.set("page", (idx + 1).toString());
+                            forumSearchParams.set('page', (idx + 1).toString());
                             setForumSearchParams(forumSearchParams);
                           }}
@@ -775,5 +760,5 @@
                         className="btn btn-sm border-amber-400 px-2 sm:px-3"
                         onClick={() => {
-                          forumSearchParams.set("page", page.toString());
+                          forumSearchParams.set('page', page.toString());
                           setForumSearchParams(forumSearchParams);
                         }}
@@ -787,8 +772,8 @@
                       <button
                         className={`btn btn-sm px-2 sm:px-3 ${
-                          page === totalPages ? "border-amber-400" : "btn-ghost"
+                          page === totalPages ? 'border-amber-400' : 'btn-ghost'
                         }`}
                         onClick={() => {
-                          forumSearchParams.set("page", totalPages.toString());
+                          forumSearchParams.set('page', totalPages.toString());
                           setForumSearchParams(forumSearchParams);
                         }}
@@ -803,5 +788,5 @@
                       onClick={() => {
                         const newPage = page + 1;
-                        forumSearchParams.set("page", newPage.toString());
+                        forumSearchParams.set('page', newPage.toString());
                         setForumSearchParams(forumSearchParams);
                       }}
@@ -829,5 +814,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 === "confirm" && (
+              {modal.type === 'confirm' && (
                 <div className="w-8 h-8 rounded-full bg-error flex items-center justify-center shrink-0">
                   <svg
@@ -846,5 +831,5 @@
                 </div>
               )}
-              {modal.type === "success" && (
+              {modal.type === 'success' && (
                 <div className="w-8 h-8 rounded-full bg-success flex items-center justify-center shrink-0">
                   <svg
@@ -869,5 +854,5 @@
             <p className="py-3 sm:py-4 text-sm sm:text-base">{modal.message}</p>
             <div className="flex justify-end gap-2 sm:gap-3 mt-3 sm:mt-4">
-              {modal.type === "confirm" ? (
+              {modal.type === 'confirm' ? (
                 <>
                   <button
@@ -889,5 +874,5 @@
                       </>
                     ) : (
-                      "Delete"
+                      'Delete'
                     )}
                   </button>
Index: client/src/Dashboard/components/UserPosts.jsx
===================================================================
--- client/src/Dashboard/components/UserPosts.jsx	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ client/src/Dashboard/components/UserPosts.jsx	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -1,13 +1,13 @@
-import { useAuth } from "../../contexts/AuthContext.jsx";
-import { act, useEffect, useState } from "react";
-import { useLocation, useNavigate, useSearchParams } from "react-router-dom";
-import { getPendingPosts } from "@/services/reviewService";
-import { getAllPostsByUser, deleteForumPost } from "@/services/forumService.js";
-import { deleteReviewPost } from "@/services/reviewService";
-import commentIcon from "../../assets/images/comment.svg";
-import CalendarPopover from "./CalendarPopover.jsx";
-import { DatePicker } from "react-daisyui-timetools";
-import "react-datepicker/dist/react-datepicker.css";
-import trashIcon from "../../assets/images/delete.svg";
+import { useAuth } from '../../contexts/AuthContext.jsx';
+import { act, useEffect, useState } from 'react';
+import { useLocation, useNavigate, useSearchParams } from 'react-router-dom';
+import { getPendingPosts } from '@/services/reviewService';
+import { getAllPostsByUser, deleteForumPost } from '@/services/forumService.js';
+import { deleteReviewPost } from '@/services/reviewService';
+import commentIcon from '../../assets/images/comment.svg';
+import CalendarPopover from './CalendarPopover.jsx';
+import { DatePicker } from 'react-daisyui-timetools';
+import 'react-datepicker/dist/react-datepicker.css';
+import trashIcon from '../../assets/images/delete.svg';
 
 const UserPosts = () => {
@@ -16,5 +16,5 @@
   const [pendingPosts, setPendingPosts] = useState([]);
   const location = useLocation();
-  const fromPath = location.state?.from || "/dashboard/forum";
+  const fromPath = location.state?.from || '/dashboard/forum';
 
   const fromForumSearchParams = location.state?.fromForumSearch;
@@ -22,5 +22,5 @@
   const [isCalendarOpen, setIsCalendarOpen] = useState(false);
   const [loading, setLoading] = useState(true);
-  const [activeTab, setActiveTab] = useState("published");
+  const [activeTab, setActiveTab] = useState('published');
   const navigate = useNavigate();
   const [totalUserPosts, setTotalUserPosts] = useState(0);
@@ -29,5 +29,5 @@
   const [totalPages, setTotalPages] = useState(1);
   const [pendingCurrentPage, setPendingCurrentPage] = useState(() => {
-    return parseInt(searchParams.get("pendingPage") || "1", 10);
+    return parseInt(searchParams.get('pendingPage') || '1', 10);
   });
   const PENDING_PAGE_SIZE = 10;
@@ -35,22 +35,22 @@
   // Filter states
   const defaultFilters = {
-    topic: "all",
-    dateSort: "newest",
+    topic: 'all',
+    dateSort: 'newest',
     selectedDate: null,
-    commentSort: "none",
-    searchText: "",
+    commentSort: 'none',
+    searchText: '',
   };
   const [modal, setModal] = useState({
     isOpen: false,
-    message: "",
-    type: "",
+    message: '',
+    type: '',
     postId: null,
   });
-  const showModal = (message, type = "info", postId = null) => {
+  const showModal = (message, type = 'info', postId = null) => {
     setModal({ isOpen: true, message, type, postId });
   };
 
   const closeModal = () => {
-    setModal({ isOpen: false, message: "", type: "", postId: null });
+    setModal({ isOpen: false, message: '', type: '', postId: null });
   };
 
@@ -78,9 +78,9 @@
 
         closeModal();
-        showModal("Post removed successfully.", "success");
+        showModal('Post removed successfully.', 'success');
       } catch (error) {
-        console.error("Error removing post:", error);
+        console.error('Error removing post:', error);
         closeModal();
-        showModal("Failed to remove post. Please try again.", "error");
+        showModal('Failed to remove post. Please try again.', 'error');
       } finally {
         setIsDeleting(false);
@@ -107,9 +107,9 @@
       setTotalUserPosts(approvedData.userPostsCount);
       closeModal();
-      showModal("Post deleted successfully.", "success");
+      showModal('Post deleted successfully.', 'success');
     } catch (error) {
-      console.error("Error deleting post:", error);
+      console.error('Error deleting post:', error);
       closeModal();
-      showModal("Failed to delete post. Please try again.", "error");
+      showModal('Failed to delete post. Please try again.', 'error');
     }
   };
@@ -141,8 +141,8 @@
       }
     }
-    newSearchParams.set("page", "1");
+    newSearchParams.set('page', '1');
     setCurrentPage(1);
-    if (searchParams.get("pendingPage")) {
-      newSearchParams.set("pendingPage", searchParams.get("pendingPage"));
+    if (searchParams.get('pendingPage')) {
+      newSearchParams.set('pendingPage', searchParams.get('pendingPage'));
     }
     setSearchParams(newSearchParams);
@@ -158,5 +158,5 @@
       newSearchParams.delete(filterKey);
       setCurrentPage(1);
-      newSearchParams.set("page", "1");
+      newSearchParams.set('page', '1');
       setSearchParams(newSearchParams);
     } else {
@@ -169,7 +169,7 @@
     setAppliedFilters({ defaultFilters });
     const newSearchParams = new URLSearchParams();
-    newSearchParams.set("page", "1");
-    if (searchParams.get("pendingPage")) {
-      newSearchParams.set("pendingPage", searchParams.get("pendingPage"));
+    newSearchParams.set('page', '1');
+    if (searchParams.get('pendingPage')) {
+      newSearchParams.set('pendingPage', searchParams.get('pendingPage'));
     }
     setCurrentPage(1);
@@ -179,17 +179,17 @@
     setPendingCurrentPage(newPage);
     const newSearchParams = new URLSearchParams(searchParams);
-    newSearchParams.set("pendingPage", newPage.toString());
+    newSearchParams.set('pendingPage', newPage.toString());
     setSearchParams(newSearchParams);
   };
   const formatFilterLabel = (value) => {
-    if (!value) return "";
+    if (!value) return '';
     return value
-      .split("-")
+      .split('-')
       .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
-      .join(" ");
+      .join(' ');
   };
   useEffect(() => {
     const pendingPageFromUrl = parseInt(
-      searchParams.get("pendingPage") || "1",
+      searchParams.get('pendingPage') || '1',
       10
     );
@@ -216,5 +216,5 @@
           setTotalUserPosts(approvedData.userPostsCount);
         } catch (error) {
-          console.error("Error fetching user posts:", error);
+          console.error('Error fetching user posts:', error);
           setApprovedPosts([]); // Clear posts on error
           setTotalPages(1);
@@ -247,9 +247,9 @@
                 <button
                   className={`tab tab-sm sm:tab-md lg:tab-lg rounded-lg ${
-                    activeTab === "published"
-                      ? "tab-active bg-[#FFB800] text-black hover:text-black"
-                      : "hover:bg-base-200"
+                    activeTab === 'published'
+                      ? 'tab-active bg-[#FFB800] text-black hover:text-black'
+                      : 'hover:bg-base-200'
                   } px-2 sm:px-4 whitespace-nowrap`}
-                  onClick={() => setActiveTab("published")}
+                  onClick={() => setActiveTab('published')}
                 >
                   <svg
@@ -272,9 +272,9 @@
                 <button
                   className={`tab tab-sm sm:tab-md lg:tab-lg rounded-lg ${
-                    activeTab === "pending"
-                      ? "tab-active bg-[#FFB800] text-black hover:text-black"
-                      : "hover:bg-base-200"
+                    activeTab === 'pending'
+                      ? 'tab-active bg-[#FFB800] text-black hover:text-black'
+                      : 'hover:bg-base-200'
                   } px-2 sm:px-4 whitespace-nowrap`}
-                  onClick={() => setActiveTab("pending")}
+                  onClick={() => setActiveTab('pending')}
                 >
                   <svg
@@ -303,5 +303,5 @@
                     navigate(`/dashboard/create-post`, {
                       state: {
-                        from: "/dashboard/user-posts",
+                        from: '/dashboard/user-posts',
                         fromUserPostsSearch: searchParams.toString(),
                       },
@@ -356,5 +356,5 @@
 
             {/* Filter Navbar */}
-            {activeTab == "published" && (
+            {activeTab == 'published' && (
               <div className="border-b border-base-300 shadow-sm">
                 <div className="p-3 sm:p-4 md:pl-12 w-full max-w-full mx-auto">
@@ -364,6 +364,6 @@
                       Filters
                       {/* Active filter count indicator */}
-                      {(filters.topic !== "all" ||
-                        filters.dateSort !== "newest" ||
+                      {(filters.topic !== 'all' ||
+                        filters.dateSort !== 'newest' ||
                         filters.selectedDate ||
                         (filters.searchText && filters.searchText.trim())) && (
@@ -371,8 +371,8 @@
                           {
                             [
-                              filters.topic !== "all",
-                              filters.dateSort !== "newest",
+                              filters.topic !== 'all',
+                              filters.dateSort !== 'newest',
                               filters.selectedDate,
-                              filters.commentSort !== "none",
+                              filters.commentSort !== 'none',
                               filters.searchText && filters.searchText.trim(),
                             ].filter(Boolean).length
@@ -387,5 +387,5 @@
                       <svg
                         className={`w-5 h-5 transition-transform duration-200 ${
-                          showFilters ? "rotate-180" : ""
+                          showFilters ? 'rotate-180' : ''
                         }`}
                         fill="none"
@@ -406,5 +406,5 @@
                   <div
                     className={`transition-all duration-300 ${
-                      showFilters ? "block opacity-100" : "hidden opacity-0"
+                      showFilters ? 'block opacity-100' : 'hidden opacity-0'
                     } lg:block lg:opacity-100`}
                   >
@@ -420,4 +420,5 @@
                             type="text"
                             placeholder="Search by title, content or challenge"
+                            title="Search by title, content or challenge"
                             value={filters.searchText}
                             onChange={(e) =>
@@ -428,9 +429,9 @@
                             }
                             onKeyDown={(e) => {
-                              if (e.key === "Enter") {
+                              if (e.key === 'Enter') {
                                 applyFilters();
                               }
                             }}
-                            className="input input-sm input-bordered w-full text-xs pl-8 pr-2 h-8"
+                            className="input input-sm input-bordered w-full text-xs pl-8 pr-2 h-8 truncate"
                           />
                           <svg
@@ -529,10 +530,10 @@
                                   ? new Date(
                                       filters.selectedDate
-                                    ).toLocaleDateString("en-US", {
-                                      year: "numeric",
-                                      month: "short",
-                                      day: "numeric",
+                                    ).toLocaleDateString('en-US', {
+                                      year: 'numeric',
+                                      month: 'short',
+                                      day: 'numeric',
                                     })
-                                  : "" // Use empty string so placeholder is visible
+                                  : '' // Use empty string so placeholder is visible
                               }
                               placeholder="Select date"
@@ -575,6 +576,6 @@
                         </label>
                         <div className="flex gap-1.5">
-                          {(filters.topic !== "all" ||
-                            filters.dateSort !== "newest" ||
+                          {(filters.topic !== 'all' ||
+                            filters.dateSort !== 'newest' ||
                             filters.selectedDate ||
                             (filters.searchText &&
@@ -605,15 +606,15 @@
                     {/* Active Filters Display - Improved Mobile Layout */}
                     <div className="flex flex-wrap gap-1.5 sm:gap-2">
-                      {filters.topic !== "all" && (
+                      {filters.topic !== 'all' && (
                         <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1">
                           <span className="font-medium text-xs">
-                            {filters.topic === "general"
-                              ? "General"
-                              : "Daily Challenge"}
+                            {filters.topic === 'general'
+                              ? 'General'
+                              : 'Daily Challenge'}
                           </span>
                           <button
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter("topic")}
+                            onClick={() => handleRemoveFilter('topic')}
                             aria-label="Remove topic filter"
                           >
@@ -630,5 +631,5 @@
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter("searchText")}
+                            onClick={() => handleRemoveFilter('searchText')}
                             aria-label="Remove search filter"
                           >
@@ -637,5 +638,5 @@
                         </span>
                       )}
-                      {filters.commentSort != "none" &&
+                      {filters.commentSort != 'none' &&
                         filters.commentSort.trim() && (
                           <span className="badge badge-outline badge-sm flex items-center gap-1 px-2 py-1 max-w-[200px]">
@@ -646,5 +647,5 @@
                               type="button"
                               className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                              onClick={() => handleRemoveFilter("commentSort")}
+                              onClick={() => handleRemoveFilter('commentSort')}
                               aria-label="Remove search filter"
                             >
@@ -653,15 +654,15 @@
                           </span>
                         )}
-                      {filters.dateSort !== "newest" && (
+                      {filters.dateSort !== 'newest' && (
                         <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-first"
-                              ? "Oldest First"
-                              : "Most Recent"}
+                            {filters.dateSort === 'oldest-first'
+                              ? 'Oldest First'
+                              : 'Most Recent'}
                           </span>
                           <button
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter("dateSort")}
+                            onClick={() => handleRemoveFilter('dateSort')}
                             aria-label="Remove sort filter"
                           >
@@ -674,9 +675,9 @@
                           <span className="font-medium text-xs">
                             {new Date(filters.selectedDate).toLocaleDateString(
-                              "en-US",
+                              'en-US',
                               {
-                                year: "numeric",
-                                month: "short",
-                                day: "numeric",
+                                year: 'numeric',
+                                month: 'short',
+                                day: 'numeric',
                               }
                             )}
@@ -685,5 +686,5 @@
                             type="button"
                             className="ml-1 text-xs font-bold hover:text-error hover:cursor-pointer focus:outline-none"
-                            onClick={() => handleRemoveFilter("selectedDate")}
+                            onClick={() => handleRemoveFilter('selectedDate')}
                             aria-label="Remove date filter"
                           >
@@ -713,5 +714,5 @@
                   {/* Tab Content */}
                   <div className="animate-fadeIn">
-                    {activeTab === "published" && (
+                    {activeTab === 'published' && (
                       <div>
                         {approvedPosts.length > 0 ? (
@@ -729,5 +730,5 @@
                                       showModal(
                                         `Are you sure you want to delete post with title '${post.title}' ? This action cannot be undone.`,
-                                        "confirm",
+                                        'confirm',
                                         post.id
                                       );
@@ -749,5 +750,5 @@
                                             state: {
                                               post,
-                                              from: "/dashboard/user-posts",
+                                              from: '/dashboard/user-posts',
                                             },
                                           }
@@ -763,12 +764,12 @@
                                     <span
                                       className={`inline-block text-xs font-semibold px-1.5 py-0.5 rounded ${
-                                        post.topic === "general"
-                                          ? "bg-blue-100 text-blue-800"
-                                          : "bg-green-100 text-green-800"
+                                        post.topic === 'general'
+                                          ? 'bg-blue-100 text-blue-800'
+                                          : 'bg-green-100 text-green-800'
                                       }`}
                                     >
-                                      {post.topic === "general"
-                                        ? "General"
-                                        : "Daily Challenge"}
+                                      {post.topic === 'general'
+                                        ? 'General'
+                                        : 'Daily Challenge'}
                                     </span>
                                     {post.challengeTitle && (
@@ -781,5 +782,5 @@
                                   <p className="mt-2 text-gray-400 text-xs sm:text-sm lg:text-base line-clamp-3 flex-grow">
                                     {post.content && post.content.length > 150
-                                      ? post.content.slice(0, 150) + "..."
+                                      ? post.content.slice(0, 150) + '...'
                                       : post.content}
                                   </p>
@@ -800,8 +801,8 @@
                                     {new Date(
                                       post.date_created
-                                    ).toLocaleDateString("en-US", {
-                                      year: "numeric",
-                                      month: "short",
-                                      day: "numeric",
+                                    ).toLocaleDateString('en-US', {
+                                      year: 'numeric',
+                                      month: 'short',
+                                      day: 'numeric',
                                     })}
                                   </div>
@@ -829,5 +830,5 @@
                                     const newPage = currentPage - 1;
                                     searchParams.set(
-                                      "page",
+                                      'page',
                                       newPage.toString()
                                     );
@@ -848,10 +849,10 @@
                                       className={`btn btn-sm px-2 sm:px-3 ${
                                         currentPage - 1 === idx
-                                          ? "border-amber-400"
-                                          : "btn-ghost"
+                                          ? 'border-amber-400'
+                                          : 'btn-ghost'
                                       }`}
                                       onClick={() => {
                                         searchParams.set(
-                                          "page",
+                                          'page',
                                           (idx + 1).toString()
                                         );
@@ -878,5 +879,5 @@
                                       onClick={() => {
                                         searchParams.set(
-                                          "page",
+                                          'page',
                                           currentPage.toString()
                                         );
@@ -893,10 +894,10 @@
                                     className={`btn btn-sm px-2 sm:px-3 ${
                                       currentPage === totalPages
-                                        ? "border-amber-400"
-                                        : "btn-ghost"
+                                        ? 'border-amber-400'
+                                        : 'btn-ghost'
                                     }`}
                                     onClick={() => {
                                       searchParams.set(
-                                        "page",
+                                        'page',
                                         totalPages.toString()
                                       );
@@ -915,5 +916,5 @@
                                     const newPage = currentPage + 1;
                                     searchParams.set(
-                                      "page",
+                                      'page',
                                       newPage.toString()
                                     );
@@ -952,17 +953,17 @@
                             </p>
                             <p className="text-xs sm:text-sm text-base-content/40 mt-2">
-                              {searchParams.has("searchText") ||
-                              searchParams.has("topic") ||
-                              searchParams.has("selectedDate") ||
-                              searchParams.has("commentSort") ||
-                              searchParams.has("dateSort")
-                                ? "Try adjusting your filters to see more posts."
-                                : "Start creating content to see your published posts here!"}
+                              {searchParams.has('searchText') ||
+                              searchParams.has('topic') ||
+                              searchParams.has('selectedDate') ||
+                              searchParams.has('commentSort') ||
+                              searchParams.has('dateSort')
+                                ? 'Try adjusting your filters to see more posts.'
+                                : 'Start creating content to see your published posts here!'}
                             </p>
-                            {(searchParams.has("searchText") ||
-                              searchParams.has("topic") ||
-                              searchParams.has("selectedDate") ||
-                              searchParams.has("commentSort") ||
-                              searchParams.has("dateSort")) && (
+                            {(searchParams.has('searchText') ||
+                              searchParams.has('topic') ||
+                              searchParams.has('selectedDate') ||
+                              searchParams.has('commentSort') ||
+                              searchParams.has('dateSort')) && (
                               <button
                                 onClick={clearFilters}
@@ -977,5 +978,5 @@
                     )}
 
-                    {activeTab === "pending" && (
+                    {activeTab === 'pending' && (
                       <div>
                         {pendingPosts.length > 0 ? (
@@ -993,5 +994,5 @@
                                       showModal(
                                         `Are you sure you want to remove post with title '${post.title}' from review? This action cannot be undone.`,
-                                        "confirmRemoval",
+                                        'confirmRemoval',
                                         post.id
                                       );
@@ -1028,11 +1029,11 @@
                                         ></path>
                                       </svg>
-                                      Submitted{" "}
+                                      Submitted{' '}
                                       {new Date(
                                         post.created_at
-                                      ).toLocaleDateString("en-US", {
-                                        year: "numeric",
-                                        month: "short",
-                                        day: "numeric",
+                                      ).toLocaleDateString('en-US', {
+                                        year: 'numeric',
+                                        month: 'short',
+                                        day: 'numeric',
                                       })}
                                     </div>
@@ -1071,6 +1072,6 @@
                                       className={`btn btn-sm px-2 sm:px-3 ${
                                         pendingCurrentPage === idx + 1
-                                          ? "border-amber-400"
-                                          : "btn-ghost"
+                                          ? 'border-amber-400'
+                                          : 'btn-ghost'
                                       }`}
                                       onClick={() =>
@@ -1106,6 +1107,6 @@
                                     className={`btn btn-sm px-2 sm:px-3 ${
                                       pendingCurrentPage === pendingTotalPages
-                                        ? "border-amber-400"
-                                        : "btn-ghost"
+                                        ? 'border-amber-400'
+                                        : 'btn-ghost'
                                     }`}
                                     onClick={() =>
@@ -1177,6 +1178,6 @@
           <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 === "confirm" ||
-                modal.type === "confirmRemoval") && (
+              {(modal.type === 'confirm' ||
+                modal.type === 'confirmRemoval') && (
                 <div className="w-8 h-8 rounded-full bg-error flex items-center justify-center shrink-0">
                   <svg
@@ -1195,5 +1196,5 @@
                 </div>
               )}
-              {modal.type === "success" && (
+              {modal.type === 'success' && (
                 <div className="w-8 h-8 rounded-full bg-success flex items-center justify-center shrink-0">
                   <svg
@@ -1212,5 +1213,5 @@
                 </div>
               )}
-              {modal.type === "error" && (
+              {modal.type === 'error' && (
                 <div className="w-8 h-8 rounded-full bg-error flex items-center justify-center shrink-0">
                   <svg
@@ -1230,11 +1231,11 @@
               )}
               <h3 className="font-bold text-base sm:text-lg" id="modal-title">
-                {modal.type === "confirm"
-                  ? "Delete Post"
-                  : modal.type === "success"
-                  ? "Success"
-                  : modal.type === "confirmRemoval"
-                  ? "Remove Post"
-                  : "Error"}
+                {modal.type === 'confirm'
+                  ? 'Delete Post'
+                  : modal.type === 'success'
+                  ? 'Success'
+                  : modal.type === 'confirmRemoval'
+                  ? 'Remove Post'
+                  : 'Error'}
               </h3>
             </div>
@@ -1243,5 +1244,5 @@
             </p>
             <div className="flex justify-end gap-2 sm:gap-3 mt-3 sm:mt-4">
-              {modal.type === "confirm" ? (
+              {modal.type === 'confirm' ? (
                 <>
                   <button
@@ -1263,9 +1264,9 @@
                       </>
                     ) : (
-                      "Delete"
+                      'Delete'
                     )}
                   </button>
                 </>
-              ) : modal.type === "confirmRemoval" ? (
+              ) : modal.type === 'confirmRemoval' ? (
                 <>
                   <button
@@ -1287,5 +1288,5 @@
                       </>
                     ) : (
-                      "Remove"
+                      'Remove'
                     )}
                   </button>
Index: client/src/services/forumService.js
===================================================================
--- client/src/services/forumService.js	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ client/src/services/forumService.js	(revision c8518dde9995c94be49df1cc6927efed839c5c66)
@@ -2,28 +2,21 @@
 
 export const getForumPosts = async (page, limit, filters = null) => {
-  // Force clean parameters
   page = Number(page) || 0;
   limit = Number(limit) || 20;
 
-  // Add timestamp to prevent caching
   const timestamp = new Date().getTime();
   let url = `/forum/posts?page=${page}&limit=${limit}&_t=${timestamp}`;
 
-  // Add filters to the URL if they exist
   if (filters) {
-    // Add topic filter - make sure it's really topic=daily-challenge, not topic=daily%2Dchallenge
     if (filters.topic && filters.topic !== 'all') {
       url += `&topic=${filters.topic}`;
     }
 
-    // Add sort filter - always include date sort preference
     if (filters.dateSort) {
       url += `&sort=${filters.dateSort}`;
     }
 
-    // Add specific date filter
     if (filters.selectedDate) {
       try {
-        // Ensure we have a proper Date object
         const dateObj =
           filters.selectedDate instanceof Date
@@ -33,6 +26,4 @@
         if (!isNaN(dateObj.getTime())) {
           url += `&date=${dateObj}`;
-
-          // Log combined filter details when using specific date with other filters
         } else {
           console.error('Invalid date object:', filters.selectedDate);
@@ -43,10 +34,8 @@
     }
 
-    // Add comment sort filter
     if (filters.commentSort && filters.commentSort !== 'none') {
       url += `&commentSort=${filters.commentSort}`;
     }
 
-    // Add text search filter
     if (filters.searchText && filters.searchText.trim()) {
       const searchTerm = encodeURIComponent(filters.searchText.trim());
@@ -57,5 +46,4 @@
 
   try {
-    // Use apiClient to ensure authentication works properly
     const apiResponse = await apiClient.get(url);
 
Index: stServer.js
===================================================================
--- testServer.js	(revision 29a115071583588f02ee07a3cccd074814851c4c)
+++ 	(revision )
@@ -1,53 +1,0 @@
-const express = require('express');
-const app = express();
-const prisma = require('./backend/lib/prisma');
-
-// Middleware to log all requests
-app.use((req, res, next) => {
-  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
-  console.log('Query params:', req.query);
-  next();
-});
-
-// Test forum endpoint
-app.get('/test-forum', async (req, res) => {
-  try {
-    const { topic } = req.query;
-    
-    // Create whereCondition based on topic
-    const whereCondition = {};
-    if (topic && topic !== 'all') {
-      console.log(`Filtering by topic: "${topic}"`);
-      whereCondition.topic = topic;
-    }
-    
-    console.log('Where condition:', whereCondition);
-    
-    // Fetch posts with filter
-    const posts = await prisma.forum_posts.findMany({
-      where: whereCondition,
-      select: {
-        id: true,
-        title: true,
-        topic: true
-      }
-    });
-    
-    console.log(`Found ${posts.length} posts`);
-    
-    // Set cache control headers to prevent caching
-    res.set('Cache-Control', 'no-store, no-cache, must-revalidate, private');
-    res.set('Pragma', 'no-cache');
-    res.set('Expires', '0');
-    
-    res.status(200).json(posts);
-  } catch (err) {
-    console.error('Error:', err);
-    res.status(500).json({ error: err.message });
-  }
-});
-
-const PORT = 5005;
-app.listen(PORT, () => {
-  console.log(`Test server running at http://localhost:${PORT}`);
-});
