Index: frontend/src/components/StudentForm/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm/StudentForm.tsx	(revision 4d806e387b17135bf34819ba6fdd1a628b9a65bd)
+++ frontend/src/components/StudentForm/StudentForm.tsx	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
@@ -7,4 +7,6 @@
 	YEARS,
 } from "../../constants/subjects";
+import { useRecommendations } from "../../context/RecommendationsContext";
+import { useSubjects } from "../../context/SubjectsContext";
 import useAxiosAuth from "../../hooks/useAxiosAuth";
 import { StudentData, StudyTrack, Subject } from "../types";
@@ -50,4 +52,5 @@
 	);
 	const [studyEffort, setStudyEffort] = useState(formData?.study_effort || "");
+	const [, setRecommendations] = useRecommendations();
 	const [domains, setDomains] = useState<string[]>(formData?.tags || []);
 	const [semesterSearchTerms, setSemesterSearchTerms] = useState<
@@ -84,5 +87,5 @@
 	const [showProfessors, setShowProfessors] = useState(false);
 	const [showAssistants, setShowAssistants] = useState(false);
-	const [subjects, setSubjects] = useState<Subject[]>([]);
+	const [subjects, setSubjects] = useSubjects();
 	const [distinctSubjectData, setDistinctSubjectData] =
 		useState<DistinctSubjectData>({
@@ -142,4 +145,36 @@
 	}, [formData]);
 
+	const setUniqueValues = (subJson: Subject[]) => {
+		const allProfessors: string[] = subJson
+			.flatMap((subject: Subject) => subject.subject_info.professors)
+			.filter((p): p is string => typeof p === "string");
+		const uniqueProfessors = Array.from(new Set(allProfessors));
+		const allProfessors_ = uniqueProfessors
+			.filter((prof) => prof.trim().toLowerCase() !== "сите професори")
+			.sort((a, b) => a.localeCompare(b));
+
+		const allAssistants: string[] = subJson
+			.flatMap((subject: Subject) => subject.subject_info.assistants)
+			.filter((p): p is string => typeof p === "string");
+		const uniqueAssistants = Array.from(new Set(allAssistants));
+		const allAssistants_ = uniqueAssistants
+			.filter((ass) => ass.trim().toLowerCase() !== "сите асистенти")
+			.sort((a, b) => a.localeCompare(b));
+		setDistinctSubjectData(() => ({
+			tags: Array.from(
+				new Set(subJson.flatMap((subject) => subject.subject_info.tags))
+			).sort((a, b) => a.localeCompare(b)),
+			technologies: Array.from(
+				new Set(
+					subJson
+						.flatMap((subject) => subject.subject_info.technologies)
+						.filter((tech) => tech != "any" && tech != "")
+				)
+			).sort((a, b) => a.localeCompare(b)),
+			professors: allProfessors_,
+			assistants: allAssistants_,
+		}));
+	};
+
 	useEffect(() => {
 		const fetchSubjects = async () => {
@@ -149,34 +184,5 @@
 					const subJson: Subject[] = await resSubjects.json();
 					setSubjects(subJson || []);
-
-					const allProfessors: string[] = subJson
-						.flatMap((subject: Subject) => subject.subject_info.professors)
-						.filter((p): p is string => typeof p === "string");
-					const uniqueProfessors = Array.from(new Set(allProfessors));
-					const allProfessors_ = uniqueProfessors
-						.filter((prof) => prof.trim().toLowerCase() !== "сите професори")
-						.sort((a, b) => a.localeCompare(b));
-
-					const allAssistants: string[] = subJson
-						.flatMap((subject: Subject) => subject.subject_info.assistants)
-						.filter((p): p is string => typeof p === "string");
-					const uniqueAssistants = Array.from(new Set(allAssistants));
-					const allAssistants_ = uniqueAssistants
-						.filter((ass) => ass.trim().toLowerCase() !== "сите асистенти")
-						.sort((a, b) => a.localeCompare(b));
-					setDistinctSubjectData(() => ({
-						tags: Array.from(
-							new Set(subJson.flatMap((subject) => subject.subject_info.tags))
-						).sort((a, b) => a.localeCompare(b)),
-						technologies: Array.from(
-							new Set(
-								subJson
-									.flatMap((subject) => subject.subject_info.technologies)
-									.filter((tech) => tech != "any" && tech != "")
-							)
-						).sort((a, b) => a.localeCompare(b)),
-						professors: allProfessors_,
-						assistants: allAssistants_,
-					}));
+					setUniqueValues(subJson);
 				}
 			} catch (error) {
@@ -185,5 +191,6 @@
 		};
 
-		fetchSubjects();
+		if (subjects.length == 0) fetchSubjects();
+		else setUniqueValues(subjects);
 	}, []);
 
@@ -217,4 +224,5 @@
 	const handleSubmit = async (e: React.FormEvent) => {
 		e.preventDefault();
+		setRecommendations([]);
 		const totalCredits = { value: -1 };
 		const creditsByLevel = { value: [0, 0, 0] };
@@ -437,4 +445,41 @@
 				<h3 className="text-lg font-medium text-gray-900 mb-2 flex items-center gap-2">
 					Година на студии
+					<span
+						className="relative group cursor-pointer"
+						tabIndex={0}
+						aria-label="Објаснување за година на студии"
+					>
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							width="18"
+							height="18"
+							fill="currentColor"
+							viewBox="0 0 20 20"
+							className="text-gray-400"
+						>
+							<circle
+								cx="10"
+								cy="10"
+								r="9"
+								stroke="currentColor"
+								strokeWidth="2"
+								fill="none"
+							/>
+							<text
+								x="10"
+								y="15"
+								textAnchor="middle"
+								fontSize="13"
+								fill="currentColor"
+							>
+								?
+							</text>
+						</svg>
+						<span className="absolute left-1/2 -translate-x-1/2 mt-2 w-64 bg-gray-800 text-white text-xs rounded px-3 py-2 opacity-0 group-hover:opacity-100 group-focus:opacity-100 pointer-events-none transition-opacity z-10">
+							Ако моментално е јуни - септември, за да добиеш соодветни
+							препораки додади еден на твојата тековна година на студии. На
+							пример, ако си втора година и е јуни, избери дека си трета година.
+						</span>
+					</span>
 				</h3>
 				<select
Index: frontend/src/components/SubjectCatalog/SubjectCatalog.tsx
===================================================================
--- frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision 4d806e387b17135bf34819ba6fdd1a628b9a65bd)
+++ frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
@@ -1,3 +1,4 @@
-import { useEffect, useState, useMemo } from "react";
+import { useEffect, useMemo, useState } from "react";
+import { useSubjects } from "../../context/SubjectsContext";
 import { Filters, Subject } from "../types";
 import FilterSidebar from "./FilterSidebar";
@@ -13,4 +14,5 @@
 } from "./utils";
 const SubjectCatalog = () => {
+	const [subjects, setSubjects] = useSubjects();
 	const [visibleCourses, setVisibleCourses] = useState<number>(12);
 	const [searchTerm, setSearchTerm] = useState<string>("");
@@ -18,5 +20,4 @@
 	const [assistantSearchTerm, setAssistantSearchTerm] = useState<string>("");
 	const [selectedSubject, setSelectedSubject] = useState<Subject | null>(null);
-	const [subjectData, setSubjectData] = useState<Subject[]>([]);
 	const [isLoaded, setIsLoaded] = useState(false);
 	const [randomStaff, setRandomStaff] = useState(["", ""]);
@@ -36,9 +37,9 @@
 	});
 	const filteredSubjects: Subject[] = filterSubjects({
-		subjectData,
 		searchTerm,
 		professorSearchTerm,
 		assistantSearchTerm,
 		filters,
+		subjects,
 	});
 
@@ -47,12 +48,13 @@
 			const response = await fetch("http://localhost:8000/subjects");
 			const data = await response.json();
-			setSubjectData(data);
+			setSubjects(data);
 			setIsLoaded(true);
 		};
-		fetchData();
+		if (subjects.length == 0) fetchData();
+		else setIsLoaded(true);
 	}, []);
 
 	useEffect(() => {
-		getRandomStaff(subjectData, setRandomStaff);
+		getRandomStaff(subjects, setRandomStaff);
 		setTags(
 			Array.from(
@@ -60,13 +62,13 @@
 			)
 		);
-	}, [subjectData]);
+	}, [subjects]);
 
 	const subjectIdToNameMap = useMemo(() => {
 		const map = new Map<number, string>();
-		subjectData.forEach((subject) => {
-		  map.set(subject.id, subject.name);
+		subjects.forEach((subject) => {
+			map.set(subject.id, subject.name);
 		});
 		return map;
-	  }, [subjectData]);
+	}, [subjects]);
 
 	const loadMore = () => {
@@ -75,7 +77,5 @@
 
 	const openSubjectDetails = (subject: Subject) => {
-		setSelectedSubject(
-			subjectData.find((item) => item.id == subject.id) ?? null
-		);
+		setSelectedSubject(subjects.find((item) => item.id == subject.id) ?? null);
 		setShowModal(true);
 	};
@@ -170,5 +170,8 @@
 					selectedSubject={selectedSubject}
 					closeModal={closeModal}
-					subjectPrerequisites={getSubjectPrerequisites(selectedSubject, subjectIdToNameMap)}
+					subjectPrerequisites={getSubjectPrerequisites(
+						selectedSubject,
+						subjectIdToNameMap
+					)}
 				/>
 			)}
Index: frontend/src/components/SubjectCatalog/utils.ts
===================================================================
--- frontend/src/components/SubjectCatalog/utils.ts	(revision 4d806e387b17135bf34819ba6fdd1a628b9a65bd)
+++ frontend/src/components/SubjectCatalog/utils.ts	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
@@ -3,171 +3,171 @@
 
 interface filteredSubjectsParams {
-  subjectData: Subject[];
-  searchTerm: string;
-  professorSearchTerm: string;
-  assistantSearchTerm: string;
-  filters: {
-    season: "W" | "S" | "";
-    semester: number[];
-    level: number[];
-    activated: "activated" | "not_activated" | "";
-    mandatoryFor: StudyTrack[];
-    electiveFor: StudyTrack[];
-    professors: string[];
-    assistants: string[];
-    hasPrerequisites: boolean;
-    tags: string[];
-  };
+	searchTerm: string;
+	professorSearchTerm: string;
+	assistantSearchTerm: string;
+	filters: {
+		season: "W" | "S" | "";
+		semester: number[];
+		level: number[];
+		activated: "activated" | "not_activated" | "";
+		mandatoryFor: StudyTrack[];
+		electiveFor: StudyTrack[];
+		professors: string[];
+		assistants: string[];
+		hasPrerequisites: boolean;
+		tags: string[];
+	};
+	subjects: Subject[];
 }
 
 export const filterSubjects = ({
-  subjectData,
-  searchTerm,
-  professorSearchTerm,
-  assistantSearchTerm,
-  filters,
+	searchTerm,
+	professorSearchTerm,
+	assistantSearchTerm,
+	filters,
+	subjects,
 }: filteredSubjectsParams) =>
-  subjectData.filter((subject) => {
-    if (searchTerm !== "") searchTerm = LatinToCyrillic(searchTerm);
-    const searchMatches =
-      searchTerm === "" ||
-      subject.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
-      subject.code.toLowerCase().includes(searchTerm.toLowerCase()) ||
-      subject.abstract?.toLowerCase().includes(searchTerm.toLowerCase());
+	subjects?.filter((subject) => {
+		if (searchTerm !== "") searchTerm = LatinToCyrillic(searchTerm);
+		const searchMatches =
+			searchTerm === "" ||
+			subject.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+			subject.code.toLowerCase().includes(searchTerm.toLowerCase()) ||
+			subject.abstract?.toLowerCase().includes(searchTerm.toLowerCase());
 
-    const seasonMatches =
-      filters.season === "" || filters.season === subject.subject_info.season;
+		const seasonMatches =
+			filters.season === "" || filters.season === subject.subject_info.season;
 
-    const semesterMatches =
-      filters.semester.length === 0 ||
-      filters.semester.includes(subject.subject_info.semester);
+		const semesterMatches =
+			filters.semester.length === 0 ||
+			filters.semester.includes(subject.subject_info.semester);
 
-    const levelMatches =
-      filters.level.length === 0 ||
-      filters.level.includes(subject.subject_info.level);
+		const levelMatches =
+			filters.level.length === 0 ||
+			filters.level.includes(subject.subject_info.level);
 
-    const activatedMatches =
-      filters.activated == "" ||
-      (filters.activated == "activated" && subject.subject_info.activated) ||
-      (filters.activated == "not_activated" && !subject.subject_info.activated);
+		const activatedMatches =
+			filters.activated == "" ||
+			(filters.activated == "activated" && subject.subject_info.activated) ||
+			(filters.activated == "not_activated" && !subject.subject_info.activated);
 
-    const mandatoryMatches =
-      filters.mandatoryFor.length === 0 ||
-      subject.subject_info.mandatory_for.some((item) =>
-        filters.mandatoryFor.includes(item)
-      );
+		const mandatoryMatches =
+			filters.mandatoryFor.length === 0 ||
+			subject.subject_info.mandatory_for.some((item) =>
+				filters.mandatoryFor.includes(item)
+			);
 
-    const electiveMatches =
-      filters.electiveFor.length === 0 ||
-      subject.subject_info.elective_for.some((item) =>
-        filters.electiveFor.includes(item)
-      );
+		const electiveMatches =
+			filters.electiveFor.length === 0 ||
+			subject.subject_info.elective_for.some((item) =>
+				filters.electiveFor.includes(item)
+			);
 
-    const professorsMatches =
-      professorSearchTerm == "" ||
-      subject.subject_info.professors.some((item) =>
-        item
-          .toLowerCase()
-          .includes(LatinToCyrillic(professorSearchTerm).toLowerCase())
-      );
+		const professorsMatches =
+			professorSearchTerm == "" ||
+			subject.subject_info.professors.some((item) =>
+				item
+					.toLowerCase()
+					.includes(LatinToCyrillic(professorSearchTerm).toLowerCase())
+			);
 
-    const assistantsMatches =
-      assistantSearchTerm == "" ||
-      subject.subject_info.assistants.some((item) =>
-        item
-          .toLowerCase()
-          .includes(LatinToCyrillic(assistantSearchTerm).toLowerCase())
-      );
+		const assistantsMatches =
+			assistantSearchTerm == "" ||
+			subject.subject_info.assistants.some((item) =>
+				item
+					.toLowerCase()
+					.includes(LatinToCyrillic(assistantSearchTerm).toLowerCase())
+			);
 
-    const prerequisitesMatch =
-      !filters.hasPrerequisites || subject.subject_info.prerequisite == null;
+		const prerequisitesMatch =
+			!filters.hasPrerequisites || subject.subject_info.prerequisite == null;
 
-    const tagsMatch =
-      filters.tags.length == 0 ||
-      subject.subject_info.tags.some((item) => filters.tags.includes(item));
-    return (
-      searchMatches &&
-      seasonMatches &&
-      semesterMatches &&
-      levelMatches &&
-      activatedMatches &&
-      mandatoryMatches &&
-      electiveMatches &&
-      professorsMatches &&
-      assistantsMatches &&
-      prerequisitesMatch &&
-      tagsMatch
-    );
-  });
+		const tagsMatch =
+			filters.tags.length == 0 ||
+			subject.subject_info.tags.some((item) => filters.tags.includes(item));
+		return (
+			searchMatches &&
+			seasonMatches &&
+			semesterMatches &&
+			levelMatches &&
+			activatedMatches &&
+			mandatoryMatches &&
+			electiveMatches &&
+			professorsMatches &&
+			assistantsMatches &&
+			prerequisitesMatch &&
+			tagsMatch
+		);
+	});
 
 export const resetFilters = (
-  setSearchTerm: (val: string) => void,
-  setProfessorSearchTerm: (val: string) => void,
-  setAssistantSearchTerm: (val: string) => void,
-  setFilters: (val: (prev: Filters) => Filters) => void
+	setSearchTerm: (val: string) => void,
+	setProfessorSearchTerm: (val: string) => void,
+	setAssistantSearchTerm: (val: string) => void,
+	setFilters: (val: (prev: Filters) => Filters) => void
 ) => {
-  setSearchTerm("");
-  setProfessorSearchTerm("");
-  setAssistantSearchTerm("");
-  setFilters(() => ({
-    season: "",
-    semester: [],
-    level: [],
-    activated: "",
-    mandatoryFor: [],
-    electiveFor: [],
-    professors: [],
-    assistants: [],
-    hasPrerequisites: false,
-    tags: [],
-  }));
+	setSearchTerm("");
+	setProfessorSearchTerm("");
+	setAssistantSearchTerm("");
+	setFilters(() => ({
+		season: "",
+		semester: [],
+		level: [],
+		activated: "",
+		mandatoryFor: [],
+		electiveFor: [],
+		professors: [],
+		assistants: [],
+		hasPrerequisites: false,
+		tags: [],
+	}));
 };
 
 export const getRandomStaff = (
-  subjectData: Subject[],
-  setRandomStaff: ([]: string[]) => void
+	subjectData: Subject[],
+	setRandomStaff: ([]: string[]) => void
 ) => {
-  if (subjectData.length == 0) return;
-  const getRandomProfessor = () => {
-    const randomSubject1 =
-      subjectData[Math.floor(Math.random() * subjectData.length)];
-    return randomSubject1?.subject_info.professors[
-      Math.floor(Math.random() * randomSubject1.subject_info.professors.length)
-    ];
-  };
-  const getRandomAssistant = () => {
-    const randomSubject2 =
-      subjectData[Math.floor(Math.random() * subjectData.length)];
-    return randomSubject2?.subject_info.assistants[
-      Math.floor(Math.random() * randomSubject2.subject_info.assistants.length)
-    ];
-  };
-  let randomProfessor = "";
-  let randomAssistant = "";
+	if (subjectData.length == 0) return;
+	const getRandomProfessor = () => {
+		const randomSubject1 =
+			subjectData[Math.floor(Math.random() * subjectData.length)];
+		return randomSubject1?.subject_info.professors[
+			Math.floor(Math.random() * randomSubject1.subject_info.professors.length)
+		];
+	};
+	const getRandomAssistant = () => {
+		const randomSubject2 =
+			subjectData[Math.floor(Math.random() * subjectData.length)];
+		return randomSubject2?.subject_info.assistants[
+			Math.floor(Math.random() * randomSubject2.subject_info.assistants.length)
+		];
+	};
+	let randomProfessor = "";
+	let randomAssistant = "";
 
-  while (!randomProfessor) randomProfessor = getRandomProfessor();
-  while (!randomAssistant) randomAssistant = getRandomAssistant();
+	while (!randomProfessor) randomProfessor = getRandomProfessor();
+	while (!randomAssistant) randomAssistant = getRandomAssistant();
 
-  setRandomStaff([randomProfessor, randomAssistant]);
+	setRandomStaff([randomProfessor, randomAssistant]);
 };
 
 export const getSubjectPrerequisites = (
-  subject: Subject,
-  subjectMap: Map<number, string>
+	subject: Subject,
+	subjectMap: Map<number, string>
 ): "Нема предуслов" | number | string => {
-  const prerequisite = subject?.subject_info?.prerequisite;
-  if (!prerequisite) return "Нема предуслов";
+	const prerequisite = subject?.subject_info?.prerequisite;
+	if (!prerequisite) return "Нема предуслов";
 
-  if ("subjects" in prerequisite && Array.isArray(prerequisite.subjects)) {
-    const names = prerequisite.subjects.map(
-      (id) => subjectMap.get(id) || "Непознат предмет"
-    );
-    return names.length > 0 ? names.join(' или ') : "Нема предуслов";
-  }
+	if ("subjects" in prerequisite && Array.isArray(prerequisite.subjects)) {
+		const names = prerequisite.subjects.map(
+			(id) => subjectMap.get(id) || "Непознат предмет"
+		);
+		return names.length > 0 ? names.join(" или ") : "Нема предуслов";
+	}
 
-  if ("credits" in prerequisite && typeof prerequisite.credits === "number") {
-    return prerequisite.credits;
-  }
+	if ("credits" in prerequisite && typeof prerequisite.credits === "number") {
+		return prerequisite.credits;
+	}
 
-  return "Нема предуслов";
+	return "Нема предуслов";
 };
Index: frontend/src/context/RecommendationsContext.tsx
===================================================================
--- frontend/src/context/RecommendationsContext.tsx	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
+++ frontend/src/context/RecommendationsContext.tsx	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
@@ -0,0 +1,39 @@
+import {
+	createContext,
+	Dispatch,
+	ReactNode,
+	SetStateAction,
+	useContext,
+	useState,
+} from "react";
+import { Subject } from "../components/types";
+
+type RecommendationsContextType = [
+	Subject[],
+	Dispatch<SetStateAction<Subject[]>>
+];
+
+const RecommendationsContext = createContext<RecommendationsContextType>([
+	[],
+	() => {},
+]);
+
+interface RecommendationsProviderProps {
+	children: ReactNode;
+}
+
+export const RecommendationsProvider = ({
+	children,
+}: RecommendationsProviderProps) => {
+	const [recommendations, setRecommendations] = useState<Subject[]>([]);
+
+	return (
+		<RecommendationsContext.Provider
+			value={[recommendations, setRecommendations]}
+		>
+			{children}
+		</RecommendationsContext.Provider>
+	);
+};
+
+export const useRecommendations = () => useContext(RecommendationsContext);
Index: frontend/src/context/SubjectsContext.tsx
===================================================================
--- frontend/src/context/SubjectsContext.tsx	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
+++ frontend/src/context/SubjectsContext.tsx	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
@@ -0,0 +1,29 @@
+import {
+	createContext,
+	Dispatch,
+	ReactNode,
+	SetStateAction,
+	useContext,
+	useState,
+} from "react";
+import { Subject } from "../components/types";
+
+type SubjectsContextType = [Subject[], Dispatch<SetStateAction<Subject[]>>];
+
+const SubjectsContext = createContext<SubjectsContextType>([[], () => {}]);
+
+interface SubjectsProviderProps {
+	children: ReactNode;
+}
+
+export const SubjectsProvider = ({ children }: SubjectsProviderProps) => {
+	const [subjects, setSubjects] = useState<Subject[]>([]);
+
+	return (
+		<SubjectsContext.Provider value={[subjects, setSubjects]}>
+			{children}
+		</SubjectsContext.Provider>
+	);
+};
+
+export const useSubjects = () => useContext(SubjectsContext);
Index: frontend/src/main.tsx
===================================================================
--- frontend/src/main.tsx	(revision 4d806e387b17135bf34819ba6fdd1a628b9a65bd)
+++ frontend/src/main.tsx	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
@@ -2,12 +2,18 @@
 import { createRoot } from "react-dom/client";
 import App from "./App.tsx";
+import { AuthProvider } from "./context/AuthProvider";
+import { RecommendationsProvider } from "./context/RecommendationsContext.tsx";
+import { SubjectsProvider } from "./context/SubjectsContext.tsx";
 import "./index.css";
-import { AuthProvider } from "./context/AuthProvider";
 
 createRoot(document.getElementById("root")!).render(
-  <StrictMode>
-    <AuthProvider>
-      <App />
-    </AuthProvider>
-  </StrictMode>
+	<StrictMode>
+		<AuthProvider>
+			<SubjectsProvider>
+				<RecommendationsProvider>
+					<App />
+				</RecommendationsProvider>
+			</SubjectsProvider>
+		</AuthProvider>
+	</StrictMode>
 );
Index: frontend/src/pages/Recommendations.tsx
===================================================================
--- frontend/src/pages/Recommendations.tsx	(revision 4d806e387b17135bf34819ba6fdd1a628b9a65bd)
+++ frontend/src/pages/Recommendations.tsx	(revision 3395d4ae63933a8d1623bfd8aeb1a055b9504f35)
@@ -4,4 +4,5 @@
 import { getSubjectPrerequisites } from "../components/SubjectCatalog/utils";
 import { Subject } from "../components/types";
+import { useRecommendations } from "../context/RecommendationsContext";
 import useAxiosAuth from "../hooks/useAxiosAuth";
 
@@ -10,5 +11,5 @@
 	const navigate = useNavigate();
 	const [subjectData, setSubjectData] = useState<Subject[]>([]);
-	const [recommendations, setRecommendations] = useState<Subject[]>([]);
+	const [recommendations, setRecommendations] = useRecommendations();
 	const [season_, setSeason] = useState<"winter" | "summer" | "all">("all");
 	const [isLoading, setIsLoading] = useState(false);
