Index: iknow-api/Controllers/UserController.cs
===================================================================
--- iknow-api/Controllers/UserController.cs	(revision 39f76a913d87c2aaad3ab3e11cb09f9857de636e)
+++ iknow-api/Controllers/UserController.cs	(revision 2e17229353155473cf2d2d9d350c50ee7be12fe2)
@@ -31,29 +31,4 @@
 
         }
-        //"semesters": [
-        //    {
-        //      "id": 1,
-        //      "semester": "Зимски(2025/2026)",
-        //      "direction": "PIT23(2023)",
-        //      "quota": "Не плаќа-Редовен(2023)",
-        //      "note": "",
-        //      "studentCom": "Ги имам си...",
-        //      "sum": "0,30",
-        //      "paid": "0,00",
-        //      "ukim": "",
-        //      "createdOn": "22.09.2025",
-        //      "dateChanged": "22.09.2025",
-        //      "credits": "0,01",
-        //      "type": "Ред.",
-        //      "doc": "Не",
-        //      "doc1": "Не",
-        //      "verified": "Не",
-        //      "taxes": "0,00",
-        //      "signatures": "0/5",
-        //      "status": "валиден",
-        //      "completed": "Не"
-        //    },
-        //    ]
-        //}
         [Authorize]
         [HttpGet("getSemesters")]
@@ -67,11 +42,11 @@
                 var userData = await _userService.GetUserSemesters(token);
                 var results = new List<object>();
-                
-                for(int i=0; i<userData.Count; i++)
+
+                for (int i = 0; i < userData.Count; i++)
                 {
                     var newResult = new
                     {
                         id = userData[i].Id,
-                        //semester = (userData[i].Type == 0 ? "Зимски" : "Летен") + $"({userData[i].Year}/{userData[i].Year + 1})",
+                        semester = (userData[i].Semester.Type == 0 ? "Зимски" : "Летен") + $"({userData[i].Semester.Year}/{userData[i].Semester.Year + 1})",
                         direction = userData[i].Major?.Name ?? "",
                         quota = userData[i].QuotaType.ToString(),
@@ -99,42 +74,145 @@
             }
             return null;
-
-        }
-                //        {
-                //    "user": [
-                //        {
-                //            "id": 2,
-                //            "userId": 1,
-                //            "user": null,
-                //            "year": 2025,
-                //            "type": 1,
-                //            "quotaType": "privatna",
-                //            "majorId": 1,
-                //            "major": {
-                //                "id": 1,
-                //                "name": "PIT(2023)",
-                //                "subjects": null
-                //            },
-                //            "users": null,
-                //            "semesterSubjects": null
-                //        },
-                //        {
-                //    "id": 1,
-                //            "userId": 1,
-                //            "user": null,
-                //            "year": 2025,
-                //            "type": 0,
-                //            "quotaType": "privatna",
-                //            "majorId": 1,
-                //            "major": {
-                //        "id": 1,
-                //                "name": "PIT(2023)",
-                //                "subjects": null
-                //            },
-                //            "users": null,
-                //            "semesterSubjects": null
-                //        }
-                //    ]
-                //}
+        }
+
+        [Authorize]
+        [HttpGet("getSubjects")]
+        public async Task<IActionResult> getSubjects()
+        {
+            var authHeader = Request.Headers["Authorization"].ToString();
+            var token = authHeader.Substring("Bearer ".Length).Trim();
+            // token = your JWT
+            var userData = await _userService.GetUserSemesters(token);
+            var results = new List<object>();
+            var random = new Random();
+            for (int i = 0; i < userData.Count; i++)
+            {
+                var newResult = new
+                {
+                    id = userData[i].Id,
+                    name = (userData[i].Semester.Type == 0 ? "Зимски" : "Летен") + $"({userData[i].Semester.Year}/{userData[i].Semester.Year + 1})",
+                    status = "валиден",
+                    serviceNumber = 1000000 + random.Next(10000, 100000)
+                };
+                results.Add(newResult);
+            }
+                
+            
+            var subjectsBySemester = new Dictionary<string, List<object>>();
+
+            foreach (var enrollment in userData)
+            {
+                // Create semester key like "winter_2025_2026" or "summer_2025_2026"
+                var semesterType = enrollment.Semester.Type == 0 ? "winter" : "summer";
+                var semesterKey = $"{semesterType}_{enrollment.Semester.Year}_{enrollment.Semester.Year + 1}";
+
+                // Initialize list if this semester key doesn't exist
+                if (!subjectsBySemester.ContainsKey(semesterKey))
+                {
+                    subjectsBySemester[semesterKey] = new List<object>();
+                }
+
+                // Add subjects from this semester enrollment
+                if (enrollment.SemesterSubjects != null)
+                {
+                    foreach (var semesterSubject in enrollment.SemesterSubjects)
+                    {
+                        var subject = semesterSubject.Subject;
+                        if (subject != null)
+                        {
+                            var subjectData = new
+                            {
+                                id = subject.Id,
+                                code = subject.Code ?? "",
+                                hours = "2+4", // You may need to add this to your Subject model
+                                kojPat = 1, // You may need to add this field
+                                name = subject.Name ?? "",
+                                semester = 5, // You may need to calculate or add this field
+                                status = "Зад.", // Determine based on PassedSubject or other logic
+                                signature = semesterSubject.Signature ? "Да" : "Не",
+                                group = "", // You may need to add this field
+                                professor = semesterSubject.Professor?.Name + " " + semesterSubject.Professor?.Surname ?? "",
+                            };
+                            subjectsBySemester[semesterKey].Add(subjectData);
+                        }
+                    }
+                }
+                
+            }
+            var currentSemester = userData.FirstOrDefault(); // Get the most recent/current semester
+            var semesterTypeGlobal = currentSemester.Semester.Type == 0 ? "winter" : "summer";
+            var semesterData = new
+            {
+                id = $"{semesterTypeGlobal}_{currentSemester.Semester.Year}_{currentSemester.Semester.Year + 1}",
+                name = (currentSemester.Semester.Type == 0 ? "Зимски" : "Летен") + $" ({currentSemester.Semester.Year}/{currentSemester.Semester.Year + 1})",
+                status = "валиден",
+                serviceNumber = (1000000 + random.Next(10000, 100000)).ToString(),
+                ticketNumber = random.Next(100000, 1000000).ToString(),
+                debt = "0,00",
+                financialInfo = new
+                {
+                    sum = 1,
+                    paid = "0,00",
+                    due = "0,00",
+                    materialCosts = "Осигурување, Административна такса, Тетратки (испити), зимски семестар: 1000,00",
+                    credits = "30,00",
+                    totalCredits = "30,00",
+                    MKSA = "750,00",
+                    electronicRegistration = "100,00",
+                    eUKIM = "350,00",
+                    bankProvision = "25,00",
+                    total = "2226,00"
+                }
+            };
+            if (userData == null) return Ok(new { info = "can't get info" });
+            //return Ok(new { semester = userData });
+            return Ok(new { semesters = results, currentSemestar = semesterData, subjectsBySemester = subjectsBySemester });
+        }
+
+        [Authorize]
+        [HttpGet("getPassedSubjects")]
+        public async Task<IActionResult> getPassedSubjects()
+        {
+            var authHeader = Request.Headers["Authorization"].ToString();
+            if (!authHeader.StartsWith("Bearer "))
+                return Unauthorized();
+
+            var token = authHeader.Substring("Bearer ".Length).Trim();
+            var passedSubjects = await _userService.GetUserPassedSubjects(token);
+
+            if (passedSubjects == null || !passedSubjects.Any())
+                return Ok(new { info = "No passed subjects found", passedSubjects = new List<object>() });
+
+            var results = new List<object>();
+
+            foreach (var passed in passedSubjects)
+            {
+                if (passed.SemesterSubject?.Subject != null)
+                {
+                    var result = new
+                    {
+                        id = passed.Id,
+                        subjectId = passed.SemesterSubject.Subject.Id,
+                        code = passed.SemesterSubject.Subject.Code ?? "",
+                        subject = passed.SemesterSubject.Subject.Name ?? "",
+                        credits = passed.SemesterSubject.Subject.AwardedCredits ?? 0,
+                        grade = (int)passed.Grade,
+                        gradeText = passed.Grade.ToString(),
+                        date = passed.DatePassed.ToString("dd.MM.yyyy"),
+                        semester = passed.SemesterSubject.EnrolledSemester?.Semester != null
+                            ? (passed.SemesterSubject.EnrolledSemester.Semester.Type == 0 ? "Зимски" : "Летен") + 
+                              $" ({passed.SemesterSubject.EnrolledSemester.Semester.Year}/{passed.SemesterSubject.EnrolledSemester.Semester.Year + 1})"
+                            : "",
+                        professor = passed.SemesterSubject.Professor != null
+                            ? $"{passed.SemesterSubject.Professor.Name} {passed.SemesterSubject.Professor.Surname}".Trim()
+                            : ""
+                    };
+                    results.Add(result);
+                }
+            }
+
+            return Ok(new { passedSubjects = results });
+        }
+
     }
 }
