Index: backend/auth_form/migrations/0013_student_total_credits.py
===================================================================
--- backend/auth_form/migrations/0013_student_total_credits.py	(revision 6f24e2e8ea2104cd785ee0b11f8a64f93b7cb91c)
+++ backend/auth_form/migrations/0013_student_total_credits.py	(revision 6f24e2e8ea2104cd785ee0b11f8a64f93b7cb91c)
@@ -0,0 +1,18 @@
+# Generated by Django 5.1.7 on 2025-06-04 12:19
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('auth_form', '0012_remove_student_level_credits_and_more'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='student',
+            name='total_credits',
+            field=models.PositiveIntegerField(null=True),
+        ),
+    ]
Index: backend/auth_form/models.py
===================================================================
--- backend/auth_form/models.py	(revision 93083d99b5c0b9b11d05313e98cff197f2f930e4)
+++ backend/auth_form/models.py	(revision 6f24e2e8ea2104cd785ee0b11f8a64f93b7cb91c)
@@ -65,5 +65,5 @@
     passed_subjects = models.ManyToManyField('subjects.subject', related_name="passed_subjects", blank=True)
     has_extracurricular = models.BooleanField(default=False, null=True)
-    # total_credits = models.PositiveIntegerField(null=True)
+    total_credits = models.PositiveIntegerField(null=True)
     # level_credits = ArrayField(models.PositiveIntegerField(null=True), null=True, blank=True)
     
Index: frontend/src/components/StudentForm/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm/StudentForm.tsx	(revision 93083d99b5c0b9b11d05313e98cff197f2f930e4)
+++ frontend/src/components/StudentForm/StudentForm.tsx	(revision 6f24e2e8ea2104cd785ee0b11f8a64f93b7cb91c)
@@ -90,4 +90,5 @@
 	const [hasExtracurricular, setHasExtracurricular] = useState(false);
 	const [invalidSubjects, setInvalidSubjects] = useState<Subject[]>([]);
+	const [totalCredits, setTotalCredits] = useState(-1);
 
 	// Update form when formData changes (e.g., after fetching user data)
@@ -199,4 +200,5 @@
 			hasExtracurricular,
 			setInvalidSubjects,
+			setTotalCredits,
 		});
 		if (Object.keys(errors).length > 0) {
@@ -238,4 +240,5 @@
 			passed_subjects_per_semester: mapToID(passedSubjectsPerSemester),
 			has_extracurricular: hasExtracurricular,
+			total_credits: totalCredits,
 		};
 		try {
Index: frontend/src/components/StudentForm/SubjectsSelector.tsx
===================================================================
--- frontend/src/components/StudentForm/SubjectsSelector.tsx	(revision 93083d99b5c0b9b11d05313e98cff197f2f930e4)
+++ frontend/src/components/StudentForm/SubjectsSelector.tsx	(revision 6f24e2e8ea2104cd785ee0b11f8a64f93b7cb91c)
@@ -1,7 +1,7 @@
-import { Programs, Subject } from "../types";
+import { StudyTrack, Subject } from "../types";
 import { LatinToCyrillic } from "./utils";
 
 interface SubjectsSelectorProps {
-	studyTrack: Programs | "";
+	studyTrack: StudyTrack | "";
 	year: number;
 	filteredMandatorySubjects: Subject[];
Index: frontend/src/components/StudentForm/utils.ts
===================================================================
--- frontend/src/components/StudentForm/utils.ts	(revision 93083d99b5c0b9b11d05313e98cff197f2f930e4)
+++ frontend/src/components/StudentForm/utils.ts	(revision 6f24e2e8ea2104cd785ee0b11f8a64f93b7cb91c)
@@ -70,4 +70,5 @@
 	hasExtracurricular,
 	setInvalidSubjects,
+	setTotalCredits,
 }: {
 	index: string;
@@ -78,4 +79,5 @@
 	hasExtracurricular: boolean;
 	setInvalidSubjects: Dispatch<SetStateAction<Subject[]>>;
+	setTotalCredits: Dispatch<SetStateAction<number>>;
 }) => {
 	const errors: { [key: string]: string } = {};
@@ -95,5 +97,9 @@
 
 	const passedSubjects = getPassedSubjects(passedSubjectsPerSemester);
-	const invalid = checkPrerequisites(passedSubjects, hasExtracurricular);
+	const invalid = checkPrerequisites(
+		passedSubjects,
+		hasExtracurricular,
+		setTotalCredits
+	);
 	if (invalid.length != 0) {
 		setInvalidSubjects(invalid);
@@ -129,5 +135,6 @@
 export const checkPrerequisites = (
 	passedSubjects: Subject[],
-	hasExtracurricular: boolean
+	hasExtracurricular: boolean,
+	setTotalCredits: Dispatch<SetStateAction<number>>
 ) => {
 	passedSubjects.sort(
@@ -168,4 +175,7 @@
 		}
 	}
+
+	if (invalidSubjects.length == 0) setTotalCredits(totalCredits);
+
 	return invalidSubjects;
 };
