Index: backend/auth_form/models.py
===================================================================
--- backend/auth_form/models.py	(revision 232f57309b4ed02dda05c09b4bbbad9928071023)
+++ backend/auth_form/models.py	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
@@ -62,4 +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)
 
Index: frontend/src/components/Navbar.tsx
===================================================================
--- frontend/src/components/Navbar.tsx	(revision 232f57309b4ed02dda05c09b4bbbad9928071023)
+++ frontend/src/components/Navbar.tsx	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
@@ -10,5 +10,5 @@
     navigate("/");
   };
-  console.log(isAuthenticated); // Log to check state changes
+
 
   return (
Index: frontend/src/components/StudentForm.tsx
===================================================================
--- frontend/src/components/StudentForm.tsx	(revision 232f57309b4ed02dda05c09b4bbbad9928071023)
+++ frontend/src/components/StudentForm.tsx	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
@@ -1,20 +1,17 @@
-import { useState, useEffect } from "react";
+import { useState } from "react";
 import { useAuth } from "../hooks/useAuth";
-
-interface Subject {
-  id: number;
-  name: string;
-  study_track: string;
-  year: number;
-  professors: string[];
-}
+import { StudentData } from "./types";
+import { Subject } from "./types";
+import { Programs } from "./types";
 
 interface StudentFormProps {
-  formData: any;
+  formData: StudentData | null;
   subjects: Subject[];
   professors: string[];
 }
 
-const STUDY_TRACKS = ["SIIS", "SEIS", "PIT", "KI", "KN", "IMB"];
+// IE apparently is not valid in the backend, SEIS is
+
+const STUDY_TRACKS = ["SIIS23", "IE23", "PIT23", "KI23", "KN23", "IMB23"];
 const STUDY_EFFORT = [1, 2, 3, 4, 5];
 const YEARS = [1, 2, 3, 4];
@@ -27,7 +24,9 @@
 
   const [index, setIndex] = useState(formData?.index || "");
-  const [studyTrack, setStudyTrack] = useState(formData?.study_track || "");
+  const [studyTrack, setStudyTrack] = useState<Programs | "">(
+    (formData?.study_track as Programs) || ""
+  );
   const [year, setYear] = useState(formData?.current_year || 1);
-  const [passedSubjects, setPassedSubjects] = useState<number[]>(
+  const [passedSubjects, setPassedSubjects] = useState<Subject[]>(
     formData?.passed_subjects || []
   );
@@ -39,5 +38,7 @@
     formData?.preferred_technologies || []
   );
-  const [evaluation, setEvaluation] = useState(formData?.preferred_evaluation || "");
+  const [evaluation, setEvaluation] = useState(
+    formData?.preferred_evaluation || ""
+  );
   const [favoriteProfs, setFavoriteProfs] = useState<string[]>(
     formData?.favorite_professors || []
@@ -56,20 +57,29 @@
   };
 
+  const toggleSubject = (subject: Subject) => {
+    const exists = passedSubjects.some((s) => s.id === subject.id);
+    if (exists) {
+      setPassedSubjects(passedSubjects.filter((s) => s.id !== subject.id));
+    } else {
+      setPassedSubjects([...passedSubjects, subject]);
+    }
+  };
+
   const handleSubmit = async (e: React.FormEvent) => {
     e.preventDefault();
-
+    
     const payload = {
       index,
       study_track: studyTrack,
       current_year: year,
-      passed_subjects: passedSubjects,
+      passed_subjects: passedSubjects.map(subject => subject.id),
       study_effort: studyEffort,
       preferred_domains: domains,
       preferred_technologies: technologies,
-      preferred_evaluation: evaluation,
+      preferred_evaluation: [evaluation],
       favorite_professors: favoriteProfs,
     };
-
-    const method = formData ? "PUT" : "POST";
+    
+    const method = formData?.current_year ? "PUT" : "POST";
     const endpoint = "http://localhost:8000/auth/form/";
 
@@ -86,9 +96,14 @@
     if (res.ok) alert("Form submitted successfully!");
     else alert("Error submitting form.");
+    console.log(data);
   };
 
-  const filteredSubjects = subjects.filter(
-    (subj) => subj.study_track === studyTrack && subj.year <= year
-  );
+  const filteredSubjects = studyTrack
+    ? subjects.filter(
+        (subj) =>
+          subj.subject_info.mandatory_for.includes(studyTrack) &&
+          subj.subject_info.semester <= year * 2
+      )
+    : [];
 
   return (
@@ -104,5 +119,5 @@
       <select
         value={studyTrack}
-        onChange={(e) => setStudyTrack(e.target.value)}
+        onChange={(e) => setStudyTrack(e.target.value as Programs | "")}
         className="input"
       >
@@ -130,19 +145,58 @@
         <h3 className="font-semibold mb-1">Passed Subjects</h3>
         <div className="flex flex-wrap gap-2">
-          {filteredSubjects.map((subject) => (
-            <button
-              type="button"
-              key={subject.id}
-              onClick={() =>
-                toggleSelection(subject.id, setPassedSubjects, passedSubjects)
-              }
-              className={`px-2 py-1 border rounded ${
-                passedSubjects.includes(subject.id) ? "bg-blue-200" : ""
-              }`}
-            >
-              {subject.name}
-            </button>
-          ))}
-        </div>
+          {filteredSubjects.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 scale-105"
+                      : "bg-white text-gray-800 border-gray-300 hover:bg-gray-100"
+                  }`}
+                aria-pressed={isSelected}
+              >
+                {isSelected && (
+                  <span className="flex items-center justify-center text-white">
+                    <svg
+                      className="w-4 h-4"
+                      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
+          value={studyEffort}
+          onChange={(e) => setStudyEffort(e.target.value)}
+          className="input"
+        >
+          <option value="">Select effort</option>
+          {STUDY_EFFORT.map((effort) => (
+            <option key={effort} value={effort}>
+              {effort}
+            </option>
+          ))}
+        </select>
       </div>
 
Index: frontend/src/components/types.ts
===================================================================
--- frontend/src/components/types.ts	(revision 232f57309b4ed02dda05c09b4bbbad9928071023)
+++ frontend/src/components/types.ts	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
@@ -6,5 +6,18 @@
 	name: string;
 	abstract: string;
-	info: SubjectInfo;
+	subject_info: SubjectInfo;
+}
+
+export interface StudentData {
+	id: number;
+	index: string;
+	study_track: Programs;
+	current_year: number;
+	passed_subjects: Subject[];
+  	study_effort: string,
+  	preferred_domains: string[],
+  	preferred_technologies: string[],
+  	preferred_evaluation: string[],
+  	favorite_professors: string[]
 }
 
Index: frontend/src/context/AuthProvider.tsx
===================================================================
--- frontend/src/context/AuthProvider.tsx	(revision 232f57309b4ed02dda05c09b4bbbad9928071023)
+++ frontend/src/context/AuthProvider.tsx	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
@@ -6,5 +6,4 @@
 }) => {
   const [token, setToken] = useState<string | null>(localStorage.getItem("token"));
-
   useEffect(() => {
     const storedToken = localStorage.getItem("token");
@@ -14,4 +13,5 @@
   }, [token]);
   const login = (newToken: string) => {
+    console.log("Logging in with token:", newToken);
     localStorage.setItem("token", newToken);
     setToken(newToken);
Index: frontend/src/pages/Account.tsx
===================================================================
--- frontend/src/pages/Account.tsx	(revision 232f57309b4ed02dda05c09b4bbbad9928071023)
+++ frontend/src/pages/Account.tsx	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
@@ -2,18 +2,10 @@
 import { useAuth } from "../hooks/useAuth";
 import StudentForm from "../components/StudentForm";
-
-interface Subject {
-  id: number;
-  name: string;
-  study_track: string;
-  year: number;
-  subject_info: {
-    professors: string[];
-  }
-}
+import { Subject } from "../components/types";
+import { StudentData } from "../components/types";
 
 const Account = () => {
   const { token } = useAuth();
-  const [formData, setFormData] = useState<any>(null);
+  const [formData, setFormData] = useState<StudentData | null>(null);
   const [subjects, setSubjects] = useState<Subject[]>([]);
   const [professors, setProfessors] = useState<string[]>([]);
@@ -21,5 +13,5 @@
   useEffect(() => {
     const fetchData = async () => {
-      const resForm = await fetch("http://localhost:8000/auth/form", {
+      const resForm = await fetch("http://localhost:8000/auth/form/", {
         headers: { Authorization: `Bearer ${token}` },
       });
@@ -30,14 +22,14 @@
 
       const resSubjects = await fetch("http://localhost:8000/subjects");
-      const subJson = await resSubjects.json();
       if (resSubjects.ok) {
+        const subJson: Subject[] = await resSubjects.json();
         setSubjects(subJson || []);
-        console.log(subJson)
-        const allProfessors = subJson.subject_info.professors
-          .flatMap((subject: Subject) => subject.subject_info.professors);
-        console.log(allProfessors)
+        const allProfessors: string[] = subJson
+          .flatMap((subject: Subject) => subject.subject_info.professors)
+          .filter((p): p is string => typeof p === "string");
+
         const uniqueProfessors = Array.from(new Set(allProfessors));
-        console.log(uniqueProfessors)
-        setProfessors(uniqueProfessors);
+        const filteredProfessors = uniqueProfessors.filter((prof) => prof.trim().toLowerCase() !== 'сите професори');
+        setProfessors(filteredProfessors);
       }
     };
@@ -49,5 +41,9 @@
     <div className="p-4">
       <h1 className="text-2xl mb-4">Account info</h1>
-      <StudentForm formData={formData} subjects={subjects} professors={professors} />
+      <StudentForm
+        formData={formData}
+        subjects={subjects}
+        professors={professors}
+      />
     </div>
   );
Index: frontend/src/pages/Login.tsx
===================================================================
--- frontend/src/pages/Login.tsx	(revision 232f57309b4ed02dda05c09b4bbbad9928071023)
+++ frontend/src/pages/Login.tsx	(revision a0ab1a746950a597da8e8f511dca79a60d14d3aa)
@@ -8,4 +8,9 @@
   email: string;
   password: string;
+}
+
+interface AuthResponse {
+  
+  access: string;
 }
 
@@ -40,5 +45,7 @@
         }
       );
-      const token = response.data.token;
+      const data = response.data;
+      // Fix this error: ts related
+      const token = data.access;
       login(token);
       navigate("/");
