Index: frontend/src/components/StudentForm/SkeletonForm.tsx
===================================================================
--- frontend/src/components/StudentForm/SkeletonForm.tsx	(revision 6130f827864132effcd3801db0e8148fa0df3fb5)
+++ frontend/src/components/StudentForm/SkeletonForm.tsx	(revision bdd5f29f6660991baddfb1085a86240a1f0fec81)
@@ -3,14 +3,16 @@
 		<div className="space-y-6 max-w-4xl mx-auto animate-pulse">
 			{/* Header */}
-			<div className="h-8 bg-gray-200 rounded-md w-64 mx-auto" />
+			<div className="h-8 bg-gray-200 rounded-md w-64 mx-auto mb-4" />
 
 			{/* Index and Study Track */}
 			<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
-				{[1, 2].map((i) => (
-					<div key={i}>
-						<div className="h-6 bg-gray-200 rounded-md w-32 mb-2" />
-						<div className="h-10 bg-gray-200 rounded-md w-full" />
-					</div>
-				))}
+				<div>
+					<div className="h-6 bg-gray-200 rounded-md w-32 mb-2" />
+					<div className="h-10 bg-gray-200 rounded-md w-full" />
+				</div>
+				<div>
+					<div className="h-6 bg-gray-200 rounded-md w-32 mb-2" />
+					<div className="h-10 bg-gray-200 rounded-md w-full" />
+				</div>
 			</div>
 
@@ -21,22 +23,40 @@
 			</div>
 
-			{/* Mandatory Subjects */}
+			{/* Subjects Selector (Semesters grid) */}
 			<div>
-				<div className="h-6 bg-gray-200 rounded-md w-48 mb-4" />
-				<div className="flex flex-wrap gap-2">
-					{[1, 2, 3, 4].map((i) => (
-						<div key={i} className="h-10 bg-gray-200 rounded-md w-48" />
+				<div className="h-6 bg-gray-200 rounded-md w-56 mb-4" />
+				<div className="grid grid-cols-1 gap-4">
+					{Array.from({ length: 4 }).map((_, i) => (
+						<div
+							key={i}
+							className="border border-gray-200 rounded-lg p-4 bg-gray-50 space-y-3"
+						>
+							<div className="h-5 bg-gray-200 rounded-md w-32 mb-2" />
+							<div>
+								<div className="h-4 bg-gray-200 rounded-md w-28 mb-2" />
+								<div className="flex flex-wrap gap-2 mb-2">
+									{Array.from({ length: 2 }).map((_, j) => (
+										<div key={j} className="h-8 bg-gray-200 rounded-md w-28" />
+									))}
+								</div>
+							</div>
+							<div>
+								<div className="h-4 bg-gray-200 rounded-md w-32 mb-2" />
+								<div className="h-8 bg-gray-200 rounded-md w-full mb-2" />{" "}
+								{/* search input */}
+								<div className="flex flex-wrap gap-2 mb-2">
+									{Array.from({ length: 3 }).map((_, k) => (
+										<div key={k} className="h-8 bg-gray-200 rounded-md w-28" />
+									))}
+								</div>
+							</div>
+						</div>
 					))}
 				</div>
 			</div>
 
-			{/* Elective Subjects */}
+			{/* Extracurricular checkbox */}
 			<div>
-				<div className="h-6 bg-gray-200 rounded-md w-48 mb-4" />
-				<div className="flex flex-wrap gap-2">
-					{[1, 2, 3, 4].map((i) => (
-						<div key={i} className="h-10 bg-gray-200 rounded-md w-48" />
-					))}
-				</div>
+				<div className="h-5 bg-gray-200 rounded-md w-80 mb-2" />
 			</div>
 
@@ -81,4 +101,16 @@
 			</div>
 
+			{/* Favorite Professors */}
+			<div>
+				<div className="h-6 bg-gray-200 rounded-md w-56 mb-4" />
+				<div className="h-10 bg-gray-200 rounded-md w-60 mb-2" />{" "}
+				{/* search input */}
+				<div className="flex flex-wrap gap-2">
+					{[1, 2, 3, 4, 5].map((i) => (
+						<div key={i} className="h-10 bg-gray-200 rounded-md w-32" />
+					))}
+				</div>
+			</div>
+
 			{/* Submit Button */}
 			<div className="pt-4">
Index: frontend/src/components/StudentForm/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm/StudentForm.tsx	(revision 6130f827864132effcd3801db0e8148fa0df3fb5)
+++ frontend/src/components/StudentForm/StudentForm.tsx	(revision bdd5f29f6660991baddfb1085a86240a1f0fec81)
@@ -15,4 +15,6 @@
 interface StudentFormProps {
 	formData: StudentData | null;
+	isLoading: boolean;
+	setIsLoading?: (b: boolean) => void;
 }
 
@@ -23,5 +25,5 @@
 }
 
-const StudentForm = ({ formData }: StudentFormProps) => {
+const StudentForm = ({ formData, isLoading }: StudentFormProps) => {
 	const { accessToken } = useAuth();
 	const [isSubmitted, setIsSubmitted] = useState(false);
@@ -77,5 +79,4 @@
 			technologies: [],
 		});
-	const [isLoading, setIsLoading] = useState(true);
 	const [hasExtracurricular, setHasExtracurricular] = useState(false);
 
@@ -122,10 +123,9 @@
 						professors: allProfessors_,
 					}));
-					// todo: no explanation needed
-					setTimeout(() => setIsLoading(false), 900);
+					// setIsLoading(false);
 				}
 			} catch (error) {
 				console.error("Error fetching subjects:", error);
-				setIsLoading(false);
+				// setIsLoading(false);
 			}
 		};
@@ -147,7 +147,7 @@
 		if (passedSubjects.length === 0)
 			errors.passedSubjects = "Одбери барем еден предмет.";
-		if (domains.length === 0) errors.domains = "Одбери барем едно поле.";
-		if (technologies.length === 0)
-			errors.technologies = "Одбери барем една технологија.";
+		// if (domains.length === 0) errors.domains = "Одбери барем едно поле.";
+		// if (technologies.length === 0)
+		// 	errors.technologies = "Одбери барем една технологија.";
 		if (!evaluation) errors.evaluation = "Одбери тип на оценување.";
 		return errors;
@@ -181,4 +181,10 @@
 		if (Object.keys(errors).length > 0) {
 			setValidationErrors(errors);
+			window.scrollTo({ top: 0, behavior: "smooth" });
+			setFormStatus({
+				isSubmitting: false,
+				message: `Пополни ги сите задолжителни полиња`,
+				isError: true,
+			});
 			return;
 		}
@@ -205,5 +211,5 @@
 		try {
 			// For updating existing form data use PATCH instead of PUT for partial updates
-			const method = formData?.current_year ? "PATCH" : "POST";
+			const method = formData?.current_year || isSubmitted ? "PATCH" : "POST";
 			const endpoint = "http://localhost:8000/auth/form/";
 			const res = await fetch(endpoint, {
@@ -231,4 +237,5 @@
 			}
 			setIsSubmitted(true);
+			window.scrollTo({ top: 0, behavior: "smooth" });
 		} catch (error) {
 			console.error("Form submission error:", error);
@@ -238,4 +245,5 @@
 				isError: true,
 			});
+			window.scrollTo({ top: 0, behavior: "smooth" });
 		}
 	};
@@ -282,5 +290,4 @@
 		);
 	};
-
 	const filteredMandatorySubjects = studyTrack
 		? subjects
@@ -554,5 +561,5 @@
 						Омилени професори
 					</h3>
-					{studyTrack != "" && (
+					{
 						<input
 							onChange={(e) => setProfessorSearchTerm(e.target.value)}
@@ -563,5 +570,5 @@
 							placeholder="Пребарај професор"
 						/>
-					)}
+					}
 				</div>
 				<div className="flex flex-wrap gap-2">
Index: frontend/src/components/StudentForm/SubjectsSelector.tsx
===================================================================
--- frontend/src/components/StudentForm/SubjectsSelector.tsx	(revision 6130f827864132effcd3801db0e8148fa0df3fb5)
+++ frontend/src/components/StudentForm/SubjectsSelector.tsx	(revision bdd5f29f6660991baddfb1085a86240a1f0fec81)
@@ -48,4 +48,6 @@
 			{studyTrack ? (
 				<div className="grid gap-6">
+					{/* uncomment for displaying 2 semesters side by side on large screens, for now this is good*/}
+					{/* <div className="grid grid-cols-1 lg:grid-cols-2 gap-6"> */}
 					{(() => {
 						const semestersToShow = Array.from(
Index: frontend/src/pages/Account.tsx
===================================================================
--- frontend/src/pages/Account.tsx	(revision 6130f827864132effcd3801db0e8148fa0df3fb5)
+++ frontend/src/pages/Account.tsx	(revision bdd5f29f6660991baddfb1085a86240a1f0fec81)
@@ -11,4 +11,5 @@
 	const [tokenChecked, setTokenChecked] = useState(false);
 	const [formData, setFormData] = useState<StudentData | null>(null);
+	const [isLoading, setIsLoading] = useState(true);
 
 	useEffect(() => {
@@ -38,6 +39,9 @@
 				const resForm = await axiosInstance.get("/auth/form/");
 				setFormData(resForm.data);
+				// waiting for data to render
+				setTimeout(() => setIsLoading(false), 5);
 			} catch (error) {
 				console.error("Error fetching data.", error);
+				setIsLoading(false);
 			}
 		};
@@ -49,5 +53,9 @@
 	return (
 		<div className="p-4">
-			<StudentForm formData={formData} />
+			<StudentForm
+				formData={formData}
+				isLoading={isLoading}
+				setIsLoading={setIsLoading}
+			/>
 		</div>
 	);
