Index: backend/subjects/utils.py
===================================================================
--- backend/subjects/utils.py	(revision cfab86d38f4a56cf7e735680cb32e32fa8cab17c)
+++ backend/subjects/utils.py	(revision ea25fae4cae40e08d4102a7196ef60bd226f3c4f)
@@ -84,5 +84,5 @@
     return valid_subjects
 
-def student_vector(student):
+def get_student_vector(student):
     """
     generates a vector representation of a student based on a predefined vocabulary.
@@ -212,9 +212,9 @@
     for subject in eligible_subjects:
         filtered_subjects_vector[subject] = {}
-        values = eligible_subjects[subject]
+        subject_vector = eligible_subjects[subject]
         for key in student_vector:
             if key in ["index", "study_effort", "current_year"]: continue
             if key == "tags":
-                tag_score = score_tags(student_vector, values)
+                tag_score = score_tags(student_vector, subject_vector)
                 filtered_subjects_vector[subject][key] = tag_score
                 max_tag_score = max(tag_score, max_tag_score)
@@ -222,5 +222,5 @@
 
             student_values = student_vector[key]
-            subject_values = values[key]
+            subject_values = subject_vector[key]
             tot_count = 0
             match_count = 0
@@ -237,12 +237,12 @@
         study_effort = student_vector["study_effort"]
         
-        if (study_effort == 0.4 and values['isEasy']) or (study_effort == 0.8 and not values['isEasy']):
+        if (study_effort == 0.4 and subject_vector['isEasy']) or (study_effort == 0.8 and not subject_vector['isEasy']):
             filtered_subjects_vector[subject]['effort'] = 1
         else:
             filtered_subjects_vector[subject]['effort'] = 0
             
-        filtered_subjects_vector[subject]['activated'] = values['activated']
-
-        filtered_subjects_vector[subject]['participant_score'] = values['participants']
+        filtered_subjects_vector[subject]['activated'] = subject_vector['activated']
+
+        filtered_subjects_vector[subject]['participant_score'] = subject_vector['participants']
     
     if max_tag_score != 0:
@@ -263,5 +263,4 @@
     """
     subject_scores = {}
-    max_ = -1
     for subject in filtered_subjects_vector:
         keys = filtered_subjects_vector[subject]
@@ -269,12 +268,6 @@
         for key in keys:
             score += WEIGHTS[key] * keys[key]
-        max_ = max(score, max_)
         subject_scores[subject] = score
     
-    if max_ == 0: return []
-    
-    for subject in subject_scores:
-        subject_scores[subject] /= max_
-
     top_subjects = list(dict(sorted(subject_scores.items(), key=lambda item: item[1], reverse=True)))[:NUMBER_OF_SUGGESTIONS]
     return top_subjects
Index: backend/subjects/views.py
===================================================================
--- backend/subjects/views.py	(revision cfab86d38f4a56cf7e735680cb32e32fa8cab17c)
+++ backend/subjects/views.py	(revision ea25fae4cae40e08d4102a7196ef60bd226f3c4f)
@@ -10,5 +10,5 @@
 from django.db.models import Case, When
 from auth_form.serializers import StudentFormSerializer
-from subjects.utils import get_eligible_subjects, get_recommendations, map_to_subjects_vector, score_for_preferences, student_vector
+from subjects.utils import get_eligible_subjects, get_recommendations, map_to_subjects_vector, score_for_preferences, get_student_vector
 from .serializers import SubjectSerializer
 from .models import Subject_Info, Subject
@@ -17,11 +17,4 @@
 def index(request):
     return HttpResponse("ok")
-
-
-# @api_view(['GET'])
-# def subject_view(request, code):
-#     subject = Subject.objects.get(code=code)
-#     serializer = SubjectSerializer(subject)
-#     return Response(serializer.data)
 
 @api_view(['GET'])
@@ -34,5 +27,5 @@
 def get_suggestions(request):
     season = request.query_params.get('season')
-    if not season: season = 2
+    if not season: season = 2 # 2 -> any season
     try:
         season = int(season)
@@ -45,8 +38,8 @@
     try:
         subjects = get_eligible_subjects(student, season=season)
-        mapped_subjects = map_to_subjects_vector(subjects)
-        vector = student_vector(student)
+        subject_vectors = map_to_subjects_vector(subjects)
+        student_vector = get_student_vector(student)
     
-        final_subjects = get_recommendations(score_for_preferences(vector, mapped_subjects))
+        final_subjects = get_recommendations(score_for_preferences(student_vector, subject_vectors))
 
         order = Case(*[When(name=subject_name, then=pos) for pos, subject_name in enumerate(final_subjects)])
