Index: frontend/src/components/SubjectCatalog/SubjectCatalog.tsx
===================================================================
--- frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision 85662f00558b4c189726f6247979ed5d288fcf64)
+++ frontend/src/components/SubjectCatalog/SubjectCatalog.tsx	(revision ac1ce62e1bde290b32a82ab6080595f2ba875f49)
@@ -41,4 +41,5 @@
       const response = await fetch("http://localhost:8000/subjects");
       const data = await response.json();
+      console.log(data);
       setSubjectData(data.subjects);
       setIsLoaded(true);
Index: frontend/src/components/types.ts
===================================================================
--- frontend/src/components/types.ts	(revision 85662f00558b4c189726f6247979ed5d288fcf64)
+++ frontend/src/components/types.ts	(revision ac1ce62e1bde290b32a82ab6080595f2ba875f49)
@@ -0,0 +1,40 @@
+import { PROGRAMS } from "../constants/subjects";
+
+export interface Subject {
+	id: number;
+	code: string;
+	name: string;
+	abstract: string;
+	info: SubjectInfo;
+}
+
+type Prerequisite = { subjects: number[] } | { credits: number } | {};
+
+export interface SubjectInfo {
+	level: number;
+	short: string;
+	prerequisite: Prerequisite;
+	activated: boolean;
+	participants: number[];
+	mandatory: boolean;
+	mandatory_for: Programs[];
+	semester: number;
+	season: string;
+	elective_for: Programs[];
+	professors: string[];
+	assistants: string[];
+}
+
+export type Filters = {
+	season: "W" | "S" | "";
+	semester: number[];
+	level: number[];
+	activated: "activated" | "not_activated" | "";
+	mandatoryFor: Programs[];
+	electiveFor: Programs[];
+	professors: string[];
+	assistants: string[];
+	hasPrerequisites: boolean;
+};
+
+export type Programs = (typeof PROGRAMS)[number];
