Index: backend/controllers/forumController.js
===================================================================
--- backend/controllers/forumController.js	(revision 91d4df204a816c5b48529e0fb589c7a339fd2abe)
+++ backend/controllers/forumController.js	(revision 434fbcd09318567c7ed94db1f6c21ee90015b218)
@@ -23,5 +23,6 @@
     });
     const postCounter = user.postCounter;
-
+    const postCheckCounter = user.postCheckCounter;
+    console.log(postCheckCounter);
     if (true) {
       const post = new ForumPost({
@@ -59,4 +60,9 @@
           });
         }
+      } else if (postCheckCounter >= 3) {
+        return res.status(202).json({
+          message:
+            "Would you like to send this post to moderator for approval?",
+        });
       } else if (
         !(
@@ -70,4 +76,10 @@
           if (aiResponse.aiResponse === "INAPPROPRIATE") {
             console.log("AI analysis says INAPPROPRIATE:", aiResponse.reason);
+            await prisma.users.update({
+              where: { id: authorId },
+              data: {
+                postCheckCounter: { increment: 1 },
+              },
+            });
             return res.status(400).json({
               error: "Content is not appropriate for the forum",
Index: backend/controllers/reviewController.js
===================================================================
--- backend/controllers/reviewController.js	(revision 91d4df204a816c5b48529e0fb589c7a339fd2abe)
+++ backend/controllers/reviewController.js	(revision 434fbcd09318567c7ed94db1f6c21ee90015b218)
@@ -19,4 +19,7 @@
     const savedPost = await prisma.to_be_reviewed.create({
       data: post,
+    });
+    return res.status(201).json({
+      message: "Post submitted for moderator approval",
     });
   } catch (err) {
@@ -72,5 +75,5 @@
 const deleteReviewPost = async (req, res) => {
   const { id } = req.params;
-  const userId = req.query.userId;
+  const { userId } = req.params;
   const hasModeratorStatus = await verifyModeratorStatus(userId);
   if (!hasModeratorStatus) {
@@ -98,5 +101,5 @@
   try {
     const { id } = req.params;
-    const userId = req.query.userId;
+    const { userId } = req.params;
 
     const hasModeratorStatus = await verifyModeratorStatus(userId);
Index: backend/routers/reviewRouter.js
===================================================================
--- backend/routers/reviewRouter.js	(revision 91d4df204a816c5b48529e0fb589c7a339fd2abe)
+++ backend/routers/reviewRouter.js	(revision 434fbcd09318567c7ed94db1f6c21ee90015b218)
@@ -1,10 +1,10 @@
-const express = require('express');
+const express = require("express");
 const router = express.Router();
-const reviewController = require('../controllers/reviewController');
+const reviewController = require("../controllers/reviewController");
 
-router.post('/posts/:id', reviewController.approveReviewPost);
-router.get('/posts', reviewController.getReviewPosts);
-
-router.delete('/posts/:id', reviewController.deleteReviewPost);
+router.post("/posts/:id/:userId", reviewController.approveReviewPost);
+router.get("/posts", reviewController.getReviewPosts);
+router.post("/posts/approval", reviewController.createReviewPost);
+router.delete("/posts/:id/:userId", reviewController.deleteReviewPost);
 
 module.exports = router;
Index: client/src/CreatePost/CreatePost.jsx
===================================================================
--- client/src/CreatePost/CreatePost.jsx	(revision 91d4df204a816c5b48529e0fb589c7a339fd2abe)
+++ client/src/CreatePost/CreatePost.jsx	(revision 434fbcd09318567c7ed94db1f6c21ee90015b218)
@@ -3,5 +3,5 @@
 import { createForumPost } from "@/services/forumService";
 import { useAuth } from "@/contexts/AuthContext";
-
+import { createApprovalForumPost } from "@/services/reviewService";
 const CreatePost = () => {
   const [title, setTitle] = useState("");
@@ -9,4 +9,5 @@
   const { user } = useAuth();
   const [isSubmitting, setIsSubmitting] = useState(false);
+  const [pendingModerator, setPendingModerator] = useState(false);
   const [modal, setModal] = useState({ isOpen: false, message: "", type: "" });
   const navigate = useNavigate();
@@ -17,5 +18,5 @@
       document.body.style.overflow = "unset";
     }
-    // Cleanup on component unmount
+
     return () => {
       document.body.style.overflow = "unset";
@@ -56,4 +57,10 @@
       if (res.message.includes("moderator approval")) {
         showModal(res.message, "pending");
+      } else if (
+        res.message ===
+        "Would you like to send this post to moderator for approval?"
+      ) {
+        setPendingModerator(true);
+        showModal(res.message, "moderatorPrompt");
       } else {
         showModal("Post created successfully!", "success");
@@ -86,4 +93,31 @@
     } finally {
       setIsSubmitting(false);
+    }
+  };
+  const handleModeratorDecision = async (decision) => {
+    setPendingModerator(false);
+    if (decision === "yes") {
+      try {
+        const postData = {
+          title,
+          content,
+          authorId: user.id,
+          authorName: user.username,
+        };
+        const res = await createApprovalForumPost(postData);
+        console.log(res);
+        showModal(
+          res.message || "Your post has been submitted for moderator approval.",
+          "pending"
+        );
+      } catch (error) {
+        showModal(
+          error.response?.data?.error ||
+            "Failed to submit post for moderator approval.",
+          "error"
+        );
+      }
+    } else {
+      setModal({ isOpen: false, message: "", type: "" });
     }
   };
@@ -326,8 +360,25 @@
             </div>
             <p className="py-4">{modal.message}</p>
-            <div className="flex justify-end mt-4">
-              <button className="btn btn-primary" onClick={closeModal}>
-                OK
-              </button>
+            <div className="flex justify-end gap-2 mt-8">
+              {modal.type === "moderatorPrompt" ? (
+                <>
+                  <button
+                    className="btn btn-success"
+                    onClick={() => handleModeratorDecision("yes")}
+                  >
+                    Yes
+                  </button>
+                  <button
+                    className="btn btn-error"
+                    onClick={() => handleModeratorDecision("no")}
+                  >
+                    No
+                  </button>
+                </>
+              ) : (
+                <button className="btn btn-primary" onClick={closeModal}>
+                  OK
+                </button>
+              )}
             </div>
           </div>
Index: client/src/services/reviewService.js
===================================================================
--- client/src/services/reviewService.js	(revision 91d4df204a816c5b48529e0fb589c7a339fd2abe)
+++ client/src/services/reviewService.js	(revision 434fbcd09318567c7ed94db1f6c21ee90015b218)
@@ -7,10 +7,11 @@
 };
 export const deleteReviewPost = async (postId, userId) => {
-  return await apiClient.delete(`/review/posts/${postId}?userId=${userId}`);
+  return await apiClient.delete(`/review/posts/${postId}/${userId}`);
+};
+
+export const createApprovalForumPost = (postData) => {
+  return apiClient.post("/review/posts/approval", postData);
 };
 export const approveReviewPost = async (postId, postData, userId) => {
-  return await apiClient.post(
-    `/review/posts/${postId}?userId=${userId}`,
-    postData
-  );
+  return await apiClient.post(`/review/posts/${postId}/${userId}`, postData);
 };
