Index: backend/auth_form/models.py
===================================================================
--- backend/auth_form/models.py	(revision 4627c020374c42dee5c67e7eba58012c3fe07f5e)
+++ backend/auth_form/models.py	(revision 4bc55a50ed2c05a97163ab7df7ebcbf0d26b3c92)
@@ -15,3 +15,37 @@
 
 class Student(models.Model):
-    pass
+    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='student_profile')
+    index = models.CharField(max_length=20, unique=True)
+
+    STUDY_TRACK_CHOICES = [
+        ('SIIS', 'SIIS'),
+        ('SEIS', 'SEIS'),
+        ('KI', 'KI'),
+        ('KN', 'KN'),
+        ('IMB', 'IMB'),
+        ('PIT', 'PIT'),
+        ('SSP', 'SSP')
+    ]
+    study_track = models.CharField(max_length=20, choices=STUDY_TRACK_CHOICES)
+
+    current_year = models.PositiveIntegerField()
+    study_effort = models.PositiveIntegerField(help_text="Hours per week")
+
+    preferred_domains = models.JSONField(default=list)
+    preferred_technologies = models.JSONField(default=list)
+    preferred_evaluation = models.JSONField(default=list)
+    favorite_professors = models.JSONField(default=list)
+
+    # finish the subjects relation logic
+    passed_subjects = models.ManyToManyField('subjects.subject', related_name="passed_subjects")
+
+    def update_info(self, new_preferences):
+        self.preferred_domains = new_preferences
+        self.save()
+
+    def get_recommendations(self):
+        # Placeholder for recommendation logic
+        pass
+
+    def get_user_info(self):
+        return self
