Index: backend/auth_form/utils.py
===================================================================
--- backend/auth_form/utils.py	(revision 1f27255c9f05038d7afa555a20aa7d329fbec5c8)
+++ backend/auth_form/utils.py	(revision 53410dd12d0834def3d15205b38fa478bdb875d7)
@@ -1,41 +1,32 @@
 from subjects.models import Subject
 
+def get_eligible_subjects(student):
+    passed_ids = set(student.passed_subjects.values_list('id', flat=True))
 
-# def check_prerequisites(has_extracurricular, passed_subjects):
-#     """
-#     Checks if all prerequisite requirements are fulfilled based on passed subjects and extracurricular credits.
-#     """
-    
-#     invalid_subjects = []
+    total_credits = student.total_credits
+    level_credits = student.level_credits
+    study_track = student.study_track
 
-#     # Track valid subjects as we go
-#     valid_subject_ids = set(id for id in passed_subjects)
-#     for subject_id in passed_subjects:
-#         prereqs = Subject.objects.get(id=subject_id).subject_info.prerequisite
-#         if 'subjects' in prereqs:
-#             if not any(prereq in valid_subject_ids for prereq in prereqs['subjects']):
-#                 invalid_subjects.append(subject_id)
-#                 valid_subject_ids.discard(subject_id)
-    
-#     total_credits = len(valid_subject_ids) * 6
-    
-#     pv = Subject.objects.get(name="Професионални вештини").id
-#     sport = Subject.objects.get(name="Спорт и здравје").id
+    all_subjects = (Subject.objects
+        .exclude(id__in=passed_ids)
+        .select_related('subject_info')
+    )
 
-#     if pv in valid_subject_ids or sport in valid_subject_ids:
-#         total_credits -= 6
-#     if has_extracurricular:
-#         total_credits += 6
-    
-#     for subject_id in passed_subjects:
-#         prereqs = Subject.objects.get(id=subject_id).subject_info.prerequisite
-#         if 'credits' in prereqs:
-#             if total_credits < prereqs['credits']:
-#                 invalid_subjects.append(subject_id)
-#                 valid_subject_ids.discard(subject_id)
-#                 total_credits -= 6
-#     return (True, []) if len(invalid_subjects) == 0 else (False, invalid_subjects)
+    if level_credits[0] >= 6:
+        all_subjects = all_subjects.exclude(subject_info__level=1)
+    if level_credits[1] >= 36:
+        all_subjects = all_subjects.exclude(subject_info__level=2)
 
-# b = Subject.objects.get(name="Вештачка интелигенција").id
-# a = Subject.objects.get(name="Бизнис и менаџмент").id
-# check_prerequisites(False, [a,b])
+    valid_subjects = []
+    for subject in all_subjects:
+        subject_info_ = subject.subject_info
+        prereqs = subject_info_.prerequisite or {}
+        if prereqs.get('credits') and total_credits < prereqs['credits']:
+            continue
+        if prereqs.get('subjects') and not any(subj_id in passed_ids for subj_id in prereqs['subjects']):
+            continue
+        if study_track not in subject_info_.elective_for:
+            continue
+        valid_subjects.append(subject)
+
+    return valid_subjects
Index: backend/backend/urls.py
===================================================================
--- backend/backend/urls.py	(revision 1f27255c9f05038d7afa555a20aa7d329fbec5c8)
+++ backend/backend/urls.py	(revision 53410dd12d0834def3d15205b38fa478bdb875d7)
@@ -17,9 +17,10 @@
 from django.contrib import admin
 from django.urls import path, include
-from subjects.views import index,all_subjects
+from subjects.views import index, all_subjects, get_suggestions
 
 urlpatterns = [
     path('admin/', admin.site.urls),
     path('subjects/', all_subjects),
+    path('suggestion/', get_suggestions),
     path('auth/', include('auth_form.urls')),
     path('', index),
Index: backend/subjects/views.py
===================================================================
--- backend/subjects/views.py	(revision 1f27255c9f05038d7afa555a20aa7d329fbec5c8)
+++ backend/subjects/views.py	(revision 53410dd12d0834def3d15205b38fa478bdb875d7)
@@ -5,4 +5,8 @@
 from rest_framework.decorators import api_view
 from rest_framework.response import Response
+from rest_framework import status
+
+from auth_form.serializers import StudentFormSerializer
+from auth_form.utils import get_eligible_subjects
 from .serializers import SubjectSerializer
 from .models import Subject_Info, Subject
@@ -16,2 +20,12 @@
     serializer = SubjectSerializer(subjects, many=True)
     return Response(serializer.data)
+
+@api_view(['GET'])
+def get_suggestions(request):
+    student = request.user.student
+    if not student:
+        return Response({"message": "Could not find student"}, status=status.HTTP_400_BAD_REQUEST)
+
+    subjects = get_eligible_subjects(student)
+    serializer = SubjectSerializer(subjects, many=True)
+    return Response({"data": serializer.data}, status=status.HTTP_200_OK)
Index: frontend/src/App.tsx
===================================================================
--- frontend/src/App.tsx	(revision 1f27255c9f05038d7afa555a20aa7d329fbec5c8)
+++ frontend/src/App.tsx	(revision 53410dd12d0834def3d15205b38fa478bdb875d7)
@@ -1,47 +1,49 @@
-import { createBrowserRouter, RouterProvider, Outlet } from "react-router-dom";
+import { createBrowserRouter, Outlet, RouterProvider } from "react-router-dom";
+import Footer from "./components/Footer";
+import Navbar from "./components/Navbar";
+import PrivateRoute from "./components/PrivateRoute";
 import CourseCatalog from "./components/SubjectCatalog/SubjectCatalog";
-import Login from "./pages/Login";
-import Register from "./pages/Register";
-import Home from "./pages/Home";
-import Account from "./pages/Account";
-import PrivateRoute from "./components/PrivateRoute";
-import Navbar from "./components/Navbar";
-import Footer from "./components/Footer";
 import useAxiosAuth from "./hooks/useAxiosAuth";
 import "./index.css";
+import Account from "./pages/Account";
+import Home from "./pages/Home";
+import Login from "./pages/Login";
+import Recommendations from "./pages/Recommendations";
+import Register from "./pages/Register";
 
 const Layout = () => (
-  <div className="flex flex-col min-h-screen">
-    <Navbar />
-    <main className="flex-grow">
-      <Outlet />
-    </main>
-    <Footer />
-  </div>
+	<div className="flex flex-col min-h-screen">
+		<Navbar />
+		<main className="flex-grow">
+			<Outlet />
+		</main>
+		<Footer />
+	</div>
 );
 const router = createBrowserRouter([
-  {
-    path: "/",
-    element: <Layout />,
-    children: [
-      { path: "", element: <Home /> },
-      { path: "subjects", element: <CourseCatalog /> },
-      { path: "login", element: <Login /> },
-      { path: "register", element: <Register /> },
-      {
-        path: "account",
-        element: (
-          <PrivateRoute>
-            <Account />
-          </PrivateRoute>
-        ),
-      },
-    ],
-  },
+	{
+		path: "/",
+		element: <Layout />,
+		children: [
+			{ path: "", element: <Home /> },
+			{ path: "subjects", element: <CourseCatalog /> },
+			{ path: "login", element: <Login /> },
+			{ path: "register", element: <Register /> },
+			{ path: "recommendations", element: <Recommendations /> },
+			{
+				path: "account",
+				element: (
+					<PrivateRoute>
+						<Account />
+					</PrivateRoute>
+				),
+			},
+		],
+	},
 ]);
 
 function App() {
-  useAxiosAuth();
-  return <RouterProvider router={router} />;
+	useAxiosAuth();
+	return <RouterProvider router={router} />;
 }
 
Index: frontend/src/components/Navbar.tsx
===================================================================
--- frontend/src/components/Navbar.tsx	(revision 1f27255c9f05038d7afa555a20aa7d329fbec5c8)
+++ frontend/src/components/Navbar.tsx	(revision 53410dd12d0834def3d15205b38fa478bdb875d7)
@@ -43,5 +43,4 @@
 					</Link>
 				</div>
-
 				<button
 					onClick={() => setMenuOpen(!menuOpen)}
@@ -76,4 +75,7 @@
 					<Link to="/subjects" className="hover:underline">
 						Предмети
+					</Link>
+					<Link to="/recommendations" className="hover:underline">
+						Препораки
 					</Link>
 					{isAuthenticated && (
Index: frontend/src/components/StudentForm/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm/StudentForm.tsx	(revision 1f27255c9f05038d7afa555a20aa7d329fbec5c8)
+++ frontend/src/components/StudentForm/StudentForm.tsx	(revision 53410dd12d0834def3d15205b38fa478bdb875d7)
@@ -245,6 +245,4 @@
 		};
 		try {
-			console.log(totalCredits.value);
-			console.log(creditsByLevel.value);
 			// For updating existing form data use PATCH instead of PUT for partial updates
 			const method = formData?.current_year || isSubmitted ? "PATCH" : "POST";
Index: frontend/src/pages/Recommendations.tsx
===================================================================
--- frontend/src/pages/Recommendations.tsx	(revision 53410dd12d0834def3d15205b38fa478bdb875d7)
+++ frontend/src/pages/Recommendations.tsx	(revision 53410dd12d0834def3d15205b38fa478bdb875d7)
@@ -0,0 +1,44 @@
+import { useState } from "react";
+import { Subject } from "../components/types";
+import { useAuth } from "../hooks/useAuth";
+
+const Recommendations = () => {
+	const { accessToken } = useAuth();
+	const [recommendations, setRecommendations] = useState<Subject[]>([]);
+	const testAPI = async () => {
+		const start = performance.now();
+		console.log("fetching...");
+		fetch("http://localhost:8000/suggestion/", {
+			method: "GET",
+			headers: {
+				Authorization: `Bearer ${accessToken}`,
+				"Content-Type": "application/json",
+			},
+		})
+			.then((res) => res.json())
+			.then((data) => {
+				console.log(data.data);
+				setRecommendations(data.data);
+				console.log((performance.now() - start) / 1000);
+			});
+	};
+
+	return (
+		<div className="ml-2">
+			<p>zdravo klikni na kopcevo besplatno e</p>
+			<button className="bg-red-500 p-2 rounded" onClick={testAPI}>
+				test api
+			</button>
+			<div>
+				{recommendations &&
+					recommendations.map((subject) => (
+						<div>
+							<p>{subject.name}</p>
+						</div>
+					))}
+			</div>
+		</div>
+	);
+};
+
+export default Recommendations;
