Index: backend/auth_form/migrations/0005_alter_student_favorite_professors.py
===================================================================
--- backend/auth_form/migrations/0005_alter_student_favorite_professors.py	(revision dcb7d6b075cf306d5b4f3449185a9b498f4e3cdd)
+++ backend/auth_form/migrations/0005_alter_student_favorite_professors.py	(revision dcb7d6b075cf306d5b4f3449185a9b498f4e3cdd)
@@ -0,0 +1,19 @@
+# Generated by Django 5.1.7 on 2025-05-04 18:04
+
+import django.contrib.postgres.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('auth_form', '0004_alter_student_user'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='student',
+            name='favorite_professors',
+            field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=64), blank=True, null=True, size=None),
+        ),
+    ]
Index: backend/auth_form/migrations/0006_alter_student_study_track.py
===================================================================
--- backend/auth_form/migrations/0006_alter_student_study_track.py	(revision dcb7d6b075cf306d5b4f3449185a9b498f4e3cdd)
+++ backend/auth_form/migrations/0006_alter_student_study_track.py	(revision dcb7d6b075cf306d5b4f3449185a9b498f4e3cdd)
@@ -0,0 +1,18 @@
+# Generated by Django 5.1.7 on 2025-05-04 18:05
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('auth_form', '0005_alter_student_favorite_professors'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='student',
+            name='study_track',
+            field=models.CharField(blank=True, choices=[('SIIS23', 'SIIS'), ('IE23', 'IE'), ('KI23', 'KI'), ('KN23', 'KN'), ('IMB23', 'IMB'), ('PIT23', 'PIT')], max_length=20, null=True),
+        ),
+    ]
Index: backend/auth_form/models.py
===================================================================
--- backend/auth_form/models.py	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
+++ backend/auth_form/models.py	(revision dcb7d6b075cf306d5b4f3449185a9b498f4e3cdd)
@@ -48,5 +48,5 @@
     STUDY_TRACK_CHOICES = [
         ('SIIS23', 'SIIS'),
-        ('SEIS23', 'SEIS'),
+        ('IE23', 'IE'),
         ('KI23', 'KI'),
         ('KN23', 'KN'),
@@ -62,6 +62,5 @@
     preferred_technologies = ArrayField(models.CharField(max_length=64), null=True, blank=True)
     preferred_evaluation = ArrayField(models.CharField(max_length=16), null=True, blank=True)
-    # update max_length to 64
-    favorite_professors = ArrayField(models.CharField(max_length=16), null=True, blank=True)
+    favorite_professors = ArrayField(models.CharField(max_length=64), null=True, blank=True)
 
     passed_subjects = models.ManyToManyField('subjects.subject', related_name="passed_subjects", blank=True)
Index: frontend/src/components/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm.tsx	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
+++ frontend/src/components/StudentForm.tsx	(revision dcb7d6b075cf306d5b4f3449185a9b498f4e3cdd)
@@ -10,6 +10,4 @@
   professors: string[];
 }
-
-// IE apparently is not valid in the backend, SEIS is
 
 const STUDY_TRACKS = ["SIIS23", "IE23", "PIT23", "KI23", "KN23", "IMB23"];
@@ -68,10 +66,10 @@
   const handleSubmit = async (e: React.FormEvent) => {
     e.preventDefault();
-    
+
     const payload = {
       index,
       study_track: studyTrack,
       current_year: year,
-      passed_subjects: passedSubjects.map(subject => subject.id),
+      passed_subjects: passedSubjects.map((subject) => subject.id),
       study_effort: studyEffort,
       preferred_domains: domains,
@@ -80,5 +78,5 @@
       favorite_professors: favoriteProfs,
     };
-    
+
     const method = formData?.current_year ? "PUT" : "POST";
     const endpoint = "http://localhost:8000/auth/form/";
@@ -99,5 +97,5 @@
   };
 
-  const filteredSubjects = studyTrack
+  const filteredMandatorySubjects = studyTrack
     ? subjects.filter(
         (subj) =>
@@ -106,10 +104,16 @@
       )
     : [];
-
+  const filteredElectiveSubjects = studyTrack
+    ? subjects.filter(
+        (subj) =>
+          subj.subject_info.elective_for.includes(studyTrack) &&
+          subj.subject_info.semester <= year * 2
+      )
+    : [];
   return (
     <form onSubmit={handleSubmit} className="space-y-4">
       <input
         type="text"
-        placeholder="Index"
+        placeholder="Индекс"
         value={index}
         onChange={(e) => setIndex(e.target.value)}
@@ -137,5 +141,5 @@
         {YEARS.map((y) => (
           <option key={y} value={y}>
-            {y}. year
+            {y}. година
           </option>
         ))}
@@ -143,7 +147,7 @@
 
       <div>
-        <h3 className="font-semibold mb-1">Passed Subjects</h3>
+        <h3 className="font-semibold mb-1">Положени предмети</h3>
         <div className="flex flex-wrap gap-2">
-          {filteredSubjects.map((subject) => {
+          {filteredMandatorySubjects.map((subject) => {
             const isSelected = passedSubjects.some((s) => s.id === subject.id);
             return (
@@ -152,10 +156,11 @@
                 key={subject.id}
                 onClick={() => toggleSubject(subject)}
-                className={`flex items-center gap-6 px-3 py-2 border rounded-md transition-all duration-200 ease-in-out
+                className={`flex items-center gap-6 px-3 py-2 border rounded-md transition-all duration-200 ease-in-out 
                   ${
                     isSelected
-                      ? "bg-green-500 text-white border-green-600 shadow-md transform scale-105"
+                      ? "bg-green-500 text-white border-green-600 shadow-md transform "
                       : "bg-white text-gray-800 border-gray-300 hover:bg-gray-100"
                   }`}
+                // for accessibility
                 aria-pressed={isSelected}
               >
@@ -163,5 +168,5 @@
                   <span className="flex items-center justify-center text-white">
                     <svg
-                      className="w-4 h-4"
+                      className="w-6 h-6"
                       fill="none"
                       stroke="currentColor"
@@ -186,4 +191,48 @@
 
       <div>
+        <h3 className="font-semibold mb-1">Положени изборни предмети</h3>
+        <div className="flex flex-wrap gap-2">
+          {filteredElectiveSubjects.map((subject) => {
+            const isSelected = passedSubjects.some((s) => s.id === subject.id);
+            return (
+              <button
+                type="button"
+                key={subject.id}
+                onClick={() => toggleSubject(subject)}
+                className={`flex items-center gap-6 px-3 py-2 border rounded-md transition-all duration-200 ease-in-out 
+                  ${
+                    isSelected
+                      ? "bg-green-500 text-white border-green-600 shadow-md transform "
+                      : "bg-white text-gray-800 border-gray-300 hover:bg-gray-100"
+                  }`}
+                // for accessibility
+                aria-pressed={isSelected}
+              >
+                {isSelected && (
+                  <span className="flex items-center justify-center text-white">
+                    <svg
+                      className="w-6 h-6"
+                      fill="none"
+                      stroke="currentColor"
+                      viewBox="0 0 24 24"
+                      xmlns="http://www.w3.org/2000/svg"
+                    >
+                      <path
+                        strokeLinecap="round"
+                        strokeLinejoin="round"
+                        strokeWidth="2"
+                        d="M5 13l4 4L19 7"
+                      ></path>
+                    </svg>
+                  </span>
+                )}
+                {subject.name}
+              </button>
+            );
+          })}
+        </div>
+      </div>
+
+      <div>
         <h3 className="font-semibold mb-1">Study Effort</h3>
         <select
@@ -256,5 +305,5 @@
 
       <div>
-        <h3 className="font-semibold mb-1">Favorite Professors</h3>
+        <h3 className="font-semibold mb-1">Омилени професори</h3>
         <div className="mt-2 flex flex-wrap gap-2">
           {professors.map((prof) => (
Index: frontend/src/pages/Account.tsx
===================================================================
--- frontend/src/pages/Account.tsx	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
+++ frontend/src/pages/Account.tsx	(revision dcb7d6b075cf306d5b4f3449185a9b498f4e3cdd)
@@ -20,8 +20,9 @@
         setFormData(formJson);
       }
-
+      console.log(formJson);
       const resSubjects = await fetch("http://localhost:8000/subjects");
       if (resSubjects.ok) {
         const subJson: Subject[] = await resSubjects.json();
+        console.log(subJson);
         setSubjects(subJson || []);
         const allProfessors: string[] = subJson
