Index: frontend/src/components/SubjectCatalog/SubjectCatalog.tsx
===================================================================
--- frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision eea09305aa42e44ac28d4dcbda07a1986abcf7a2)
+++ frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision 73ddd3b4f177c5469bf749a94dcc0b2c24bb5248)
@@ -41,5 +41,5 @@
       const response = await fetch("http://localhost:8000/subjects");
       const data = await response.json();
-	  // ova se eba poso veke data ne e data.subjects tuku e samo data (ne znam sto da se napravi)
+      console.log(data);
       setSubjectData(data);
       setIsLoaded(true);
@@ -67,15 +67,24 @@
   };
 
-  const getSubjectPrerequisites = () => {
-    if (!selectedSubject) return "Нема предуслов";
-    return "subjects" in selectedSubject?.info.prerequisite
-      ? selectedSubject.info.prerequisite.subjects.map(
-          (item) =>
-            subjectData.find((subject) => subject.id === item)?.name || "/"
-        )
-      : "credits" in selectedSubject.info.prerequisite
-      ? selectedSubject.info.prerequisite.credits
-      : "Нема предуслов";
+  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 "Нема предуслов";
   };
+  
 
   return (
Index: frontend/src/components/SubjectCatalog/SubjectModal.tsx
===================================================================
--- frontend/src/components/SubjectCatalog/SubjectModal.tsx	(revision eea09305aa42e44ac28d4dcbda07a1986abcf7a2)
+++ frontend/src/components/SubjectCatalog/SubjectModal.tsx	(revision 73ddd3b4f177c5469bf749a94dcc0b2c24bb5248)
@@ -78,7 +78,7 @@
               <h3 className="text-lg font-medium">Професори:</h3>
               <p>
-                {selectedSubject.info.professors.length == 0
+                {selectedSubject.subject_info.professors.length == 0
                   ? "Нема одредени професори"
-                  : selectedSubject.info.professors.join(", ")}
+                  : selectedSubject.subject_info.professors.join(", ")}
               </p>
             </div>
@@ -86,7 +86,7 @@
               <h3 className="text-lg font-medium">Асистенти:</h3>
               <p>
-                {selectedSubject.info.assistants.length == 0
+                {selectedSubject.subject_info.assistants.length == 0
                   ? "Нема одредени асистенти"
-                  : selectedSubject.info.assistants.join(", ")}
+                  : selectedSubject.subject_info.assistants.join(", ")}
               </p>
             </div>
@@ -105,5 +105,5 @@
                       </p>
                       <p className="font-medium">
-                        {selectedSubject.info.semester}
+                        {selectedSubject.subject_info.semester}
                       </p>
                     </div>
@@ -113,5 +113,5 @@
                       <p className="text-sm text-gray-500">Зимски / Летен</p>
                       <p className="font-medium">
-                        {selectedSubject.info.season == "S"
+                        {selectedSubject.subject_info.season == "S"
                           ? "Летен"
                           : "Зимски"}
@@ -123,5 +123,5 @@
                       <p className="text-sm text-gray-500">Ниво</p>
                       <p className="font-medium">
-                        L{selectedSubject.info.level}
+                        L{selectedSubject.subject_info.level}
                       </p>
                     </div>
@@ -133,7 +133,7 @@
                       <p className="text-sm text-gray-500">Задолжителен за:</p>
                       <p className="font-medium">
-                        {selectedSubject.info.mandatory_for.length == 0
+                        {selectedSubject.subject_info.mandatory_for.length == 0
                           ? "Не е задолжителен предмет"
-                          : selectedSubject.info.mandatory_for
+                          : selectedSubject.subject_info.mandatory_for
                               .map((s) => s.replace(/\d+$/, ""))
                               .join(", ")}
@@ -145,7 +145,7 @@
                       <p className="text-sm text-gray-500">Изборен за:</p>
                       <p className="font-medium">
-                        {selectedSubject.info.elective_for.length == 0
+                        {selectedSubject.subject_info.elective_for.length == 0
                           ? "Не е изборен предмет"
-                          : selectedSubject.info.elective_for
+                          : selectedSubject.subject_info.elective_for
                               .map((s) => s.replace(/\d+$/, ""))
                               .join(", ")}
@@ -169,5 +169,5 @@
             </div>
             <div>
-              {selectedSubject.info.participants[0] == 0 ? (
+              {selectedSubject.subject_info.participants[0] == 0 ? (
                 <div className="bg-red-500 py-3 pl-2 rounded-md">
                   Овој предмет не бил активиран минатиот семестар.
@@ -175,5 +175,5 @@
               ) : (
                 <p>{`Овој предмет минатиот семестар бил запишан од
-									${selectedSubject.info.participants[0]} студенти.`}</p>
+									${selectedSubject.subject_info.participants[0]} студенти.`}</p>
               )}
             </div>
Index: frontend/src/components/SubjectCatalog/utils.ts
===================================================================
--- frontend/src/components/SubjectCatalog/utils.ts	(revision eea09305aa42e44ac28d4dcbda07a1986abcf7a2)
+++ frontend/src/components/SubjectCatalog/utils.ts	(revision 73ddd3b4f177c5469bf749a94dcc0b2c24bb5248)
@@ -33,21 +33,21 @@
 
     const seasonMatches =
-      filters.season === "" || filters.season === subject.info.season;
+      filters.season === "" || filters.season === subject.subject_info.season;
 
     const semesterMatches =
       filters.semester.length === 0 ||
-      filters.semester.includes(subject.info.semester);
+      filters.semester.includes(subject.subject_info.semester);
 
     const levelMatches =
-      filters.level.length === 0 || filters.level.includes(subject.info.level);
+      filters.level.length === 0 || filters.level.includes(subject.subject_info.level);
 
     const activatedMatches =
       filters.activated == "" ||
-      (filters.activated == "activated" && subject.info.activated) ||
-      (filters.activated == "not_activated" && !subject.info.activated);
+      (filters.activated == "activated" && subject.subject_info.activated) ||
+      (filters.activated == "not_activated" && !subject.subject_info.activated);
 
     const mandatoryMatches =
       filters.mandatoryFor.length === 0 ||
-      subject.info.mandatory_for.some((item) =>
+      subject.subject_info.mandatory_for.some((item) =>
         filters.mandatoryFor.includes(item)
       );
@@ -55,5 +55,5 @@
     const electiveMatches =
       filters.electiveFor.length === 0 ||
-      subject.info.elective_for.some((item) =>
+      subject.subject_info.elective_for.some((item) =>
         filters.electiveFor.includes(item)
       );
@@ -61,5 +61,5 @@
     const professorsMatches =
       professorSearchTerm == "" ||
-      subject.info.professors.some((item) =>
+      subject.subject_info.professors.some((item) =>
         item.toLowerCase().includes(professorSearchTerm.toLowerCase())
       );
@@ -67,10 +67,10 @@
     const assistantsMatches =
       assistantSearchTerm == "" ||
-      subject.info.assistants.some((item) =>
+      subject.subject_info.assistants.some((item) =>
         item.toLowerCase().includes(assistantSearchTerm.toLowerCase())
       );
 
     const prerequisitesMatch =
-      !filters.hasPrerequisites || subject.info.prerequisite == "";
+      !filters.hasPrerequisites || subject.subject_info.prerequisite == null;
 
     return (
@@ -118,6 +118,6 @@
     const randomSubject1 =
       subjectData[Math.floor(Math.random() * subjectData.length)];
-    return randomSubject1?.info.professors[
-      Math.floor(Math.random() * randomSubject1.info.professors.length)
+    return randomSubject1?.subject_info.professors[
+      Math.floor(Math.random() * randomSubject1.subject_info.professors.length)
     ];
   };
@@ -125,6 +125,6 @@
     const randomSubject2 =
       subjectData[Math.floor(Math.random() * subjectData.length)];
-    return randomSubject2?.info.assistants[
-      Math.floor(Math.random() * randomSubject2.info.assistants.length)
+    return randomSubject2?.subject_info.assistants[
+      Math.floor(Math.random() * randomSubject2.subject_info.assistants.length)
     ];
   };
Index: frontend/src/components/types.ts
===================================================================
--- frontend/src/components/types.ts	(revision eea09305aa42e44ac28d4dcbda07a1986abcf7a2)
+++ frontend/src/components/types.ts	(revision 73ddd3b4f177c5469bf749a94dcc0b2c24bb5248)
@@ -22,5 +22,5 @@
 }
 
-type Prerequisite = { subjects: number[] } | { credits: number } | {};
+type Prerequisite = { subjects: number[] } | { credits: number } | { none: true };
 
 export interface SubjectInfo {
