Index: backend/auth_form/serializers.py
===================================================================
--- backend/auth_form/serializers.py	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ backend/auth_form/serializers.py	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -73,5 +73,5 @@
     class Meta:
         model = Student
-        exclude = ['user', 'has_filled_form', 'id']
+        exclude = ['user', 'id']
     
     def to_representation(self, instance):
Index: frontend/src/components/PasswordInput.tsx
===================================================================
--- frontend/src/components/PasswordInput.tsx	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ frontend/src/components/PasswordInput.tsx	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -6,4 +6,5 @@
   name: string;
   value: string;
+  placeholder: string;
   onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
   error?: string;
@@ -13,4 +14,5 @@
   name,
   value,
+  placeholder,
   onChange,
   error,
@@ -30,5 +32,5 @@
         onChange={onChange}
         className="w-full mb-3 p-2 border rounded"
-        placeholder="Password"
+        placeholder={placeholder}
         required
       />
Index: frontend/src/components/StudentForm/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm/StudentForm.tsx	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ frontend/src/components/StudentForm/StudentForm.tsx	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -7,5 +7,4 @@
 	YEARS,
 } from "../../constants/subjects";
-import { useAuth } from "../../hooks/useAuth";
 import { StudentData, StudyTrack, Subject } from "../types";
 import FieldButton from "./FieldButton";
@@ -18,4 +17,5 @@
 	validateForm,
 } from "./utils";
+import useAxiosAuth from "../../hooks/useAxiosAuth";
 
 interface StudentFormProps {
@@ -32,6 +32,6 @@
 
 const StudentForm = ({ formData, isLoading }: StudentFormProps) => {
-	const { accessToken } = useAuth();
-	const [isSubmitted, setIsSubmitted] = useState(false);
+	const axiosAuth = useAxiosAuth();
+	const [hasSubmitted, setHasSubmitted] = useState(false);
 	const [validationErrors, setValidationErrors] = useState<{
 		[key: string]: string;
@@ -246,33 +246,21 @@
 		try {
 			// For updating existing form data use PATCH instead of PUT for partial updates
-			const method = formData?.current_year || isSubmitted ? "PATCH" : "POST";
-			const endpoint = "http://localhost:8000/auth/form/";
-			const res = await fetch(endpoint, {
+			const method = formData?.has_filled_form  ? "PATCH" : "POST";
+			await axiosAuth({
+				url: "/auth/form/",
 				method,
-				headers: {
-					"Content-Type": "application/json",
-					Authorization: `Bearer ${accessToken}`,
-				},
-				body: JSON.stringify(payload),
+				data: payload,
+			});	
+			setHasSubmitted(true);
+			setFormStatus({
+				isSubmitting: false,
+				message: "Формата е успешно зачувана!",
+				isError: false,
 			});
-
-			if (res.ok) {
-				setFormStatus({
-					isSubmitting: false,
-					message: "Формата е успешно зачувана!",
-					isError: false,
-				});
-				setTimeout(() => {
-					setFormStatus((prev) => ({ ...prev, message: "" }));
-				}, 5000);
-			} else {
-				const errorData = await res.json();
-				throw new Error(errorData.message || "Error submitting form");
-			}
-			setIsSubmitted(true);
+			setTimeout(() => {
+				setFormStatus((prev) => ({ ...prev, message: "" }));
+			}, 5000);
 			window.scrollTo({ top: 0, behavior: "smooth" });
 		} catch (error) {
-			console.error("Form submission error:", error);
-
 			setFormStatus({
 				isSubmitting: false,
@@ -326,5 +314,5 @@
 		<form onSubmit={handleSubmit} className="space-y-6 max-w-4xl mx-auto">
 			<h2 className="text-2xl font-bold mb-4 text-center">
-				{isSubmitted || formData?.current_year
+				{formData?.has_filled_form || hasSubmitted
 					? "Ажурирај ги податоците"
 					: "Внеси податоци"}
@@ -631,5 +619,5 @@
 					{formStatus.isSubmitting
 						? "Се зачувува..."
-						: formData?.current_year
+						: formData?.has_filled_form || hasSubmitted
 						? "Ажурирај"
 						: "Зачувај"}
Index: frontend/src/components/types.ts
===================================================================
--- frontend/src/components/types.ts	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ frontend/src/components/types.ts	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -22,4 +22,5 @@
 	evaluation: string[];
 	professors: string[];
+	has_filled_form: boolean;
 	passed_subjects_per_semester: Record<number, Subject[] | []>;
 }
Index: frontend/src/index.css
===================================================================
--- frontend/src/index.css	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ frontend/src/index.css	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -17,4 +17,15 @@
 }
 
+@keyframes fadeInUp {
+  from {
+    opacity: 0;
+    transform: translateY(20px);
+  }
+  to {
+    opacity: 1;
+    transform: translateY(0);
+  }
+}
+
 .custom-toast-container {
   /* This overrides the default 'top' value from the library */
Index: frontend/src/pages/Account.tsx
===================================================================
--- frontend/src/pages/Account.tsx	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ frontend/src/pages/Account.tsx	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -25,4 +25,6 @@
                 navigate("/login");
             } finally {
+                // garantira deka nema da dobies za 1/4s (arbitrary) skeletonform iako loadnal data
+                await new Promise((resolve) => setTimeout(resolve, 250));
                 setIsLoading(false);
             }
@@ -30,5 +32,5 @@
 
         fetchData();
-    }, [axiosAuth, navigate]); 
+    }, [axiosAuth, logout, navigate]); 
 
     return (
Index: frontend/src/pages/Login.tsx
===================================================================
--- frontend/src/pages/Login.tsx	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ frontend/src/pages/Login.tsx	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -4,4 +4,5 @@
 import PasswordInput from "../components/PasswordInput";
 import { useAuth } from "../hooks/useAuth";
+import { toast } from "react-toastify";
 
 interface LoginForm {
@@ -43,4 +44,5 @@
       login(access, refresh);
       navigate("/");
+      toast.success("Успешно сте најавени!");
     } catch (err: unknown) {
       const axiosError = err as AxiosError<{
Index: frontend/src/pages/Recommendations.tsx
===================================================================
--- frontend/src/pages/Recommendations.tsx	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ frontend/src/pages/Recommendations.tsx	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -35,4 +35,8 @@
 			setIsLoading(false);
 			setHasSearched(true);
+			const container = document.querySelector(".flex-1.p-8.overflow-y-auto");
+			if (container) {
+				container.scrollTo({ top: 0, behavior: "smooth" });
+			}
 		}
 	};
@@ -108,5 +112,7 @@
 				<button onClick={cycleSeason}>
 					<div className="bg-blue-500 border border-blue-200 rounded-lg p-6 font-semibold text-white text-center hover:bg-blue-800 transition-colors duration-200">
-						<p className="text-white mb-3">Избран семестар: </p>
+						<p className="text-white mb-3">
+							{season_ === "all" ? "Избрани семестри:" : "Избран семестар:"}
+						</p>
 						<p className="text-2xl">{getSeasonText()}</p>
 					</div>
@@ -153,11 +159,13 @@
 								<div
 									key={subject.id}
-									// Added the `group` class here to enable group-hover functionality.
 									className={`h-56 border border-gray-200 rounded-lg overflow-hidden shadow-sm hover:shadow-md transition-shadow duration-200 relative ${
 										index % 2 === 0 ? "self-start" : "self-end"
 									}`}
 									style={{
+										animationName: "fadeInUp",
+										animationDuration: "0.6s",
+										animationTimingFunction: "ease-out",
+										animationFillMode: "forwards",
 										animationDelay: `${index * 100}ms`,
-										animation: "fadeInUp 0.6s ease-out forwards",
 									}}
 								>
Index: frontend/src/pages/Register.tsx
===================================================================
--- frontend/src/pages/Register.tsx	(revision 5965585b1da4c5b8b21d5ebd26f7dfe963eb3502)
+++ frontend/src/pages/Register.tsx	(revision 1a7fd2e9019cfafaba0e730e5f2d7b8fc3f1cd24)
@@ -105,4 +105,5 @@
 					value={formData.password}
 					onChange={handleChange}
+					placeholder="Лозинка"
 					error={errors.password ? errors.password[0] : undefined}
 				/>
@@ -110,4 +111,5 @@
 					name="confirmPassword"
 					value={formData.confirmPassword}
+					placeholder="Потврди ја лозинката"
 					onChange={handleChange}
 				/>
