Index: backend/controllers/forumController.js
===================================================================
--- backend/controllers/forumController.js	(revision afab64b54cdb9df087d86b84804347be0aea1d41)
+++ backend/controllers/forumController.js	(revision 14b864327f44d4c4ce6b285362d0b92e61e1cc72)
@@ -16,4 +16,5 @@
 } = 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) {
Index: client/src/LandingPage/components/Hero.jsx
===================================================================
--- client/src/LandingPage/components/Hero.jsx	(revision afab64b54cdb9df087d86b84804347be0aea1d41)
+++ client/src/LandingPage/components/Hero.jsx	(revision 14b864327f44d4c4ce6b285362d0b92e61e1cc72)
@@ -1,3 +1,3 @@
-import React from "react";
+import React, { useState, useEffect, useRef } from "react";
 import hero from "../../assets/images/hero-bg.jpg";
 import { useNavigate } from "react-router-dom";
@@ -7,9 +7,27 @@
   const { user } = useAuth();
   const navigate = useNavigate();
+  const [isIntersecting, setIsIntersecting] = useState(false);
+  const heroRef = useRef(null);
+
+  useEffect(() => {
+    const observer = new IntersectionObserver(([entry]) => {
+      if (entry.isIntersecting) {
+        setIsIntersecting(true);
+
+        observer.disconnect();
+      }
+    });
+    if (heroRef.current) {
+      observer.observe(heroRef.current);
+    }
+    return () => observer.disconnect();
+  }, []);
   return (
     <div
+      ref={heroRef}
       className="hero min-h-[70vh] sm:min-h-[80vh] w-full"
       style={{
-        backgroundImage: `url(${hero})`,
+        backgroundImage: isIntersecting ? `url(${hero})` : "none",
+        transition: "background-image 0.5s ease-in-out",
       }}
     >
Index: client/src/LandingPage/components/Intro.jsx
===================================================================
--- client/src/LandingPage/components/Intro.jsx	(revision afab64b54cdb9df087d86b84804347be0aea1d41)
+++ client/src/LandingPage/components/Intro.jsx	(revision 14b864327f44d4c4ce6b285362d0b92e61e1cc72)
@@ -1,4 +1,4 @@
-import React from 'react';
-import logoIcon from '../../assets/images/logoIcon.png';
+import React from "react";
+import logoIcon from "../../assets/images/logoIcon.png";
 
 const Intro = () => {
@@ -8,5 +8,5 @@
         <img
           src={logoIcon}
-          className="w-40 sm:w-48 md:w-56 lg:w-64 xl:max-w-sm rounded-lg shadow-lg"
+          className="w-40 sm:w-48 md:w-56 lg:w-64 xl:max-w-sm rounded-lg "
           alt="FINKI Ranked Logo"
         />
Index: client/src/LandingPage/components/VisionSection.jsx
===================================================================
--- client/src/LandingPage/components/VisionSection.jsx	(revision afab64b54cdb9df087d86b84804347be0aea1d41)
+++ client/src/LandingPage/components/VisionSection.jsx	(revision 14b864327f44d4c4ce6b285362d0b92e61e1cc72)
@@ -1,6 +1,6 @@
-import React from 'react';
-import lista from '../../assets/images/listaNoBg.png';
-import { useNavigate } from 'react-router-dom';
-import { useAuth } from '@/contexts/AuthContext';
+import React from "react";
+import lista from "../../assets/images/listaNoBg.png";
+import { useNavigate } from "react-router-dom";
+import { useAuth } from "@/contexts/AuthContext";
 
 const VisionSection = () => {
@@ -26,5 +26,5 @@
             className="btn btn-sm sm:btn-md lg:btn-lg w-full sm:w-48 lg:w-60 bg-black text-white hover:bg-gray-800 mx-auto lg:mx-0"
             onClick={() => {
-              user ? navigate('/dashboard') : navigate('/register');
+              user ? navigate("/dashboard") : navigate("/register");
             }}
           >
@@ -36,4 +36,5 @@
           className="w-40 sm:w-48 md:w-56 lg:w-72 h-auto max-w-full"
           alt="Leaderboard illustration"
+          loading="lay"
         />
       </div>
Index: client/src/contexts/AuthContext.jsx
===================================================================
--- client/src/contexts/AuthContext.jsx	(revision afab64b54cdb9df087d86b84804347be0aea1d41)
+++ client/src/contexts/AuthContext.jsx	(revision 14b864327f44d4c4ce6b285362d0b92e61e1cc72)
@@ -37,11 +37,23 @@
   const navigate = useNavigate();
 
-  const logout = useCallback(async () => {
-    navigate("/");
-    clearTimeout(inactivityTimeoutRef.current);
-    clearTimeout(tokenExpiryTimeoutRef.current);
-
-    await supabase.auth.signOut();
-  }, [navigate]);
+  const logout = useCallback(
+    async (inactivity = false) => {
+      navigate("/");
+
+      clearTimeout(inactivityTimeoutRef.current);
+      clearTimeout(tokenExpiryTimeoutRef.current);
+
+      await supabase.auth.signOut();
+      if (inactivity) {
+        setTimeout(() => {
+          const now = Date.now();
+          const readableTime = new Date(now).toLocaleString();
+
+          alert(`Logged out due to inactivity at ${readableTime}`);
+        }, 10);
+      }
+    },
+    [navigate]
+  );
   useEffect(() => {
     const checkStaleSession = () => {
@@ -56,4 +68,10 @@
         if (inactiveTime > INACTIVITY_TIMEOUT) {
           supabase.auth.signOut();
+          setTimeout(() => {
+            const now = Date.now();
+            const readableTime = new Date(now).toLocaleString();
+
+            alert(`Logged out due to inactivity at ${readableTime}`);
+          }, 10);
         }
       }
@@ -68,8 +86,5 @@
     if (userRef.current) {
       inactivityTimeoutRef.current = setTimeout(() => {
-        const now = Date.now();
-        const readableTime = new Date(now).toLocaleString();
-        console.warn("Logged out due to inactivity", readableTime);
-        logout();
+        logout(true);
       }, INACTIVITY_TIMEOUT);
     }
