Index: backend/requirements.txt
===================================================================
--- backend/requirements.txt	(revision 4c0834285e25ac20e2dbea96f9dc054a1765fdda)
+++ backend/requirements.txt	(revision 580f4f05f433a719a0e00052dad9ef8b37c7bbab)
@@ -10,3 +10,4 @@
 psycopg-binary==3.2.6
 python-decouple>=3.8
+numpy>=2.2.5
 psycopg2-binary>=2.9.10
Index: ckend/subjects/management/commands/student_vector.py
===================================================================
--- backend/subjects/management/commands/student_vector.py	(revision 4c0834285e25ac20e2dbea96f9dc054a1765fdda)
+++ 	(revision )
@@ -1,46 +1,0 @@
-from pathlib import Path
-import json
-from django.core.management.base import BaseCommand
-from numpy import average
-
-class Command(BaseCommand):
-    help = "Vectorize all subjects"
-    
-    def handle(self, *args, **options):
-        base_dir = Path(__file__).resolve().parent.parent
-        information_file_path = base_dir / 'data' / 'test_student.json'
-        vocab_file_path = base_dir / 'data' / 'vocabulary.json'
-        output_file_path = base_dir / 'data' / 'test123.json'
-        try:
-            with open(information_file_path, 'r', encoding='utf-8') as f:
-                student_data = json.load(f)
-            with open(vocab_file_path, 'r', encoding='utf-8') as f:
-                vocabulary = json.load(f)
-        except FileNotFoundError:
-            self.stdout.write(self.style.ERROR(f"Could not find file at {information_file_path}"))
-            exit(1)
-
-        # student keys
-        keys_to_extract = [
-            "index", "current_year", "study_effort", "professors",
-            "domains", "technologies", "evaluation"
-        ]
-        student_data = student_data[0]
-        student_vector = {}
-        student_vector['index'] = student_data['index']
-
-        for key in vocabulary:
-            if key == "assistants": continue
-            student_values = student_data[key]
-            student_vector[key] = []
-            words = vocabulary[key]
-            for word in words:
-                student_vector[key].append(0 if word not in student_values else 1)
-        
-        student_vector['study_effort'] = student_data["study_effort"] / 5
-        student_vector['current_year'] = student_data["current_year"]
-
-
-        with open(output_file_path, "w", encoding='utf-8') as f:
-            json.dump(student_vector, f, ensure_ascii=False, indent=4)
-            self.stdout.write(self.style.SUCCESS(f"Data successfully stored in {output_file_path}"))
Index: ckend/subjects/management/data/test123.json
===================================================================
--- backend/subjects/management/data/test123.json	(revision 4c0834285e25ac20e2dbea96f9dc054a1765fdda)
+++ 	(revision )
@@ -1,16 +1,0 @@
-{
-	"index": "213113",
-	"professors": [
-		0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-	],
-	"technologies": [
-		0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-		1, 0, 0
-	],
-	"tags": [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0],
-	"evaluation": [1, 0, 1, 0, 0, 0, 0],
-	"study_effort": 0.6,
-	"current_year": 4
-}
Index: ckend/subjects/management/data/test_student.json
===================================================================
--- backend/subjects/management/data/test_student.json	(revision 4c0834285e25ac20e2dbea96f9dc054a1765fdda)
+++ 	(revision )
@@ -1,37 +1,0 @@
-[
-	{
-		"id": 33,
-		"index": "213113",
-		"study_track": "SIIS23",
-		"current_year": 4,
-		"study_effort": 3,
-		"tags": [
-			"Cloud Engineering & DevOps",
-			"Societal Skills",
-			"Software Engineering"
-		],
-		"technologies": ["Vue", "C", "Kotlin", "Kubernetes", "Laravel"],
-		"evaluation": ["Code", "Practical"],
-		"professors": [
-			"Катарина Тројачанец Динева",
-			"Александар Стојменски",
-			"Ана Мадевска Богданова",
-			"Андреа Кулаков"
-		],
-		"user_id": 41,
-		"has_filled_form": true,
-		"passed_subjects_per_semester": {
-			"1": [529, 531],
-			"2": [],
-			"3": [],
-			"4": [],
-			"5": [],
-			"6": [],
-			"7": [],
-			"8": []
-		},
-		"has_extracurricular": false,
-		"total_credits": 12,
-		"level_credits": [0, 0, 0]
-	}
-]
Index: backend/subjects/utils.py
===================================================================
--- backend/subjects/utils.py	(revision 4c0834285e25ac20e2dbea96f9dc054a1765fdda)
+++ backend/subjects/utils.py	(revision 580f4f05f433a719a0e00052dad9ef8b37c7bbab)
@@ -1,3 +1,7 @@
 from subjects.models import Subject
+from pathlib import Path
+import json
+from django.core.management.base import BaseCommand
+from numpy import average
 
 def get_eligible_subjects(student):
@@ -32,2 +36,30 @@
     return valid_subjects
 
+def student_vector(student):
+    base_dir = Path(__file__).resolve().parent
+    vocab_file_path = base_dir / 'management' / 'data' / 'vocabulary.json'
+    try:
+        with open(vocab_file_path, 'r', encoding='utf-8') as f:
+            vocabulary = json.load(f)
+    except FileNotFoundError:
+        print("file not found")
+        exit(1)
+
+    student_vector = {}
+    student_vector['index'] = student.index
+    print(student.professors)
+    for key in vocabulary:
+        print(key)
+        if key == "assistants": continue
+        student_values = getattr(student, key, [])
+
+        student_vector[key] = []
+        words = vocabulary[key]
+        for word in words:
+            student_vector[key].append(0 if word not in student_values else 1)
+
+    student_vector['study_effort'] = student.study_effort / 5
+    student_vector['current_year'] = student.current_year
+
+    return student_vector
+    
Index: backend/subjects/views.py
===================================================================
--- backend/subjects/views.py	(revision 4c0834285e25ac20e2dbea96f9dc054a1765fdda)
+++ backend/subjects/views.py	(revision 580f4f05f433a719a0e00052dad9ef8b37c7bbab)
@@ -8,5 +8,5 @@
 
 from auth_form.serializers import StudentFormSerializer
-from subjects.utils import get_eligible_subjects
+from subjects.utils import get_eligible_subjects, student_vector
 from .serializers import SubjectSerializer
 from .models import Subject_Info, Subject
@@ -28,4 +28,5 @@
 
     subjects = get_eligible_subjects(student)
+    vector = student_vector(student)
     serializer = SubjectSerializer(subjects, many=True)
     return Response({"data": serializer.data}, status=status.HTTP_200_OK)
