Creates an instance of CourseService.
Repository for Course entities
Repository for StudentCourseGrade entities
Service for user-related operations
Service for student-course relationship operations
Service for tracking grade history changes
Adds a grade for a specific student in a course. Only the teacher of the course can add grades.
The ID of the course
The email of the student receiving the grade
The numeric grade value
The teacher adding the grade
The newly created grade object
Creates a new course with the specified teacher as the owner.
The title of the course
The description of the course
The email of the teacher creating the course
The newly created course entity
Marks a grade as deleted (soft delete). Only the teacher of the course can delete grades. The deletion is recorded in grade history.
The ID of the grade to delete
The teacher deleting the grade
True if the grade was successfully marked as deleted
Deletes a course from the system. Only the teacher who created the course is authorized to delete it.
The title of the course to delete
The email of the teacher attempting to delete the course
A success message upon successful deletion
Edits an existing grade for a student. Only the teacher of the course can edit grades. The change is recorded in grade history.
The ID of the grade to edit
The new grade value
The teacher editing the grade
True if the grade was successfully updated
Enrolls a student in a specific course.
The title of the course
The email of the student to enroll
The email of the teacher authorizing the enrollment
The result of the enrollment operation
Finds a course by its title, including related teacher and student information.
The title of the course to find
The course entity if found, otherwise null
Retrieves all courses in which a specific student is enrolled.
The email of the student
An array of course information objects
Retrieves all courses taught by a specific teacher.
The email of the teacher
An array of course information objects
Retrieves detailed information about a specific course, with access control based on user role. Teachers see all student information and grades, while students only see their own grades.
The ID of the course to retrieve
The user requesting the course information
Course details including teacher info and conditionally student info and grades
Retrieves the list of students enrolled in a specific course.
The title of the course
An array of student information objects
Submits multiple grades for students in a course at once. Only the teacher of the course can submit grades.
The ID of the course
Array of objects containing student emails and their grades
The teacher submitting the grades
A success message upon successful submission
Service responsible for managing course-related operations in the gradebook system. Handles course creation, student enrollment, grade management, and course information retrieval.