Index: frontend/src/components/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm.tsx	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
+++ frontend/src/components/StudentForm.tsx	(revision 75422832ce529325deeb0b872daf51170700b71d)
@@ -1,3 +1,10 @@
 import { useEffect, useState } from "react";
+import {
+	EVALUATIONS,
+	EVALUATIONS_MAP,
+	PROGRAMS,
+	STUDY_EFFORT,
+	YEARS,
+} from "../constants/subjects";
 import { useAuth } from "../hooks/useAuth";
 import { Programs, StudentData, Subject } from "./types";
@@ -5,16 +12,13 @@
 interface StudentFormProps {
 	formData: StudentData | null;
-	subjects: Subject[];
+}
+
+interface DistinctSubjectData {
+	tags: string[];
 	professors: string[];
+	technologies: string[];
 }
 
-const STUDY_TRACKS = ["SIIS23", "IE23", "PIT23", "KI23", "KN23", "IMB23"];
-const STUDY_EFFORT = [1, 2, 3, 4, 5];
-const YEARS = [1, 2, 3, 4];
-const DOMAINS = ["Web Dev", "AI", "Data Science", "Немам"];
-const TECHNOLOGIES = ["React", "Django", "Flutter", "Немам"];
-const EVALUATIONS = ["Испити", "Проекти", "Семинарски", "Немам"];
-
-const StudentForm = ({ formData, subjects, professors }: StudentFormProps) => {
+const StudentForm = ({ formData }: StudentFormProps) => {
 	const { accessToken } = useAuth();
 	const [isSubmitted, setIsSubmitted] = useState(false);
@@ -34,4 +38,6 @@
 		formData?.preferred_domains || []
 	);
+	const [electiveSearchTerm, setElectiveSearchTerm] = useState("");
+	const [professorsSearchTerm, setProfessorSearchTerm] = useState("");
 	const [technologies, setTechnologies] = useState<string[]>(
 		formData?.preferred_technologies || []
@@ -52,4 +58,13 @@
 		isError: false,
 	});
+	const [showElective, setShowElective] = useState(false);
+	const [showProfessors, setShowProfessors] = useState(false);
+	const [subjects, setSubjects] = useState<Subject[]>([]);
+	const [distinctSubjectData, setDistinctSubjectData] =
+		useState<DistinctSubjectData>({
+			tags: [],
+			professors: [],
+			technologies: [],
+		});
 
 	// Update form when formData changes (e.g., after fetching user data)
@@ -68,4 +83,39 @@
 	}, [formData]);
 
+	useEffect(() => {
+		const fetchSubjects = async () => {
+			try {
+				const resSubjects = await fetch("http://localhost:8000/subjects");
+				if (resSubjects.ok) {
+					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));
+					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_,
+					}));
+				}
+			} catch (error) {
+				console.error("Error fetching subjects:", error);
+			}
+		};
+
+		fetchSubjects();
+	}, []);
 	const validateForm = () => {
 		const errors: { [key: string]: string } = {};
@@ -132,12 +182,14 @@
 			preferred_domains: domains,
 			preferred_technologies: technologies,
-			preferred_evaluation: evaluation,
+			preferred_evaluation: evaluation.map(
+				(ev) => EVALUATIONS_MAP[ev as keyof typeof EVALUATIONS_MAP]
+			),
 			favorite_professors: favoriteProfs,
 		};
-
 		try {
 			// For updating existing form data use PATCH instead of PUT for partial updates
 			const method = formData?.current_year ? "PATCH" : "POST";
 			const endpoint = "http://localhost:8000/auth/form/";
+			console.log(payload);
 			const res = await fetch(endpoint, {
 				method,
@@ -186,9 +238,20 @@
 		? subjects
 				.filter(
-					(subj) => subj.subject_info.elective_for.includes(studyTrack)
+					(subj) =>
+						subj.subject_info.elective_for.includes(studyTrack) &&
+						(electiveSearchTerm == "" ||
+							subj.name
+								.toLowerCase()
+								.includes(electiveSearchTerm.toLowerCase()))
 					// subj.subject_info.semester <= year * 2
 				)
 				.sort((a, b) => a.subject_info.semester - b.subject_info.semester)
 		: [];
+
+	const filteredProfessors = distinctSubjectData.professors.filter(
+		(prof) =>
+			professorsSearchTerm == "" ||
+			prof.toLowerCase().includes(professorsSearchTerm.toLowerCase())
+	);
 
 	return (
@@ -236,5 +299,5 @@
 					>
 						<option value="">Одбери смер</option>
-						{STUDY_TRACKS.map((track) => (
+						{PROGRAMS.map((track) => (
 							<option key={track} value={track}>
 								{track}
@@ -277,26 +340,44 @@
 					Положени задолжителни предмети
 				</h3>
-				<button
-					className="mb-2 px-3 py-2 border rounded-md transition-colors duration-200 bg-gray-200 border-gray-700"
-					disabled={filteredMandatorySubjects.length === 0}
-					type="button"
-					onClick={() => {
-						passedSubjects.some((subject) =>
-							filteredMandatorySubjects.includes(subject)
-						)
-							? setPassedSubjects((prev) =>
-									prev.filter(
-										(subject) => !filteredMandatorySubjects.includes(subject)
-									)
-							  )
-							: setPassedSubjects((prev) => [
-									...prev,
-									...filteredMandatorySubjects,
-							  ]);
-					}}
-				>
-					Одбери ги сите
-				</button>
-				{/* </div> */}
+				{studyTrack != "" && (
+					<div className="flex items-center mb-2">
+						<label className="inline-flex items-center p-1 rounded">
+							<input
+								type="checkbox"
+								className="form-checkbox h-5 w-5 accent-green-600"
+								disabled={filteredMandatorySubjects.length === 0}
+								checked={filteredMandatorySubjects.every((subject) =>
+									passedSubjects.some((passed) => passed.id === subject.id)
+								)}
+								onChange={() => {
+									const allSelected = filteredMandatorySubjects.every(
+										(subject) =>
+											passedSubjects.some((passed) => passed.id === subject.id)
+									);
+
+									if (allSelected) {
+										setPassedSubjects((prev) =>
+											prev.filter(
+												(subject) =>
+													!filteredMandatorySubjects.some(
+														(mandatorySubj) => mandatorySubj.id === subject.id
+													)
+											)
+										);
+									} else {
+										setPassedSubjects((prev) => {
+											const newSubjects = filteredMandatorySubjects.filter(
+												(subject) =>
+													!prev.some((passed) => passed.id === subject.id)
+											);
+											return [...prev, ...newSubjects];
+										});
+									}
+								}}
+							/>
+							<span className="ml-2 text-md text-gray-700">Одбери ги сите</span>
+						</label>
+					</div>
+				)}
 				{filteredMandatorySubjects.length > 0 ? (
 					<div className="flex flex-wrap gap-2">
@@ -313,6 +394,6 @@
                     ${
 											isSelected
-												? "bg-green-500 text-white border-green-600 shadow-md"
-												: "bg-white text-gray-800 border-gray-300 hover:bg-gray-100"
+												? "bg-green-500 border-green-600 text-green-50"
+												: "bg-white hover:bg-gray-50 border-gray-300"
 										}`}
 									aria-pressed={isSelected}
@@ -342,5 +423,5 @@
 						{!studyTrack
 							? "Одбери смер и година за да се прикажат предметите."
-							: "Нема задолжителни предмети за избраниот смер и година."}
+							: "Нема такви задолжителни предмети"}
 					</p>
 				)}
@@ -351,47 +432,67 @@
 				)}
 			</div>
-
 			<div>
-				<h3 className="text-lg font-medium text-gray-900 mb-2">
-					Положени изборни предмети
-				</h3>
+				<div className="flex items-center mb-2 gap-7">
+					<h3 className="text-lg font-medium text-gray-900">
+						Положени изборни предмети
+					</h3>
+					{studyTrack != "" && (
+						<input
+							onChange={(e) => setElectiveSearchTerm(e.target.value)}
+							value={electiveSearchTerm}
+							type="text"
+							className="w-60 px-3 py-2.5 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 text-gray-900 text-sm"
+							placeholder="Пребарај предмет"
+						/>
+					)}
+				</div>
 				{filteredElectiveSubjects.length > 0 ? (
 					<div className="flex flex-wrap gap-2">
-						{filteredElectiveSubjects.map((subject) => {
-							const isSelected = passedSubjects.some(
-								(s) => s.id === subject.id
-							);
-							return (
-								<button
-									type="button"
-									key={subject.id}
-									onClick={() => toggleSubject(subject)}
-									className={`flex items-center gap-2 px-3 py-2 border rounded-md transition-all duration-200 
-                    ${
-											isSelected
-												? "bg-green-500 text-white border-green-600 shadow-md"
-												: "bg-white text-gray-800 border-gray-300 hover:bg-gray-100"
-										}`}
-									aria-pressed={isSelected}
-								>
-									{isSelected && (
-										<svg
-											className="w-5 h-5"
-											fill="none"
-											stroke="currentColor"
-											viewBox="0 0 24 24"
-										>
-											<path
-												strokeLinecap="round"
-												strokeLinejoin="round"
-												strokeWidth="2"
-												d="M5 13l4 4L19 7"
-											></path>
-										</svg>
-									)}
-									<span>{subject.name}</span>
-								</button>
-							);
-						})}
+						{filteredElectiveSubjects
+							.slice(0, showElective ? undefined : 10)
+							.map((subject) => {
+								const isSelected = passedSubjects.some(
+									(s) => s.id === subject.id
+								);
+								return (
+									<button
+										type="button"
+										key={subject.id}
+										onClick={() => toggleSubject(subject)}
+										className={`flex items-center gap-2 px-3 py-2 border rounded-md transition-all duration-200 
+                    					${
+																isSelected
+																	? "bg-green-500 text-white border-green-600 shadow-md"
+																	: "bg-white text-gray-800 border-gray-300 hover:bg-gray-100"
+															}`}
+										aria-pressed={isSelected}
+									>
+										{isSelected && (
+											<svg
+												className="w-5 h-5"
+												fill="none"
+												stroke="currentColor"
+												viewBox="0 0 24 24"
+											>
+												<path
+													strokeLinecap="round"
+													strokeLinejoin="round"
+													strokeWidth="2"
+													d="M5 13l4 4L19 7"
+												></path>
+											</svg>
+										)}
+										<span>{subject.name}</span>
+									</button>
+								);
+							})}
+						{filteredElectiveSubjects.length > 10 && (
+							<button
+								onClick={() => setShowElective(!showElective)}
+								className="px-3 py-2 rounded-md transition-colors duration-200 bg-blue text-blue-500"
+							>
+								{showElective ? "Прикажи помалку" : "Прикажи повеќе"}
+							</button>
+						)}
 					</div>
 				) : (
@@ -399,5 +500,5 @@
 						{!studyTrack
 							? "Одбери смер и година за да се прикажат предметите"
-							: "Нема изборни предмети за избраниот смер и година"}
+							: "Нема такви изборни предмети"}
 					</p>
 				)}
@@ -408,16 +509,41 @@
 					Вложен труд при учење
 				</h3>
-				<select
-					value={studyEffort}
-					onChange={(e) => setStudyEffort(e.target.value)}
-					className="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500"
-				>
-					<option value="">Одбери колку труд вложуваш при учење</option>
+				<div className="flex flex-wrap gap-3">
 					{STUDY_EFFORT.map((effort) => (
-						<option key={effort} value={effort}>
-							{effort}
-						</option>
+						<label
+							key={effort}
+							className={`flex items-center px-3 py-2 rounded-md cursor-pointer transition-colors ${
+								studyEffort == effort && "font-bold"
+							}`}
+						>
+							<input
+								type="checkbox"
+								checked={studyEffort == effort}
+								onChange={() =>
+									setStudyEffort(studyEffort == effort ? "" : effort)
+								}
+								className="form-checkbox h-4 w-5 mr-2 accent-green-600"
+							/>
+							<span>{effort}</span>
+						</label>
 					))}
-				</select>
+					{/* tuka */}
+					{/* <div className="w-full mt-4 flex flex-col items-center">
+						<input
+							type="range"
+							min={1}
+							max={5}
+							step={1}
+							value={studyEffort || 1}
+							onChange={(e) => setStudyEffort(Number(e.target.value))}
+							className="w-64 accent-blue-600"
+						/>
+						<div className="flex justify-between w-64 text-xs mt-1 text-gray-500">
+							{STUDY_EFFORT.map((effort) => (
+								<span key={effort}>{effort}</span>
+							))}
+						</div>
+					</div> */}
+				</div>
 				{validationErrors.studyEffort && (
 					<p className="mt-1 text-sm text-red-600 font-bold">
@@ -432,5 +558,5 @@
 				</h3>
 				<div className="flex flex-wrap gap-2">
-					{DOMAINS.map((domain) => {
+					{distinctSubjectData.tags.map((domain) => {
 						const isSelected = domains.includes(domain);
 						const isNemamSelected = domains.includes("Немам");
@@ -476,5 +602,5 @@
 				</h3>
 				<div className="flex flex-wrap gap-2">
-					{TECHNOLOGIES.map((tech) => {
+					{distinctSubjectData.technologies.map((tech) => {
 						const isSelected = technologies.includes(tech);
 						const isNemamSelected = technologies.includes("Немам");
@@ -529,4 +655,5 @@
 								key={ev}
 								onClick={() => {
+									// todo: sredi ova
 									if (ev === "Немам") {
 										if (evaluation.includes("Немам")) {
@@ -562,24 +689,48 @@
 
 			<div>
-				<h3 className="text-lg font-medium text-gray-900 mb-2">
-					Омилени професори
-				</h3>
+				<div className="flex items-center mb-2 gap-7">
+					<h3 className="text-lg font-medium text-gray-900 mb-2">
+						Омилени професори
+					</h3>
+					{studyTrack != "" && (
+						<input
+							onChange={(e) => setProfessorSearchTerm(e.target.value)}
+							value={professorsSearchTerm}
+							type="text"
+							className="w-60 px-3 py-2.5 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 text-gray-900 text-sm"
+							placeholder="Пребарај професор"
+						/>
+					)}
+				</div>
 				<div className="flex flex-wrap gap-2">
-					{professors.map((prof) => (
+					{filteredProfessors
+						.slice(0, showProfessors ? undefined : 10)
+						.map((prof) => (
+							<button
+								key={prof}
+								type="button"
+								onClick={() =>
+									toggleSelection(prof, setFavoriteProfs, favoriteProfs)
+								}
+								className={`px-3 py-2 border rounded-md transition-colors ${
+									favoriteProfs.includes(prof)
+										? "bg-pink-100 border-pink-300 text-pink-800"
+										: "bg-white hover:bg-gray-50 border-gray-300"
+								}`}
+							>
+								{prof}
+							</button>
+						))}
+					{filteredProfessors.length == 0 && (
+						<p className="text-gray-500 italic">Нема таков професор</p>
+					)}
+					{filteredProfessors.length > 10 && (
 						<button
-							key={prof}
-							type="button"
-							onClick={() =>
-								toggleSelection(prof, setFavoriteProfs, favoriteProfs)
-							}
-							className={`px-3 py-2 border rounded-md transition-colors ${
-								favoriteProfs.includes(prof)
-									? "bg-pink-100 border-pink-300 text-pink-800"
-									: "bg-white hover:bg-gray-50 border-gray-300"
-							}`}
+							onClick={() => setShowProfessors(!showProfessors)}
+							className="px-3 py-2 rounded-md transition-colors duration-200 bg-blue text-blue-500"
 						>
-							{prof}
+							{showProfessors ? "Прикажи помалку" : "Прикажи повеќе"}
 						</button>
-					))}
+					)}
 				</div>
 			</div>
Index: frontend/src/components/SubjectCatalog/FilterSidebar.tsx
===================================================================
--- frontend/src/components/SubjectCatalog/FilterSidebar.tsx	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
+++ frontend/src/components/SubjectCatalog/FilterSidebar.tsx	(revision 75422832ce529325deeb0b872daf51170700b71d)
@@ -1,264 +1,304 @@
+import { useState } from "react";
 import { PROGRAMS } from "../../constants/subjects";
 import { Filters } from "../types";
 import { resetFilters } from "./utils";
 interface FilterSidebarProps {
-  setSearchTerm: (term: string) => void;
-  setProfessorSearchTerm: (term: string) => void;
-  setAssistantSearchTerm: (term: string) => void;
-  setFilters: (filters: (prev: Filters) => Filters) => void;
-  filters: Filters;
+	setSearchTerm: (term: string) => void;
+	setProfessorSearchTerm: (term: string) => void;
+	setAssistantSearchTerm: (term: string) => void;
+	setFilters: (filters: (prev: Filters) => Filters) => void;
+	filters: Filters;
+	tags: string[];
 }
 
 const FilterSidebar = ({
-  setSearchTerm,
-  setProfessorSearchTerm,
-  setAssistantSearchTerm,
-  setFilters,
-  filters,
+	setSearchTerm,
+	setProfessorSearchTerm,
+	setAssistantSearchTerm,
+	setFilters,
+	filters,
+	tags,
 }: FilterSidebarProps) => {
-  return (
-    <div className="">
-      <div className="flex justify-between items-center mb-4">
-        <h2 className="text-lg font-semibold">Филтри</h2>
-        <button
-          onClick={() =>
-            resetFilters(
-              setSearchTerm,
-              setProfessorSearchTerm,
-              setAssistantSearchTerm,
-              setFilters
-            )
-          }
-          className="text-sm text-gray-600 hover:text-gray-900"
-        >
-          Избриши
-        </button>
-      </div>
-      <div className="mb-4">
-        {/* filter by season*/}
-        <div className="space-y-1 mb-4">
-          <h3 className="font-medium mb-2">Семестар</h3>
-          <div className="grid grid-cols-2">
-            {["Летен", "Зимски"].map((season) => {
-              const seasonValue = season === "Летен" ? "S" : "W";
-              return (
-                <div key={season} className="flex items-center space-x-2">
-                  <input
-                    type="checkbox"
-                    name="season"
-                    id={seasonValue}
-                    onChange={() =>
-                      setFilters((prev) => ({
-                        ...prev,
-                        season: prev.season === seasonValue ? "" : seasonValue,
-                      }))
-                    }
-                    checked={filters.season === seasonValue}
-                    className="h-4 w-4 rounded border-gray-300 text-blue-600"
-                  />
-                  <label
-                    htmlFor={seasonValue}
-                    className="ml-2 text-sm text-gray-700"
-                  >
-                    {season}
-                  </label>
-                </div>
-              );
-            })}
-          </div>
-        </div>
-
-        {/* filter by semester*/}
-        <div className="space-y-1 mb-4">
-          {/* <h3 className="font-medium mb-2">Семестар</h3> */}
-          <div className="grid grid-cols-4 gap-2">
-            {Array.from(Array(8)).map((_, index) => {
-              const i = index + 1;
-              return (
-                <div key={i} className="flex items-center space-x-2">
-                  <input
-                    type="checkbox"
-                    name="season"
-                    id={`s${i}`}
-                    onChange={() =>
-                      setFilters((prev) => ({
-                        ...prev,
-                        semester: prev.semester.includes(i)
-                          ? prev.semester.filter((item) => item !== i)
-                          : [...prev.semester, i],
-                      }))
-                    }
-                    checked={filters.semester.includes(i)}
-                    className="h-4 w-4 rounded border-gray-300 text-blue-600"
-                  />
-                  <label htmlFor={`s${i}`} className="text-sm text-gray-700">
-                    {i}
-                  </label>
-                </div>
-              );
-            })}
-          </div>
-        </div>
-        {/* filter by level */}
-        <div className="space-y-1 mb-4">
-          <h3 className="font-medium mb-2">Ниво</h3>
-          <div className="grid grid-cols-3">
-            {Array.from(Array(3)).map((_, index) => {
-              const i = index + 1;
-              const level = `L${i}`;
-              return (
-                <div key={i} className="flex items-center space-x-2">
-                  <input
-                    type="checkbox"
-                    name="level"
-                    id={level}
-                    onChange={() =>
-                      setFilters((prev) => ({
-                        ...prev,
-                        level: prev.level.includes(i)
-                          ? prev.level.filter((item) => item !== i)
-                          : [...prev.level, i],
-                      }))
-                    }
-                    checked={filters.level.includes(i)}
-                    className="h-4 w-4 rounded border-gray-300 text-blue-600"
-                  />
-                  <label
-                    htmlFor={`s${level}`}
-                    className="text-sm text-gray-700"
-                  >
-                    {level}
-                  </label>
-                </div>
-              );
-            })}
-          </div>
-        </div>
-        {/* filter by activation*/}
-        <div className="space-y-1 mb-4">
-          <h3 className="font-medium mb-2">Активирани</h3>
-          <div className="grid grid-cols-2">
-            {["Активирани", "Неактивирани"].map((value) => {
-              const activeValue =
-                value === "Активирани" ? "activated" : "not_activated";
-              return (
-                <div key={activeValue} className="flex items-center space-x-2">
-                  <input
-                    type="checkbox"
-                    name="season"
-                    id={activeValue}
-                    onChange={() =>
-                      setFilters((prev) => ({
-                        ...prev,
-                        activated:
-                          prev.activated === activeValue ? "" : activeValue,
-                      }))
-                    }
-                    checked={filters.activated === activeValue}
-                    className="h-4 w-4 rounded border-gray-300 text-blue-600"
-                  />
-                  <label
-                    htmlFor={activeValue}
-                    className="ml-2 text-sm text-gray-700"
-                  >
-                    {value}
-                  </label>
-                </div>
-              );
-            })}
-          </div>
-        </div>
-        {/* filter by mandatoryFor */}
-        <div className="space-y-1 mb-4">
-          <h3 className="font-medium mb-2">Задолжителен за:</h3>
-          <div className="grid grid-cols-3 gap-2">
-            {PROGRAMS.map((program) => {
-              const programName = program.replace(/\d+$/, "");
-              return (
-                <div key={program} className="flex items-center space-x-2">
-                  <input
-                    type="checkbox"
-                    name="level"
-                    id={program}
-                    onChange={() =>
-                      setFilters((prev) => ({
-                        ...prev,
-                        mandatoryFor: prev.mandatoryFor.includes(program)
-                          ? prev.mandatoryFor.filter((item) => item !== program)
-                          : [...prev.mandatoryFor, program],
-                      }))
-                    }
-                    checked={filters.mandatoryFor.includes(program)}
-                    className="h-4 w-4 rounded border-gray-300 text-blue-600"
-                  />
-                  <label
-                    htmlFor={`s${program}`}
-                    className="text-sm text-gray-700"
-                  >
-                    {programName}
-                  </label>
-                </div>
-              );
-            })}
-          </div>
-        </div>
-        {/* filter by electiveFor */}
-        <div className="space-y-1 mb-6">
-          <h3 className="font-medium mb-2">Изборен за:</h3>
-          <div className="grid grid-cols-3 gap-2">
-            {PROGRAMS.map((program) => {
-              const programName = program.replace(/\d+$/, "");
-              return (
-                <div key={program} className="flex items-center space-x-2">
-                  <input
-                    type="checkbox"
-                    name="level"
-                    id={program}
-                    onChange={() =>
-                      setFilters((prev) => ({
-                        ...prev,
-                        electiveFor: prev.electiveFor.includes(program)
-                          ? prev.electiveFor.filter((item) => item !== program)
-                          : [...prev.electiveFor, program],
-                      }))
-                    }
-                    checked={filters.electiveFor.includes(program)}
-                    className="h-4 w-4 rounded border-gray-300 text-blue-600"
-                  />
-                  <label
-                    htmlFor={`s${program}`}
-                    className="text-sm text-gray-700"
-                  >
-                    {programName}
-                  </label>
-                </div>
-              );
-            })}
-          </div>
-        </div>
-        {/* filter by prereq */}
-        <div className="space-y-1 mb-4">
-          <div className="flex items-center space-x-2">
-            <input
-              type="checkbox"
-              name="prereq"
-              id="prereq"
-              onChange={() =>
-                setFilters((prev) => ({
-                  ...prev,
-                  hasPrerequisites: !prev.hasPrerequisites,
-                }))
-              }
-              checked={filters.hasPrerequisites}
-              className="h-4 w-4 rounded border-gray-300 text-blue-600"
-            />
-            <label htmlFor={"prereq"} className="text-sm text-gray-700">
-              Предметот нема предуслови
-            </label>
-          </div>
-        </div>
-      </div>
-    </div>
-  );
+	const [showTags, setShowTags] = useState(false);
+	return (
+		<div className="">
+			<div className="flex justify-between items-center mb-4">
+				<h2 className="text-lg font-semibold">Филтри</h2>
+				<button
+					onClick={() =>
+						resetFilters(
+							setSearchTerm,
+							setProfessorSearchTerm,
+							setAssistantSearchTerm,
+							setFilters
+						)
+					}
+					className="text-sm text-gray-600 hover:text-gray-900"
+				>
+					Избриши
+				</button>
+			</div>
+			<div className="mb-4">
+				{/* filter by season*/}
+				<div className="space-y-1 mb-4">
+					<h3 className="font-medium mb-2">Семестар</h3>
+					<div className="grid grid-cols-2">
+						{["Летен", "Зимски"].map((season) => {
+							const seasonValue = season === "Летен" ? "S" : "W";
+							return (
+								<div key={season} className="flex items-center space-x-2">
+									<input
+										type="checkbox"
+										name="season"
+										id={seasonValue}
+										onChange={() =>
+											setFilters((prev) => ({
+												...prev,
+												season: prev.season === seasonValue ? "" : seasonValue,
+											}))
+										}
+										checked={filters.season === seasonValue}
+										className="h-4 w-4 rounded border-gray-300 text-blue-600"
+									/>
+									<label
+										htmlFor={seasonValue}
+										className="ml-2 text-sm text-gray-700"
+									>
+										{season}
+									</label>
+								</div>
+							);
+						})}
+					</div>
+				</div>
+				{/* filter by semester*/}
+				<div className="space-y-1 mb-4">
+					{/* <h3 className="font-medium mb-2">Семестар</h3> */}
+					<div className="grid grid-cols-4 gap-2">
+						{Array.from(Array(8)).map((_, index) => {
+							const i = index + 1;
+							return (
+								<div key={i} className="flex items-center space-x-2">
+									<input
+										type="checkbox"
+										name="season"
+										id={`s${i}`}
+										onChange={() =>
+											setFilters((prev) => ({
+												...prev,
+												semester: prev.semester.includes(i)
+													? prev.semester.filter((item) => item !== i)
+													: [...prev.semester, i],
+											}))
+										}
+										checked={filters.semester.includes(i)}
+										className="h-4 w-4 rounded border-gray-300 text-blue-600"
+									/>
+									<label htmlFor={`s${i}`} className="text-sm text-gray-700">
+										{i}
+									</label>
+								</div>
+							);
+						})}
+					</div>
+				</div>
+				{/* filter by level */}
+				<div className="space-y-1 mb-4">
+					<h3 className="font-medium mb-2">Ниво</h3>
+					<div className="grid grid-cols-3">
+						{Array.from(Array(3)).map((_, index) => {
+							const i = index + 1;
+							const level = `L${i}`;
+							return (
+								<div key={i} className="flex items-center space-x-2">
+									<input
+										type="checkbox"
+										name="level"
+										id={level}
+										onChange={() =>
+											setFilters((prev) => ({
+												...prev,
+												level: prev.level.includes(i)
+													? prev.level.filter((item) => item !== i)
+													: [...prev.level, i],
+											}))
+										}
+										checked={filters.level.includes(i)}
+										className="h-4 w-4 rounded border-gray-300 text-blue-600"
+									/>
+									<label
+										htmlFor={`s${level}`}
+										className="text-sm text-gray-700"
+									>
+										{level}
+									</label>
+								</div>
+							);
+						})}
+					</div>
+				</div>
+				{/* filter by activation*/}
+				<div className="space-y-1 mb-4">
+					<h3 className="font-medium mb-2">Активирани</h3>
+					<div className="grid grid-cols-2">
+						{["Активирани", "Неактивирани"].map((value) => {
+							const activeValue =
+								value === "Активирани" ? "activated" : "not_activated";
+							return (
+								<div key={activeValue} className="flex items-center space-x-2">
+									<input
+										type="checkbox"
+										name="season"
+										id={activeValue}
+										onChange={() =>
+											setFilters((prev) => ({
+												...prev,
+												activated:
+													prev.activated === activeValue ? "" : activeValue,
+											}))
+										}
+										checked={filters.activated === activeValue}
+										className="h-4 w-4 rounded border-gray-300 text-blue-600"
+									/>
+									<label
+										htmlFor={activeValue}
+										className="ml-2 text-sm text-gray-700"
+									>
+										{value}
+									</label>
+								</div>
+							);
+						})}
+					</div>
+				</div>
+				{/* filter by mandatoryFor */}
+				<div className="space-y-1 mb-4">
+					<h3 className="font-medium mb-2">Задолжителен за:</h3>
+					<div className="grid grid-cols-3 gap-2">
+						{PROGRAMS.map((program) => {
+							const programName = program.replace(/\d+$/, "");
+							return (
+								<div key={program} className="flex items-center space-x-2">
+									<input
+										type="checkbox"
+										name="level"
+										id={program}
+										onChange={() =>
+											setFilters((prev) => ({
+												...prev,
+												mandatoryFor: prev.mandatoryFor.includes(program)
+													? prev.mandatoryFor.filter((item) => item !== program)
+													: [...prev.mandatoryFor, program],
+											}))
+										}
+										checked={filters.mandatoryFor.includes(program)}
+										className="h-4 w-4 rounded border-gray-300 text-blue-600"
+									/>
+									<label
+										htmlFor={`s${program}`}
+										className="text-sm text-gray-700"
+									>
+										{programName}
+									</label>
+								</div>
+							);
+						})}
+					</div>
+				</div>
+				{/* filter by electiveFor */}
+				<div className="space-y-1 mb-6">
+					<h3 className="font-medium mb-2">Изборен за:</h3>
+					<div className="grid grid-cols-3 gap-2">
+						{PROGRAMS.map((program) => {
+							const programName = program.replace(/\d+$/, "");
+							return (
+								<div key={program} className="flex items-center space-x-2">
+									<input
+										type="checkbox"
+										name="level"
+										id={program}
+										onChange={() =>
+											setFilters((prev) => ({
+												...prev,
+												electiveFor: prev.electiveFor.includes(program)
+													? prev.electiveFor.filter((item) => item !== program)
+													: [...prev.electiveFor, program],
+											}))
+										}
+										checked={filters.electiveFor.includes(program)}
+										className="h-4 w-4 rounded border-gray-300 text-blue-600"
+									/>
+									<label
+										htmlFor={`s${program}`}
+										className="text-sm text-gray-700"
+									>
+										{programName}
+									</label>
+								</div>
+							);
+						})}
+					</div>
+				</div>
+				{/* filter by prereq */}
+				<div className="space-y-1 mb-4">
+					<div className="flex items-center space-x-2">
+						<input
+							type="checkbox"
+							name="prereq"
+							id="prereq"
+							onChange={() =>
+								setFilters((prev) => ({
+									...prev,
+									hasPrerequisites: !prev.hasPrerequisites,
+								}))
+							}
+							checked={filters.hasPrerequisites}
+							className="h-4 w-4 rounded border-gray-300 text-blue-600"
+						/>
+						<label htmlFor={"prereq"} className="text-sm text-gray-700">
+							Предметот нема предуслови
+						</label>
+					</div>
+				</div>
+				<div className="space-y-1 mb-4">
+					<h3 className="font-medium mb-2">Тагови:</h3>
+					<div className="grid grid-cols-1 gap-2">
+						{tags.slice(0, showTags ? undefined : 4).map((tag) => {
+							return (
+								<div key={tag} className="flex items-center space-x-2">
+									<input
+										type="checkbox"
+										name="level"
+										id={tag}
+										onChange={() =>
+											setFilters((prev) => ({
+												...prev,
+												tags: prev.tags.includes(tag)
+													? prev.tags.filter((item) => item !== tag)
+													: [...prev.tags, tag],
+											}))
+										}
+										checked={filters.tags.includes(tag)}
+										className="h-4 w-4 rounded border-gray-300 text-blue-600"
+									/>
+									<label htmlFor={`${tag}`} className="text-sm text-gray-700">
+										{tag}
+									</label>
+								</div>
+							);
+						})}
+						{tags.length > 4 && (
+							<button
+								onClick={() => setShowTags(!showTags)}
+								className="text-sm text-blue-600 hover:text-blue-800"
+							>
+								{showTags ? "Прикажи помалку" : "Прикажи повеќе"}
+							</button>
+						)}
+					</div>
+				</div>
+			</div>
+		</div>
+	);
 };
 
Index: frontend/src/components/SubjectCatalog/SubjectCatalog.tsx
===================================================================
--- frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
+++ frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision 75422832ce529325deeb0b872daf51170700b71d)
@@ -17,4 +17,5 @@
 	const [randomStaff, setRandomStaff] = useState(["", ""]);
 	const [showModal, setShowModal] = useState(false);
+	const [tags, setTags] = useState<string[]>([]);
 	const [filters, setFilters] = useState<Filters>({
 		season: "",
@@ -26,7 +27,7 @@
 		professors: [],
 		assistants: [],
+		tags: [],
 		hasPrerequisites: false,
 	});
-
 	const filteredSubjects: Subject[] = filterSubjects({
 		subjectData,
@@ -50,4 +51,16 @@
 	useEffect(() => {
 		getRandomStaff(subjectData, setRandomStaff);
+		setTags(
+			Array.from(
+				new Set(filteredSubjects.flatMap((sub) => sub.subject_info.tags))
+			)
+		);
+		console.log(
+			Array.from(
+				new Set(
+					filteredSubjects.flatMap((sub) => sub.subject_info.technologies)
+				)
+			)
+		);
 	}, [subjectData]);
 
@@ -98,4 +111,5 @@
 						setFilters={setFilters}
 						filters={filters}
+						tags={tags}
 					/>
 					<StaffSearch
Index: frontend/src/components/SubjectCatalog/utils.ts
===================================================================
--- frontend/src/components/SubjectCatalog/utils.ts	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
+++ frontend/src/components/SubjectCatalog/utils.ts	(revision 75422832ce529325deeb0b872daf51170700b71d)
@@ -2,137 +2,144 @@
 
 interface filteredSubjectsParams {
-  subjectData: Subject[];
-  searchTerm: string;
-  professorSearchTerm: string;
-  assistantSearchTerm: string;
-  filters: {
-    season: "W" | "S" | "";
-    semester: number[];
-    level: number[];
-    activated: "activated" | "not_activated" | "";
-    mandatoryFor: Programs[];
-    electiveFor: Programs[];
-    professors: string[];
-    assistants: string[];
-    hasPrerequisites: boolean;
-  };
+	subjectData: Subject[];
+	searchTerm: string;
+	professorSearchTerm: string;
+	assistantSearchTerm: string;
+	filters: {
+		season: "W" | "S" | "";
+		semester: number[];
+		level: number[];
+		activated: "activated" | "not_activated" | "";
+		mandatoryFor: Programs[];
+		electiveFor: Programs[];
+		professors: string[];
+		assistants: string[];
+		hasPrerequisites: boolean;
+		tags: string[];
+	};
 }
 
 export const filterSubjects = ({
-  subjectData,
-  searchTerm,
-  professorSearchTerm,
-  assistantSearchTerm,
-  filters,
+	subjectData,
+	searchTerm,
+	professorSearchTerm,
+	assistantSearchTerm,
+	filters,
 }: filteredSubjectsParams) =>
-  subjectData.filter((subject) => {
-    const searchMatches =
-      subject.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
-      subject.code.toLowerCase().includes(searchTerm.toLowerCase()) ||
-      subject.abstract?.toLowerCase().includes(searchTerm.toLowerCase());
+	subjectData.filter((subject) => {
+		const searchMatches =
+			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(professorSearchTerm.toLowerCase())
-      );
+		const professorsMatches =
+			professorSearchTerm == "" ||
+			subject.subject_info.professors.some((item) =>
+				item.toLowerCase().includes(professorSearchTerm.toLowerCase())
+			);
 
-    const assistantsMatches =
-      assistantSearchTerm == "" ||
-      subject.subject_info.assistants.some((item) =>
-        item.toLowerCase().includes(assistantSearchTerm.toLowerCase())
-      );
+		const assistantsMatches =
+			assistantSearchTerm == "" ||
+			subject.subject_info.assistants.some((item) =>
+				item.toLowerCase().includes(assistantSearchTerm.toLowerCase())
+			);
 
-    const prerequisitesMatch =
-      !filters.hasPrerequisites || subject.subject_info.prerequisite == null;
+		const prerequisitesMatch =
+			!filters.hasPrerequisites || subject.subject_info.prerequisite == null;
 
-    return (
-      searchMatches &&
-      seasonMatches &&
-      semesterMatches &&
-      levelMatches &&
-      activatedMatches &&
-      mandatoryMatches &&
-      electiveMatches &&
-      professorsMatches &&
-      assistantsMatches &&
-      prerequisitesMatch
-    );
-  });
+		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,
-  }));
+	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]);
 };
Index: frontend/src/components/types.ts
===================================================================
--- frontend/src/components/types.ts	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
+++ frontend/src/components/types.ts	(revision 75422832ce529325deeb0b872daf51170700b71d)
@@ -15,5 +15,5 @@
 	current_year: number;
 	passed_subjects: Subject[];
-	study_effort: string;
+	study_effort: number;
 	preferred_domains: string[];
 	preferred_technologies: string[];
@@ -56,4 +56,5 @@
 	assistants: string[];
 	hasPrerequisites: boolean;
+	tags: string[];
 };
 
Index: frontend/src/constants/subjects.ts
===================================================================
--- frontend/src/constants/subjects.ts	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
+++ frontend/src/constants/subjects.ts	(revision 75422832ce529325deeb0b872daf51170700b71d)
@@ -7,2 +7,13 @@
 	"KN23",
 ] as const;
+
+export const STUDY_EFFORT = [1, 2, 3, 4, 5] as const;
+export const YEARS = [1, 2, 3, 4] as const;
+export const EVALUATIONS = ["Теорија", "Практично", "Код", "Проект"];
+
+export const EVALUATIONS_MAP = {
+	Теорија: "Theory",
+	Практично: "Practical",
+	Код: "Code",
+	Проект: "Project",
+};
Index: frontend/src/pages/Account.tsx
===================================================================
--- frontend/src/pages/Account.tsx	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
+++ frontend/src/pages/Account.tsx	(revision 75422832ce529325deeb0b872daf51170700b71d)
@@ -1,76 +1,55 @@
 import { useEffect, useState } from "react";
+import { useNavigate } from "react-router-dom";
+import axiosInstance from "../api/axiosInstance";
+import StudentForm from "../components/StudentForm";
+import { StudentData } from "../components/types";
 import { useAuth } from "../hooks/useAuth";
-import StudentForm from "../components/StudentForm";
-import { Subject } from "../components/types";
-import { StudentData } from "../components/types";
-import axiosInstance from "../api/axiosInstance";
-import { useNavigate } from "react-router-dom";
 
 const Account = () => {
-  const navigate = useNavigate();
-  const { accessToken, refreshAccessToken } = useAuth();
-  const [tokenChecked, setTokenChecked] = useState(false);
-  const [formData, setFormData] = useState<StudentData | null>(null);
-  const [subjects, setSubjects] = useState<Subject[]>([]);
-  const [professors, setProfessors] = useState<string[]>([]);
+	const navigate = useNavigate();
+	const { accessToken, refreshAccessToken } = useAuth();
+	const [tokenChecked, setTokenChecked] = useState(false);
+	const [formData, setFormData] = useState<StudentData | null>(null);
 
-  useEffect(() => {
-    const checkToken = async () => {
-      let accessToken = localStorage.getItem("access_token");
-  
-      if (!accessToken) {
-        accessToken = await refreshAccessToken();
-        if (accessToken) {
-          localStorage.setItem("access_token", accessToken);
-        } else {
-          navigate("/login");
-          return;
-        }
-      }
-      setTokenChecked(true); 
-    };
-    checkToken();
-  }, [refreshAccessToken, navigate]);
+	useEffect(() => {
+		const checkToken = async () => {
+			let accessToken = localStorage.getItem("access_token");
 
-  useEffect(() => {
-    const fetchData = async () => {
-      if (!accessToken) {
-        return;
-      }
-      try {
-        const resForm = await axiosInstance.get("/auth/form/");
-        setFormData(resForm.data);
-        const resSubjects = await fetch("http://localhost:8000/subjects");
-        if (resSubjects.ok) {
-          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");
+			if (!accessToken) {
+				accessToken = await refreshAccessToken();
+				if (accessToken) {
+					localStorage.setItem("access_token", accessToken);
+				} else {
+					navigate("/login");
+					return;
+				}
+			}
+			setTokenChecked(true);
+		};
+		checkToken();
+	}, [refreshAccessToken, navigate]);
 
-          const uniqueProfessors = Array.from(new Set(allProfessors));
-          const filteredProfessors = uniqueProfessors.filter(
-            (prof) => prof.trim().toLowerCase() !== "сите професори"
-          );
-          setProfessors(filteredProfessors);
-        }
-      } catch (error) {
-        console.error("Error fetching data.", error);
-      }
-    };
-    if (tokenChecked) {
-      fetchData();
-    }
-  }, [tokenChecked, accessToken]);
+	useEffect(() => {
+		const fetchData = async () => {
+			if (!accessToken) {
+				return;
+			}
+			try {
+				const resForm = await axiosInstance.get("/auth/form/");
+				setFormData(resForm.data);
+			} catch (error) {
+				console.error("Error fetching data.", error);
+			}
+		};
+		if (tokenChecked) {
+			fetchData();
+		}
+	}, [tokenChecked, accessToken]);
 
-  return (
-    <div className="p-4">
-      <StudentForm
-        formData={formData}
-        subjects={subjects}
-        professors={professors}
-      />
-    </div>
-  );
+	return (
+		<div className="p-4">
+			<StudentForm formData={formData} />
+		</div>
+	);
 };
 
