Index: backend/subjects/models.py
===================================================================
--- backend/subjects/models.py	(revision e637952bd9f1e6ff1b3d5cd472e5bcc0e0e0d834)
+++ backend/subjects/models.py	(revision 8ba18400835e3bf5d7e72a00230cdbcb5606d5f5)
@@ -72,4 +72,8 @@
     def downvote_count(self):
         return self.votes.filter(review_votes__reviewvote__vote_type='down').count()
+    @property
+    def votes_count(self):
+        return self.votes.count()
+
 
 class ReviewVote(models.Model):
@@ -96,5 +100,5 @@
     # option B: theory: 35%, practical: 35%, labs: 10%, project: 20%
     # each of these (option A - project, option A - labs, option B - project etc. is a EvaluationComponent)
-    evaluation_review = models.ForeignKey(EvaluationReview, on_delete=models.CASCADE)
+    evaluation_review = models.ForeignKey(EvaluationReview, on_delete=models.CASCADE, related_name='methods')
     note = models.CharField(max_length=64, null=True, blank=True, help_text="additional info about this particular evaluation method.")
 
@@ -110,5 +114,5 @@
         # todo: check if there are more
     ]
-    evaluation_method = models.ForeignKey(EvaluationMethod, on_delete=models.CASCADE)
+    evaluation_method = models.ForeignKey(EvaluationMethod, on_delete=models.CASCADE, related_name='components')
     category = models.CharField(max_length=16, choices=CATEGORY_TYPE_CHOICES)
     percentage = models.IntegerField(validators=[MinValueValidator(0), MaxValueValidator(100)])
Index: backend/subjects/serializers.py
===================================================================
--- backend/subjects/serializers.py	(revision e637952bd9f1e6ff1b3d5cd472e5bcc0e0e0d834)
+++ backend/subjects/serializers.py	(revision 8ba18400835e3bf5d7e72a00230cdbcb5606d5f5)
@@ -1,4 +1,4 @@
 from rest_framework import serializers
-from .models import Subject, Subject_Info, EvaluationMethod, EvaluationComponent, EvaluationReview, OtherReview
+from .models import Subject, Subject_Info, EvaluationMethod, EvaluationComponent, EvaluationReview, OtherReview, Review
 
 class SubjectInfoSerializer(serializers.ModelSerializer):
@@ -22,4 +22,5 @@
             'is_easy'
         ]
+
 class SubjectSerializer(serializers.ModelSerializer):
     subject_info = SubjectInfoSerializer()
@@ -30,22 +31,18 @@
         ]
 
+class ReviewMetaSerializer(serializers.ModelSerializer):
+    student = serializers.SerializerMethodField()
+
+    class Meta:
+        model = Review
+        fields = ['student', 'is_confirmed', 'votes_count']
+
+    def get_student(self, obj):
+        return obj.student.index
+
 class EvaluationComponentSerializer(serializers.ModelSerializer):
     class Meta:
         model = EvaluationComponent
         fields = ['category', 'percentage']
-
-    # def validate(self, data):
-    #     try:
-    #         category = data['category']
-    #         percentage = data['percentage']
-    #         try:
-    #             percentage = int(percentage)
-    #         except ValueError:
-    #             raise ValidationError("percentage should be an integer.")
-    #     except:
-    #         raise ValidationError("invalid data for evaluation component.")
-    #
-    #     return data
-
 
 
@@ -75,8 +72,9 @@
 class EvaluationReviewSerializer(serializers.ModelSerializer):
     methods = EvaluationMethodSerializer(many=True)
+    review = ReviewMetaSerializer()
 
     class Meta:
         model = EvaluationReview
-        fields = ['methods']
+        fields = ['review', 'methods']
 
     def validate(self, data):
@@ -91,12 +89,15 @@
         evaluation_review = EvaluationReview.objects.create(review=review)
         for method_data in methods_data:
-            method_data['evaluation_review'] = evaluation_review
-            self.fields['methods'].create(method_data)
+            validated_method_data = self.fields['methods'].child.run_validation(method_data)
+            validated_method_data['evaluation_review'] = evaluation_review
+            self.fields['methods'].child.create(validated_method_data)
         return evaluation_review
 
 class OtherReviewSerializer(serializers.ModelSerializer):
+    review = ReviewMetaSerializer()
+
     class Meta:
         model = OtherReview
-        fields = ['category', 'content']
+        fields = ['review', 'category', 'content']
 
     def create(self, validated_data):
Index: backend/subjects/urls.py
===================================================================
--- backend/subjects/urls.py	(revision e637952bd9f1e6ff1b3d5cd472e5bcc0e0e0d834)
+++ backend/subjects/urls.py	(revision 8ba18400835e3bf5d7e72a00230cdbcb5606d5f5)
@@ -1,4 +1,4 @@
 from django.urls import path
-from .views import ToggleSubjectPreferences, PreferencesView, all_subjects, get_recommendations, SubjectReview
+from .views import ToggleSubjectPreferences, PreferencesView, all_subjects, get_recommendations, SubjectReview, ReviewsForSubject
 urlpatterns = [
     path('all/', all_subjects, name='all_subjects'),
@@ -6,4 +6,5 @@
     path('preferences/', PreferencesView.as_view(), name='student-preferences'),
     path('toggle-subject-pref/', ToggleSubjectPreferences.as_view(), name='student-toggle-preferences'),
-    path('subject-review', SubjectReview.as_view(), name='subject-review')
+    path('subject-review', SubjectReview.as_view(), name='subject-review'),
+    path('subject-review/<str:code>', ReviewsForSubject.as_view(), name='subject-review')
 ]
Index: backend/subjects/views.py
===================================================================
--- backend/subjects/views.py	(revision e637952bd9f1e6ff1b3d5cd472e5bcc0e0e0d834)
+++ backend/subjects/views.py	(revision 8ba18400835e3bf5d7e72a00230cdbcb5606d5f5)
@@ -10,5 +10,5 @@
 from subjects.utils import get_eligible_subjects, get_recommendations_cache_key, get_recommended_subjects, map_to_subjects_vector, score_for_preferences, get_student_vector
 from .serializers import SubjectSerializer, EvaluationReviewSerializer, OtherReviewSerializer
-from .models import Subject, Review, EvaluationReview
+from .models import Subject, Review, EvaluationReview, OtherReview
 
 def index(request):
@@ -158,9 +158,6 @@
             )
 
-        existing_evaluation = EvaluationReview.objects.filter(
-            review__subject_id=subject_id
-        ).exists()
-
-        if existing_evaluation:
+        if review_type == 'evaluation' and \
+            EvaluationReview.objects.filter(review__subject_id=subject_id).exists():
             return Response(
                 {"error": "An evaluation review for this subject already exists."},
@@ -189,2 +186,22 @@
             review.delete()
             return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
+
+class ReviewsForSubject(APIView):
+    def get(self, request, code):
+        subject = Subject.objects.filter(code=code)
+        if not subject.exists():
+            return Response({'error': 'Subject not found.'}, status=status.HTTP_404_NOT_FOUND)
+
+        reviews = Review.objects.filter(subject__code=code)
+
+        evaluation_reviews = EvaluationReview.objects.filter(review__in=reviews).first()
+        other_reviews = OtherReview.objects.filter(review__in=reviews)
+
+
+        evaluation_serializer = EvaluationReviewSerializer(evaluation_reviews)
+        other_serializer = OtherReviewSerializer(other_reviews, many=True)
+
+        return Response({
+            "evaluation": evaluation_serializer.data,
+            "other": other_serializer.data
+        }, status=status.HTTP_200_OK)
Index: frontend/src/constants/subjects.ts
===================================================================
--- frontend/src/constants/subjects.ts	(revision e637952bd9f1e6ff1b3d5cd472e5bcc0e0e0d834)
+++ frontend/src/constants/subjects.ts	(revision 8ba18400835e3bf5d7e72a00230cdbcb5606d5f5)
@@ -30,3 +30,7 @@
 	Code: "Код",
 	Project: "Проект",
+	Homework: "Домашни",
+	Labs: "Лабораториски",
+	Attendance: "Присуство",
+	Presentation: "Презентација",
 };
Index: frontend/src/pages/SubjectView.tsx
===================================================================
--- frontend/src/pages/SubjectView.tsx	(revision e637952bd9f1e6ff1b3d5cd472e5bcc0e0e0d834)
+++ frontend/src/pages/SubjectView.tsx	(revision 8ba18400835e3bf5d7e72a00230cdbcb5606d5f5)
@@ -1,9 +1,56 @@
-import { ArrowLeft, Tag, Users } from "lucide-react";
+import {
+	ArrowDown,
+	ArrowLeft,
+	ArrowUp,
+	Tag,
+	// ThumbsDown,
+	// ThumbsUp,
+	Users,
+} from "lucide-react";
 import { useEffect, useMemo, useState } from "react";
 import { Link, useLocation, useNavigate, useParams } from "react-router-dom";
+import axiosInstance from "../api/axiosInstance";
 import { getSubjectPrerequisites } from "../components/SubjectCatalog/utils";
 import SkeletonSubjectView from "../components/SubjectView/SkeletonSubjectView";
 import { EVALUATION_MAP_TO_MK } from "../constants/subjects";
 import { useSubjects } from "../context/SubjectsContext";
+
+interface EvaluationComponent {
+	category:
+		| "project"
+		| "theory"
+		| "practical"
+		| "homework"
+		| "attendance"
+		| "presentation";
+	percentage: number;
+}
+
+interface EvaluationMethod {
+	note?: string;
+	components: EvaluationComponent[];
+}
+
+interface EvaluationReview {
+	review: Review;
+	methods: EvaluationMethod[];
+}
+
+interface OtherReview {
+	review: Review;
+	category: "material" | "staff" | "other";
+	content: string;
+}
+
+interface Review {
+	student?: string;
+	is_confirmed?: boolean;
+	votes_count?: number;
+}
+
+interface Reviews {
+	evaluation: EvaluationReview; // only one evaluation review per subject
+	other: OtherReview[];
+}
 
 function SubjectView() {
@@ -12,4 +59,5 @@
 	>("Нема предуслов");
 	const [isExpanded, setIsExpanded] = useState(false);
+	const [reviews, setReviews] = useState<Reviews>({} as Reviews);
 	const [filteredTechonologies, setFilteredTechnologies] = useState<string[]>(
 		[]
@@ -25,4 +73,18 @@
 		return subjects.find((subject) => subject.code === code);
 	}, [subjects, code]);
+
+	useEffect(() => {
+		if (!selectedSubject) return;
+		(async () => {
+			try {
+				const response = await axiosInstance.get<Reviews>(
+					`subjects/subject-review/${selectedSubject?.code}`
+				);
+				setReviews(response.data);
+			} catch (err) {
+				console.error("Error: ", err);
+			}
+		})();
+	}, [selectedSubject]);
 
 	const WORD_LIMIT = 40;
@@ -242,4 +304,179 @@
 							</div>
 						</div>
+
+						<div className="bg-white rounded-lg shadow-sm p-6">
+							{!reviews ||
+							!reviews.evaluation ||
+							!reviews.other ? null : reviews.evaluation?.methods?.length ==
+									0 && reviews.other.length == 0 ? (
+								<p>Нема информации од студенти за овој предмет.</p>
+							) : (
+								<>
+									<h2 className="text-xl font-semibold mb-6">
+										Информации од студенти
+									</h2>
+									{reviews.evaluation.methods.length > 0 && (
+										<>
+											{reviews.evaluation?.methods?.length > 0 && (
+												<div className="mb-8">
+													<h3 className="text-lg font-medium mb-4 text-gray-900">
+														Информации за полагање
+													</h3>
+													<div className="space-y-4">
+														{reviews &&
+															reviews.evaluation &&
+															(reviews.evaluation?.methods?.length > 0 ? (
+																<div className="border border-gray-200 rounded-lg p-4">
+																	<div className="flex items-start justify-between mb-3">
+																		<div className="flex items-center space-x-2">
+																			<span className="text-sm text-gray-600">
+																				Индекс:{" "}
+																				{reviews.evaluation?.review.student}
+																			</span>
+																			{reviews.evaluation?.review
+																				.is_confirmed ? (
+																				<div className="flex items-center text-green-600">
+																					{/* <CheckCircle className="w-4 h-4 mr-1" /> */}
+																					<span className="text-sm">
+																						Потврдено
+																					</span>
+																				</div>
+																			) : (
+																				<div className="flex items-center text-red-600">
+																					<span className="text-sm">
+																						Непотврдено
+																					</span>
+																				</div>
+																			)}
+																		</div>
+																		<div className="flex items-center space-x-1">
+																			<button className="flex items-center justify-center w-6 h-6 text-gray-400 hover:text-green-600 hover:bg-green-50 rounded">
+																				<ArrowUp className="w-4 h-4" />
+																			</button>
+																			<span className="text-sm font-medium text-gray-700 min-w-[20px] text-center">
+																				{reviews.evaluation?.review.votes_count}
+																			</span>
+																			<button className="flex items-center justify-center w-6 h-6 text-gray-400 hover:text-red-600 hover:bg-red-50 rounded">
+																				<ArrowDown className="w-4 h-4" />
+																			</button>
+																		</div>
+																	</div>
+																	{reviews.evaluation?.methods?.map(
+																		(method, index) => (
+																			<div key={index}>
+																				<div className="space-y-4 mb-3">
+																					<div>
+																						<p className="text-sm text-gray-600 mb-2">
+																							Начин на положување {index + 1}:
+																						</p>
+																						<div className="overflow-x-auto">
+																							<table className="min-w-full border border-gray-300">
+																								<thead className="bg-gray-50">
+																									<tr>
+																										<th className="px-4 py-2 text-left text-sm font-medium text-gray-700 border-b">
+																											Активност
+																										</th>
+																										<th className="px-4 py-2 text-left text-sm font-medium text-gray-700 border-b">
+																											Процент од оценка
+																										</th>
+																									</tr>
+																								</thead>
+																								<tbody>
+																									{method.components.map(
+																										(component, cidx) => (
+																											<tr key={cidx}>
+																												<td className="px-4 py-2 text-sm text-gray-900 border-b">
+																													{
+																														EVALUATION_MAP_TO_MK[
+																															(component.category
+																																.charAt(0)
+																																.toUpperCase() +
+																																component.category.slice(
+																																	1
+																																)) as keyof typeof EVALUATION_MAP_TO_MK
+																														]
+																													}
+																												</td>
+																												<td className="px-4 py-2 text-sm text-gray-900 border-b">
+																													{component.percentage}
+																													%
+																												</td>
+																											</tr>
+																										)
+																									)}
+																								</tbody>
+																							</table>
+																						</div>
+																					</div>
+																				</div>
+																			</div>
+																		)
+																	)}
+																	<p className="text-gray-800">
+																		Услов за потпис: <span>TODO</span>
+																	</p>
+																</div>
+															) : null)}
+													</div>
+												</div>
+											)}
+										</>
+									)}
+									{reviews.other.length > 0 && (
+										<div>
+											<h3 className="text-lg font-medium mb-4 text-gray-900">
+												Останати информации
+											</h3>
+
+											<div className="space-y-4">
+												{reviews.other.map((review) => (
+													<div className="border border-gray-200 rounded-lg p-4">
+														<div className="flex items-start justify-between mb-3">
+															<div className="flex items-center space-x-2">
+																<span className="text-sm text-gray-600">
+																	Индекс: {review.review.student}
+																</span>
+																<span className="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">
+																	{review.category}
+																</span>
+																{reviews.evaluation?.review.is_confirmed ? (
+																	<div className="flex items-center text-green-600">
+																		{/* <CheckCircle className="w-4 h-4 mr-1" /> */}
+																		<span className="text-sm">Потврдено</span>
+																	</div>
+																) : (
+																	<div className="flex items-center text-red-600">
+																		<span className="text-sm">Непотврдено</span>
+																	</div>
+																)}
+															</div>
+															<div className="flex items-center space-x-1">
+																<button className="flex items-center justify-center w-6 h-6 text-gray-400 hover:text-green-600 hover:bg-green-50 rounded">
+																	<ArrowUp className="w-4 h-4" />
+																</button>
+																<span className="text-sm font-medium text-gray-700 min-w-[20px] text-center">
+																	{review.review.votes_count}
+																</span>
+																<button className="flex items-center justify-center w-6 h-6 text-gray-400 hover:text-red-600 hover:bg-red-50 rounded">
+																	<ArrowDown className="w-4 h-4" />
+																</button>
+															</div>
+														</div>
+														<p className="text-gray-700 text-sm">
+															{review.content}
+														</p>
+													</div>
+												))}
+											</div>
+										</div>
+									)}
+								</>
+							)}
+							<div className="mt-6 pt-4 border-gray-200">
+								<button className="bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition-colors">
+									Сподели мислење
+								</button>
+							</div>
+						</div>
 					</div>
 
@@ -339,12 +576,4 @@
 							)}
 						</div>
-						{/* 
-						<div className="bg-white rounded-lg shadow-sm p-6">
-							<div className="space-y-3">
-								<button className="w-full bg-gray-100 hover:bg-gray-200 text-gray-800 font-medium py-3 px-4 rounded-lg transition-colors">
-									Додај во омилени
-								</button>
-							</div>
-						</div> */}
 					</div>
 				</div>
