Index: backend/subjects/serializers.py
===================================================================
--- backend/subjects/serializers.py	(revision 2b670ade00e5473dbdd55f3323fb9b0ba6461eef)
+++ backend/subjects/serializers.py	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
@@ -17,5 +17,9 @@
             'elective_for',
             'professors',
-            'assistants'
+            'assistants',
+            'tags',
+            'technologies',
+            'evaluation',
+            'is_easy'
         ]
 class SubjectSerializer(serializers.ModelSerializer):
Index: backend/subjects/views.py
===================================================================
--- backend/subjects/views.py	(revision 2b670ade00e5473dbdd55f3323fb9b0ba6461eef)
+++ backend/subjects/views.py	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
@@ -8,5 +8,4 @@
 from .models import Subject_Info, Subject
 
-# Create your views here.
 def index(request):
     return HttpResponse("ok")
Index: frontend/src/components/SubjectCatalog/SubjectCatalog.tsx
===================================================================
--- frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision 2b670ade00e5473dbdd55f3323fb9b0ba6461eef)
+++ frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
@@ -1,3 +1,4 @@
 import { useEffect, useState } from "react";
+import { Filters, Subject } from "../types";
 import FilterSidebar from "./FilterSidebar";
 import SkeletonCard from "./SkeletonCard";
@@ -5,187 +6,179 @@
 import SubjectList from "./SubjectList";
 import SubjectModal from "./SubjectModal";
-import { Filters, Subject } from "../types";
 import { filterSubjects, getRandomStaff, resetFilters } from "./utils";
 const SubjectCatalog = () => {
-  const [visibleCourses, setVisibleCourses] = useState<number>(10);
-  const [searchTerm, setSearchTerm] = useState<string>("");
-  const [professorSearchTerm, setProfessorSearchTerm] = useState<string>("");
-  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(["", ""]);
-  const [showModal, setShowModal] = useState(false);
-  const [filters, setFilters] = useState<Filters>({
-    season: "",
-    semester: [],
-    level: [],
-    activated: "",
-    mandatoryFor: [],
-    electiveFor: [],
-    professors: [],
-    assistants: [],
-    hasPrerequisites: false,
-  });
+	const [visibleCourses, setVisibleCourses] = useState<number>(10);
+	const [searchTerm, setSearchTerm] = useState<string>("");
+	const [professorSearchTerm, setProfessorSearchTerm] = useState<string>("");
+	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(["", ""]);
+	const [showModal, setShowModal] = useState(false);
+	const [filters, setFilters] = useState<Filters>({
+		season: "",
+		semester: [],
+		level: [],
+		activated: "",
+		mandatoryFor: [],
+		electiveFor: [],
+		professors: [],
+		assistants: [],
+		hasPrerequisites: false,
+	});
 
-  const filteredSubjects: Subject[] = filterSubjects({
-    subjectData,
-    searchTerm,
-    professorSearchTerm,
-    assistantSearchTerm,
-    filters,
-  });
+	const filteredSubjects: Subject[] = filterSubjects({
+		subjectData,
+		searchTerm,
+		professorSearchTerm,
+		assistantSearchTerm,
+		filters,
+	});
 
-  useEffect(() => {
-    const fetchData = async () => {
-      const response = await fetch("http://localhost:8000/subjects");
-      const data = await response.json();
-      console.log(data);
-      setSubjectData(data);
-      setIsLoaded(true);
-    };
-    fetchData();
-  }, []);
+	useEffect(() => {
+		const fetchData = async () => {
+			const response = await fetch("http://localhost:8000/subjects");
+			const data = await response.json();
+			console.log(data);
+			setSubjectData(data);
+			setIsLoaded(true);
+		};
+		fetchData();
+	}, []);
 
-  useEffect(() => {
-    getRandomStaff(subjectData, setRandomStaff);
-  }, [subjectData]);
+	useEffect(() => {
+		getRandomStaff(subjectData, setRandomStaff);
+	}, [subjectData]);
 
-  const loadMore = () => {
-    setVisibleCourses((prev) => prev + 10);
-  };
+	const loadMore = () => {
+		setVisibleCourses((prev) => prev + 10);
+	};
 
-  const openSubjectDetails = (subject: Subject) => {
-    setSelectedSubject(
-      subjectData.find((item) => item.id == subject.id) ?? null
-    );
-    setShowModal(true);
-  };
+	const openSubjectDetails = (subject: Subject) => {
+		setSelectedSubject(
+			subjectData.find((item) => item.id == subject.id) ?? null
+		);
+		setShowModal(true);
+	};
 
-  const closeModal = () => {
-    setShowModal(false);
-  };
+	const closeModal = () => {
+		setShowModal(false);
+	};
 
-  const getSubjectPrerequisites = (): "Нема предуслов" | number | string[] => {
-    const prerequisite = selectedSubject?.subject_info?.prerequisite;
-  
-    if (!prerequisite) return "Нема предуслов";
-  
-    if ("subjects" in prerequisite && Array.isArray(prerequisite.subjects)) {
-      const names = prerequisite.subjects.map(
-        (item) =>
-          subjectData.find((subject) => subject.id === item)?.name || "/"
-      );
-      return names.length > 0 ? names : "Нема предуслов";
-    }
-  
-    if ("credits" in prerequisite && typeof prerequisite.credits === "number") {
-      return prerequisite.credits;
-    }
-  
-    return "Нема предуслов";
-  };
-  
+	const getSubjectPrerequisites = (): "Нема предуслов" | number | string[] => {
+		const prerequisite = selectedSubject?.subject_info?.prerequisite;
 
-  return (
-    <div className="mx-auto p-4 bg-white min-h-screen">
-      <h1 className="text-3xl font-bold mb-6">Преглед на сите предмети</h1>
-      <div className="flex flex-col md:flex-row gap-6">
-        <div className="w-full md:w-64 bg-gray-50 p-4 rounded-lg">
-          <FilterSidebar
-            setSearchTerm={setSearchTerm}
-            setProfessorSearchTerm={setProfessorSearchTerm}
-            setAssistantSearchTerm={setAssistantSearchTerm}
-            setFilters={setFilters}
-            filters={filters}
-          />
-          <StaffSearch
-            randomStaff={randomStaff}
-            professorSearchTerm={professorSearchTerm}
-            assistantSearchTerm={assistantSearchTerm}
-            setProfessorSearchTerm={setProfessorSearchTerm}
-            setAssistantSearchTerm={setAssistantSearchTerm}
-          />
-        </div>
-        {/* Main content */}
-        <div className="flex-1">
-          {/* Search bar */}
-          <div className="mb-6 relative">
-            <input
-              type="text"
-              placeholder="Пребарувај предмети по име, код, опис"
-              value={searchTerm}
-              onChange={(e) => setSearchTerm(e.target.value)}
-              className="w-full p-3 pl-4 pr-12 border border-gray-300 rounded-lg 
+		if (!prerequisite) return "Нема предуслов";
+
+		if ("subjects" in prerequisite && Array.isArray(prerequisite.subjects)) {
+			const names = prerequisite.subjects.map(
+				(item) =>
+					subjectData.find((subject) => subject.id === item)?.name || "/"
+			);
+			return names.length > 0 ? names : "Нема предуслов";
+		}
+
+		if ("credits" in prerequisite && typeof prerequisite.credits === "number") {
+			return prerequisite.credits;
+		}
+
+		return "Нема предуслов";
+	};
+
+	return (
+		<div className="mx-auto p-4 bg-white min-h-screen">
+			<h1 className="text-3xl font-bold mb-6">Преглед на сите предмети</h1>
+			<div className="flex flex-col md:flex-row gap-6">
+				<div className="w-full md:w-64 bg-gray-50 p-4 rounded-lg">
+					<FilterSidebar
+						setSearchTerm={setSearchTerm}
+						setProfessorSearchTerm={setProfessorSearchTerm}
+						setAssistantSearchTerm={setAssistantSearchTerm}
+						setFilters={setFilters}
+						filters={filters}
+					/>
+					<StaffSearch
+						randomStaff={randomStaff}
+						professorSearchTerm={professorSearchTerm}
+						assistantSearchTerm={assistantSearchTerm}
+						setProfessorSearchTerm={setProfessorSearchTerm}
+						setAssistantSearchTerm={setAssistantSearchTerm}
+					/>
+				</div>
+				{/* Main content */}
+				<div className="flex-1">
+					{/* Search bar */}
+					<div className="mb-6 relative">
+						<input
+							type="text"
+							placeholder="Пребарувај предмети по име, код, опис"
+							value={searchTerm}
+							onChange={(e) => setSearchTerm(e.target.value)}
+							className="w-full p-3 pl-4 pr-12 border border-gray-300 rounded-lg 
 							focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
-            />
-            {/* <button
-							className="absolute right-2 top-1/2 transform -translate-y-1/2
-						 bg-gray-800 text-white px-4 py-1 rounded-lg"
-						>
-							Избриши
-						</button> */}
-          </div>
+						/>
+					</div>
 
-          {/* Course grid */}
+					{/* Course grid */}
 
-          {!isLoaded ? (
-            <div className="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-6">
-              {[...Array(9)].map((_, index) => (
-                <SkeletonCard key={index} />
-              ))}
-            </div>
-          ) : (
-            <SubjectList
-              filteredSubjects={filteredSubjects}
-              visibleCourses={visibleCourses}
-              openSubjectDetails={openSubjectDetails}
-            />
-          )}
+					{!isLoaded ? (
+						<div className="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-6">
+							{[...Array(9)].map((_, index) => (
+								<SkeletonCard key={index} />
+							))}
+						</div>
+					) : (
+						<SubjectList
+							filteredSubjects={filteredSubjects}
+							visibleCourses={visibleCourses}
+							openSubjectDetails={openSubjectDetails}
+						/>
+					)}
 
-          {/* Load more button */}
-          {isLoaded && filteredSubjects.length > visibleCourses && (
-            <div className="mt-5 text-center">
-              <button
-                onClick={loadMore}
-                className="bg-blue-600 hover:bg-blue-700 text-white px-6 py-2 rounded-lg font-medium transition-colors duration-200"
-              >
-                Погледни повеќе
-              </button>
-            </div>
-          )}
+					{/* Load more button */}
+					{isLoaded && filteredSubjects.length > visibleCourses && (
+						<div className="mt-5 text-center">
+							<button
+								onClick={loadMore}
+								className="bg-blue-600 hover:bg-blue-700 text-white px-6 py-2 rounded-lg font-medium transition-colors duration-200"
+							>
+								Погледни повеќе
+							</button>
+						</div>
+					)}
 
-          {/* No results message */}
-          {isLoaded && filteredSubjects.length === 0 && (
-            <div className="text-center py-12">
-              <p className="text-gray-500 text-lg">
-                Не постојат такви предмети
-              </p>
-              <button
-                onClick={() =>
-                  resetFilters(
-                    setSearchTerm,
-                    setProfessorSearchTerm,
-                    setAssistantSearchTerm,
-                    setFilters
-                  )
-                }
-                className="mt-2 text-blue-600 hover:text-blue-800"
-              >
-                Ресетирај филтри
-              </button>
-            </div>
-          )}
-        </div>
-      </div>
-      {showModal && selectedSubject && (
-        <SubjectModal
-          selectedSubject={selectedSubject}
-          closeModal={closeModal}
-          subjectPrerequisites={getSubjectPrerequisites()}
-        />
-      )}
-    </div>
-  );
+					{/* No results message */}
+					{isLoaded && filteredSubjects.length === 0 && (
+						<div className="text-center py-12">
+							<p className="text-gray-500 text-lg">
+								Не постојат такви предмети
+							</p>
+							<button
+								onClick={() =>
+									resetFilters(
+										setSearchTerm,
+										setProfessorSearchTerm,
+										setAssistantSearchTerm,
+										setFilters
+									)
+								}
+								className="mt-2 text-blue-600 hover:text-blue-800"
+							>
+								Ресетирај филтри
+							</button>
+						</div>
+					)}
+				</div>
+			</div>
+			{showModal && selectedSubject && (
+				<SubjectModal
+					selectedSubject={selectedSubject}
+					closeModal={closeModal}
+					subjectPrerequisites={getSubjectPrerequisites()}
+				/>
+			)}
+		</div>
+	);
 };
 
Index: frontend/src/components/SubjectCatalog/SubjectList.tsx
===================================================================
--- frontend/src/components/SubjectCatalog/SubjectList.tsx	(revision 2b670ade00e5473dbdd55f3323fb9b0ba6461eef)
+++ frontend/src/components/SubjectCatalog/SubjectList.tsx	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
@@ -2,51 +2,49 @@
 
 interface SubjectListProps {
-  filteredSubjects: Subject[];
-  visibleCourses: number;
-  openSubjectDetails: (subject: Subject) => void;
+	filteredSubjects: Subject[];
+	visibleCourses: number;
+	openSubjectDetails: (subject: Subject) => void;
 }
 
 const SubjectList = ({
-  filteredSubjects,
-  visibleCourses,
-  openSubjectDetails,
+	filteredSubjects,
+	visibleCourses,
+	openSubjectDetails,
 }: SubjectListProps) => {
-  return (
-    <div className="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-6">
-      {filteredSubjects.slice(0, visibleCourses).map((subject) => (
-        <div
-          key={subject.id}
-          className="border border-gray-200 rounded-lg overflow-hidden shadow-sm 
+	return (
+		<div className="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-6">
+			{filteredSubjects.slice(0, visibleCourses).map((subject) => (
+				<div
+					key={subject.id}
+					className="border border-gray-200 rounded-lg overflow-hidden shadow-sm 
                                     hover:shadow-md transition-shadow duration-200"
-        >
-          <div className="p-4 min-h-full flex flex-col gap-1">
-            <div className="flex justify-between items-start mb-2">
-              <div>
-                <h3 className="text-lg font-semibold">{subject.name}</h3>
-                <p className="text-gray-600">{subject.code}</p>
-              </div>
-            </div>
+				>
+					<div className="p-4 min-h-full flex flex-col gap-1">
+						<div className="flex justify-between items-start mb-2">
+							<div>
+								<h3 className="text-lg font-semibold">{subject.name}</h3>
+								<p className="text-gray-600">{subject.code}</p>
+							</div>
+						</div>
 
-            {/* <p className="text-gray-700 text-sm mb-4 line-clamp-2">
+						{/* <p className="text-gray-700 text-sm mb-4 line-clamp-2">
 							{subject.abstract}
 						</p> */}
 
-            <div className="flex flex-wrap gap-2 mb-4">
-              {/* these tags are for listing the domains a subject covers, ex. backend, AI ...*/}
-              {["Web Development", "Machine Learning", "Data Science"].map(
-                (tag) => (
-                  <span
-                    key={tag}
-                    className="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded"
-                  >
-                    {tag}
-                  </span>
-                )
-              )}
-            </div>
+						<div className="flex flex-wrap gap-2 mb-4">
+							{/* these tags are for listing the domains a subject covers, ex. backend, AI ...*/}
+							{subject.subject_info.tags.map((tag) => (
+								<span
+									key={tag}
+									className="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded"
+								>
+									{tag}
+								</span>
+							))}
+						</div>
 
-            <div className="flex justify-end mt-auto">
-              {/* these tags could be used as certain flags for some subjects, like most picked subject, best match etc. */}
-              {/* <div className="flex gap-3">
+						<div className="flex justify-end mt-auto">
+							{/* these tags could be used as certain flags for some subjects, like most picked subject, best match etc. */}
+							{/* <div className="flex gap-3">
 								<div className="bg-red-500 px-1 py-1 rounded-full text-sm font-medium">
 									TAG1
@@ -56,17 +54,17 @@
 								</div>
 							</div> */}
-              <button
-                onClick={() => openSubjectDetails(subject)}
-                className="flex items-center text-sm text-gray-700 hover:text-gray-900"
-              >
-                <img src="src/assets/eye.svg" className="w-4 h-4 mr-1" />
-                Погледни детали
-              </button>
-            </div>
-          </div>
-        </div>
-      ))}
-    </div>
-  );
+							<button
+								onClick={() => openSubjectDetails(subject)}
+								className="flex items-center text-sm text-gray-700 hover:text-gray-900"
+							>
+								<img src="src/assets/eye.svg" className="w-4 h-4 mr-1" />
+								Погледни детали
+							</button>
+						</div>
+					</div>
+				</div>
+			))}
+		</div>
+	);
 };
 
Index: frontend/src/components/types.ts
===================================================================
--- frontend/src/components/types.ts	(revision 2b670ade00e5473dbdd55f3323fb9b0ba6461eef)
+++ frontend/src/components/types.ts	(revision 2b85a2905c1365805f81fc749189fcb181f6665c)
@@ -15,12 +15,15 @@
 	current_year: number;
 	passed_subjects: Subject[];
-  	study_effort: string,
-  	preferred_domains: string[],
-  	preferred_technologies: string[],
-  	preferred_evaluation: string[],
-  	favorite_professors: string[]
+	study_effort: string;
+	preferred_domains: string[];
+	preferred_technologies: string[];
+	preferred_evaluation: string[];
+	favorite_professors: string[];
 }
 
-type Prerequisite = { subjects: number[] } | { credits: number } | { none: true };
+type Prerequisite =
+	| { subjects: number[] }
+	| { credits: number }
+	| { none: true };
 
 export interface SubjectInfo {
@@ -37,4 +40,8 @@
 	professors: string[];
 	assistants: string[];
+	tags: string[];
+	technologies: string[];
+	evaluation: string[];
+	is_easy: boolean;
 }
 
