Commit 738a421e authored by Muhammad Suleman's avatar Muhammad Suleman

Merge branch 'teacherService' into 'master'

Teacher service

See merge request !6
parents 3e163747 490fd3b0
package com.school.project.controller;
import com.school.project.dto.teacher.TeacherCourseAssignDTO;
import com.school.project.service.admin.TeacherFunctionsForAdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/admin")
public class AdminController {
@Autowired
TeacherFunctionsForAdminService teacher;
@PostMapping("/assignCourses")
public void assignCourseToTeacher(@RequestBody TeacherCourseAssignDTO assignCourses) {
teacher.assignCourseToTeachers(assignCourses);
}
}
......@@ -4,8 +4,6 @@ package com.school.project.controller;
import com.school.project.dto.course.CourseRegisterDTO;
import com.school.project.service.course.CourseServiceImp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -15,17 +13,13 @@ import org.springframework.web.server.ResponseStatusException;
@RestController
@RequestMapping("/course")
public class CourseController {
@Autowired
private CourseServiceImp courseServiceImp;
@PostMapping("/save")
private ResponseEntity saveCourse(@RequestBody CourseRegisterDTO course) {
try {
courseServiceImp.saveCourse(course);
return ResponseEntity.ok("Course Saved");
} catch (Exception e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Data Is Not Correct", e);
}
private ResponseStatusException saveCourse(@RequestBody CourseRegisterDTO course) {
return courseServiceImp.saveCourse(course);
}
......
......@@ -8,13 +8,11 @@ import com.school.project.dto.userRegistration.UserRegistrationDTO;
import com.school.project.service.userRegistration.admin.AdminRegistrationService;
import com.school.project.service.userRegistration.student.StudentRegistrationService;
import com.school.project.service.userRegistration.teacher.TeacherRegistrationService;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.server.ResponseStatusException;
@RestController
......
......@@ -4,15 +4,12 @@ package com.school.project.controller;
import com.school.project.dto.student.StudentCourseRegistrationDTO;
import com.school.project.dto.student.StudentCoursesDTO;
import com.school.project.dto.student.StudentViewDataDTO;
import com.school.project.service.courseRegistration.CourseRegistrationService;
import com.school.project.service.student.CourseRegistrationService;
import com.school.project.service.student.StudentServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.annotation.CurrentSecurityContext;
import org.springframework.web.bind.annotation.*;
import java.security.Principal;
import java.util.List;
import java.util.Set;
@RestController
......@@ -26,9 +23,9 @@ public class StudentController {
private CourseRegistrationService courseRegistrationService;
@GetMapping("")
public StudentViewDataDTO getUserDetails(@CurrentSecurityContext(expression = "authentication") Authentication authentication) {
public StudentViewDataDTO getUserDetails(Principal principal) {
return studentService.viewData(authentication.getName());
return studentService.viewData(principal.getName());
}
......
package com.school.project.controller;
import com.school.project.dto.teacher.*;
import com.school.project.service.teacher.TeacherServiceImpl;
import com.school.project.service.teacher.UploadMarksServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.security.Principal;
@RestController
@RequestMapping("/teacher")
public class TeacherController {
@Autowired
TeacherServiceImpl teacherService;
@Autowired
UploadMarksServiceImpl uploadMarksService;
@GetMapping("")
public TeacherViewDataDTO getTeacherData(Principal principal) {
return teacherService.getTeacherData(principal.getName());
}
@GetMapping("/course")
public TeacherViewCoursesDTO getTeacherCourses(Principal principal) {
return teacherService.getTeacherCourses(principal.getName());
}
@PostMapping("/upload/marks")
public void addAssessment(@RequestBody AddAssessmentDTO addAssessmentDTO){
uploadMarksService.setAssessment(addAssessmentDTO);
}
@PostMapping("/upload/marks/assessments")
public void addMarks(@RequestBody UploadMarksDTO uploadMarksDTO){
uploadMarksService.setObtainedMarks(uploadMarksDTO);
}
}
......@@ -15,21 +15,7 @@ import java.util.List;
public class UserController {
@GetMapping("/user")
public List<String> currentUserName(@CurrentSecurityContext(expression = "authentication")
Authentication authentication, Principal principal) {
List<String> data = new ArrayList<>();
data.add(authentication.getName());
data.add(String.valueOf(authentication.getAuthorities()));
data.add(String.valueOf(authentication.getCredentials()));
data.add(String.valueOf(authentication.getDetails()));
data.add(String.valueOf(authentication.getPrincipal()));
data.add("\nNow Here Is Principal Details\n");
data.add(principal.getName());
return data;
public String currentUserName(Principal principal) {
return principal.getName();
}
}
package com.school.project.dto.teacher;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class AddAssessmentDTO {
private String courseCode;
private String assessment;
}
package com.school.project.dto.teacher;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class ObtainedMarksDTO {
private String studentRollNumber;
private Long obtainedMarks;
}
package com.school.project.dto.teacher;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class SectionsDTO {
private Long sectionId;
private Long marks;
private Long weightage;
private List<ObtainedMarksDTO> obtainedMarksDTOS;
}
package com.school.project.dto.teacher;
import lombok.Getter;
import lombok.Setter;
import java.util.Set;
@Getter
@Setter
public class TeacherCourseAssignDTO {
private String teacherNumber;
private Set<String> courseList;
}
package com.school.project.dto.teacher;
import com.school.project.model.Course;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.springframework.stereotype.Component;
import java.util.Set;
@Getter
@Setter
public class TeacherViewCoursesDTO {
private String name;
private String teacherNumber;
private Set<Course> courseList;
}
package com.school.project.dto.teacher;
import com.school.project.model.Department;
import lombok.*;
@Getter
@Setter
public class TeacherViewDataDTO {
private String name;
private String teacherNumber;
private String degree;
private Department department;
}
package com.school.project.dto.teacher;
import com.school.project.model.marks.Section;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
import java.util.Set;
@Getter
@Setter
public class UploadMarksDTO {
private Long assessmentId;
private List<SectionsDTO> sectionsList;
}
package com.school.project.mapper;
import com.school.project.model.marks.Assessment;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class AssessmentToListOfAssessment {
public List<Assessment> modelToList(Assessment assessment) {
List<Assessment> assessmentList = new ArrayList<>();
assessmentList.add(assessment);
return assessmentList;
}
}
package com.school.project.mapper;
import com.school.project.model.Student;
import com.school.project.model.marks.StudentMarks;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class MarksToListOfMarks {
public List<StudentMarks> modelToList(StudentMarks studentMarks) {
List<StudentMarks> list = new ArrayList<>();
list.add(studentMarks);
return list;
}
}
package com.school.project.mapper;
import com.school.project.model.marks.Section;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class SectionToListOfSectionMapper {
public List<Section> modelToList(Section section) {
List<Section> sectionList = new ArrayList<>();
sectionList.add(section);
return sectionList;
}
}
\ No newline at end of file
......@@ -10,7 +10,7 @@ public class StudentCoursesMapper {
public StudentCoursesDTO modelToDto(Student student) {
StudentCoursesDTO coursesDTO = new StudentCoursesDTO();
coursesDTO.setStudentName(student.getName());
coursesDTO.setStudentName(student.getStudentName());
coursesDTO.setStudentRollNumber(student.getRollNumber());
coursesDTO.setCourseList(student.getCourseLists());
......
......@@ -12,7 +12,7 @@ public class StudentViewDataMapper {
StudentViewDataDTO studentViewDataDTO = new StudentViewDataDTO();
studentViewDataDTO.setName(student.getName());
studentViewDataDTO.setName(student.getStudentName());
studentViewDataDTO.setRollNumber(student.getRollNumber());
studentViewDataDTO.setAge(student.getAge());
......
package com.school.project.mapper;
import com.school.project.dto.teacher.TeacherViewCoursesDTO;
import com.school.project.model.Teacher;
import org.springframework.stereotype.Component;
@Component
public class TeacherViewCoursesMapper {
public TeacherViewCoursesDTO modelToDTO(Teacher teacher) {
TeacherViewCoursesDTO teacherViewCoursesDTO = new TeacherViewCoursesDTO();
teacherViewCoursesDTO.setName(teacher.getName());
teacherViewCoursesDTO.setTeacherNumber(teacher.getTeacherNumber());
teacherViewCoursesDTO.setCourseList(teacher.getCourseList());
return teacherViewCoursesDTO;
}
}
package com.school.project.mapper;
import com.school.project.dto.teacher.TeacherViewDataDTO;
import com.school.project.model.Teacher;
import org.springframework.stereotype.Component;
@Component
public class TeacherViewDataMapper {
public TeacherViewDataDTO modelToDto(Teacher teacher) {
TeacherViewDataDTO teacherViewDataDTO = new TeacherViewDataDTO();
teacherViewDataDTO.setName(teacher.getName());
teacherViewDataDTO.setTeacherNumber(teacher.getTeacherNumber());
teacherViewDataDTO.setDegree(teacher.getDegree());
teacherViewDataDTO.setDepartment(teacher.getDepartment());
return teacherViewDataDTO;
}
}
package com.school.project.model.userRegistration;
package com.school.project.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.school.project.model.userRegistration.User;
import com.sun.istack.NotNull;
import lombok.*;
import org.springframework.context.annotation.Lazy;
import javax.persistence.*;
@Data
@Entity(name = "admin")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "admin")
public class Admin {
@Id
......@@ -24,7 +29,6 @@ public class Admin {
@OneToOne(fetch = FetchType.LAZY)
@MapsId
@JoinColumn(name = "admin_id")
@ToString.Exclude
@JsonIgnore
private User adminAppUser;
}
package com.school.project.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.school.project.model.marks.Assessment;
import com.sun.istack.NotNull;
import lombok.*;
......@@ -8,32 +9,41 @@ import javax.persistence.*;
import java.util.List;
import java.util.Set;
@Data
@Entity()
@Getter
@Setter
@NoArgsConstructor
@Table(name = "Course")
@EqualsAndHashCode(exclude = {"studentList","teacherList"})
@ToString(exclude = {"studentList","teacherList"})
@AllArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "course")
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "course_id")
private Long courseId;
@NotNull
@Column(name = "name", unique = true)
private String courseName;
@NotNull
@Column(name = "courseCode",unique = true)
@Column(name = "course_code",unique = true)
private String courseCode;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseLists",cascade = CascadeType.MERGE)
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseLists",cascade = CascadeType.ALL)
@JsonIgnore
private Set<Student> studentList;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseList")
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courseList",cascade = CascadeType.ALL)
@JsonIgnore
private Set<Teacher> teacherList;
@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "courses_assessments",
joinColumns = {@JoinColumn(name = "course_id",insertable = false,updatable = false)},
inverseJoinColumns = {@JoinColumn(name = "assessment_id",insertable = false,updatable = false)})
private List<Assessment> assessments;
}
package com.school.project.model;
import com.sun.istack.NotNull;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.*;
import javax.persistence.*;
import java.util.List;
@Data
@Entity()
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "Department")
@RequiredArgsConstructor
@Entity
@Table(name = "department")
public class Department {
@Id
......
package com.school.project.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.school.project.model.Course;
import com.school.project.model.marks.StudentMarks;
import com.school.project.model.userRegistration.User;
import com.sun.istack.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.*;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.springframework.context.annotation.Lazy;
import javax.persistence.*;
import java.util.List;
import java.util.Set;
@Data
@Entity()
@Getter
@Setter
@NoArgsConstructor
@Table(name = "Student")
@EqualsAndHashCode(exclude = {"courseLists"})
@ToString(exclude = {"courseLists","studentAppUser"})
@AllArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "student")
public class Student {
@Id
......@@ -35,7 +33,7 @@ public class Student {
@NotNull
@Column(name = "name")
private String name;
private String studentName;
@NotNull
@Column(name = "age")
......@@ -56,4 +54,12 @@ public class Student {
@JoinColumn(name = "student_id")
@JsonIgnore
private User studentAppUser;
@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "student_obtained_marks",
joinColumns = {@JoinColumn(name = "student_id",insertable = false,updatable = false)},
inverseJoinColumns = {@JoinColumn(name = "student_marks_id",insertable = false,updatable = false)})
@JsonIgnore
private Set<StudentMarks> studentMarks;
}
......@@ -4,9 +4,7 @@ import com.school.project.model.Course;
import com.school.project.model.Department;
import com.school.project.model.userRegistration.User;
import com.sun.istack.NotNull;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.*;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.springframework.context.annotation.Lazy;
......@@ -14,9 +12,12 @@ import javax.persistence.*;
import java.util.List;
import java.util.Set;
@Data
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "Teacher")
public class Teacher {
......@@ -30,7 +31,7 @@ public class Teacher {
private String name;
@NotNull
@Column(name = "teacher_num")
@Column(name = "teacher_num",unique = true)
private String teacherNumber;
@NotNull
......@@ -56,7 +57,6 @@ public class Teacher {
@MapsId
@JoinColumn(name = "teacher_id")
@JsonIgnore
@ToString.Exclude
private User teacherAppUser;
......
package com.school.project.model.marks;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.school.project.model.Course;
import com.sun.istack.NotNull;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.util.List;
@Getter
@Setter
@Entity
@Table(name = "assessment")
public class Assessment {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "assessment_id")
private Long assessmentId;
@ManyToOne
@JoinColumn(name = "assessment_type_id")
@NotNull
private AssessmentType assessmentType;
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name = "courses_assessments",
joinColumns = {@JoinColumn(name = "assessment_id")},
inverseJoinColumns = {@JoinColumn(name = "course_id")})
@NotNull
@JsonIgnore
private Course course;
@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "assessment_sections",
joinColumns = {@JoinColumn(name = "assessment_id",insertable = false,updatable = false)},
inverseJoinColumns = {@JoinColumn(name = "section_id",insertable = false,updatable = false)})
@JsonIgnore
private List<Section> section;
}
package com.school.project.model.marks;
import com.sun.istack.NotNull;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
@Getter
@Setter
@Entity
@Table(name = "assessment_type")
public class AssessmentType {
public enum types {
ASSIGNMENT,
QUIZ,
MIDTERM,
FINAL,
PROJECT,
PRESENTATION,
REPORT,
PARTICIPATION,
LABWORK,
LABTASK
}
@Id
@Column(name = "assessment_type_id")
private Long assessmentTypeId;
@Column(name = "assessment_type_name")
@NotNull
private String assessmentTypeName;
}
package com.school.project.model.marks;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sun.istack.NotNull;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.util.List;
import java.util.Set;
@Getter
@Setter
@Entity
@Table(name = "section")
public class Section {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "section_id")
private Long sectionId;
@NotNull
@Column(name = "total_marks")
private Long totalMarks;
@NotNull
@Column(name = "total_weightage")
private Long totalWeightage;
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name = "assessment_sections",
joinColumns = {@JoinColumn(name = "section_id")},
inverseJoinColumns = {@JoinColumn(name = "assessment_id")})
@NotNull
@JsonIgnore
private Assessment assessment;
@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "student_marks_section",
joinColumns = {@JoinColumn(name = "section_id",insertable = false,updatable = false)},
inverseJoinColumns = {@JoinColumn(name = "student_marks_id",insertable = false,updatable = false)})
@JsonIgnore
private List<StudentMarks> studentMarks;
}
package com.school.project.model.marks;
import com.school.project.model.Student;
import com.sun.istack.NotNull;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
@Getter
@Setter
@Entity
@Table(name = "student_marks")
public class StudentMarks {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "student_marks_id")
private Long studentMarksId;
@NotNull
@Column(name = "obtained_marks")
private Long obtainedMarks;
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name = "student_obtained_marks",
joinColumns = {@JoinColumn(name = "student_marks_id")},
inverseJoinColumns = {@JoinColumn(name = "student_id")})
@NotNull
private Student student;
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name = "student_marks_section",
joinColumns = {@JoinColumn(name = "student_marks_id")},
inverseJoinColumns = {@JoinColumn(name = "section_id")})
@NotNull
private Section section;
}
package com.school.project.model.userRegistration;
import com.sun.istack.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.*;
import javax.persistence.*;
@Data
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "role")
public class Role {
......
......@@ -2,18 +2,20 @@ package com.school.project.model.userRegistration;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.school.project.model.Admin;
import com.school.project.model.Student;
import com.school.project.model.Teacher;
import com.sun.istack.NotNull;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.*;
import javax.persistence.*;
@Data
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "users")
public class User {
......@@ -37,19 +39,16 @@ public class User {
@OneToOne(mappedBy = "studentAppUser", cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn
@ToString.Exclude
@JsonIgnore
private Student studentUser;
@OneToOne(mappedBy = "teacherAppUser", cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn
@ToString.Exclude
@JsonIgnore
private Teacher teacherUser;
@OneToOne(mappedBy = "adminAppUser", cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn
@ToString.Exclude
@JsonIgnore
private Admin adminUser;
......
package com.school.project.repository.modelRepositery;
package com.school.project.repository;
import com.school.project.model.Course;
import org.springframework.data.jpa.repository.JpaRepository;
public interface CourseRepository extends JpaRepository<Course,Long> {
Course findByCourseName(String name);
Course findByCourseCode(String name);
}
package com.school.project.repository.modelRepositery;
package com.school.project.repository;
import com.school.project.model.Department;
import org.springframework.data.jpa.repository.JpaRepository;
......
package com.school.project.repository.modelRepositery;
package com.school.project.repository;
import com.school.project.model.Student;
import org.springframework.data.jpa.repository.JpaRepository;
public interface StudentRepository extends JpaRepository<Student,Long> {
import java.util.List;
public Student findByStudentId(Long id);
public interface StudentRepository extends JpaRepository<Student, Long> {
Student findByStudentId(Long id);
Student findByStudentName(String name);
Student findByRollNumber(String rollNumber);
}
package com.school.project.repository.modelRepositery;
package com.school.project.repository;
import com.school.project.model.Teacher;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
@Repository
public interface TeacherRepository extends JpaRepository<Teacher,Long> {
Teacher findOneByTeacherId(Long id);
@Query(value = "SELECT * FROM teacher WHERE teacher_num= ?1",nativeQuery = true)
Teacher findByTeacherNumber(String number);
}
package com.school.project.repository.marks;
import com.school.project.model.marks.Assessment;
import org.springframework.data.jpa.repository.JpaRepository;
public interface AssessmentRepository extends JpaRepository<Assessment,Long> {
Assessment findByAssessmentId(Long id);
}
package com.school.project.repository.marks;
import com.school.project.model.marks.AssessmentType;
import org.springframework.data.jpa.repository.JpaRepository;
public interface AssessmentTypeRepository extends JpaRepository<AssessmentType,Long> {
AssessmentType findByAssessmentTypeName(String name);
}
package com.school.project.repository.marks;
import com.school.project.model.marks.Section;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SectionRepository extends JpaRepository<Section,Long> {
}
package com.school.project.repository.marks;
import com.school.project.model.marks.StudentMarks;
import org.springframework.data.jpa.repository.JpaRepository;
public interface StudentMarksRepository extends JpaRepository<StudentMarks,Long> {
}
package com.school.project.repository.userRegistration;
import com.school.project.model.userRegistration.Admin;
import lombok.RequiredArgsConstructor;
import com.school.project.model.Admin;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
......
......@@ -50,7 +50,7 @@ public class OAuth2ServerConfiguration {
.authorizeRequests()
.antMatchers("/register/**").permitAll()
.antMatchers("/student/**").hasAuthority("STUDENT")
.antMatchers("/department/**", "/course/**").hasAuthority("ADMIN");
.antMatchers("/department/**", "/course/**","/admin/**").hasAuthority("ADMIN");
}
}
......
package com.school.project.service.admin;
import com.school.project.dto.teacher.TeacherCourseAssignDTO;
import java.util.Set;
public interface TeacherFunctionsForAdminService {
public Long getUserId(String username);
void assignCourseToTeachers(TeacherCourseAssignDTO assignCourses);
}
package com.school.project.service.admin;
import com.school.project.dto.teacher.TeacherCourseAssignDTO;
import com.school.project.model.Course;
import com.school.project.model.Teacher;
import com.school.project.model.userRegistration.User;
import com.school.project.repository.CourseRepository;
import com.school.project.repository.TeacherRepository;
import com.school.project.repository.userRegistration.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.Set;
@Service
public class TeacherFunctionsForAdminServiceImpl implements TeacherFunctionsForAdminService {
@Autowired
TeacherRepository teacherRepository;
@Autowired
UserRepository userRepository;
@Autowired
CourseRepository courseRepository;
@Override
public Long getUserId(String username) {
User user = userRepository.findUserByEmail(username).get();
return user.getUserId();
}
@Override
@Transactional
@Modifying
public void assignCourseToTeachers(TeacherCourseAssignDTO assignCourses) {
Teacher teacher = teacherRepository.findByTeacherNumber(assignCourses.getTeacherNumber());
Set<Course> teacherCourses = teacher.getCourseList();
Set<String> newCourses = assignCourses.getCourseList();
newCourses.forEach(course -> teacherCourses.add(courseRepository.findByCourseName(course)));
teacher.setCourseList(teacherCourses);
}
}
......@@ -2,9 +2,10 @@ package com.school.project.service.course;
import com.school.project.dto.course.CourseRegisterDTO;
import org.springframework.web.server.ResponseStatusException;
public interface CourseService {
public String saveCourse(CourseRegisterDTO courseDTO);
public ResponseStatusException saveCourse(CourseRegisterDTO courseDTO);
}
......@@ -2,60 +2,37 @@ package com.school.project.service.course;
import com.school.project.dto.course.CourseRegisterDTO;
import com.school.project.model.Course;
import com.school.project.repository.modelRepositery.CourseRepository;
import com.school.project.repository.CourseRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.server.ResponseStatusException;
@Service
public class CourseServiceImp implements CourseService {
private static final String courseMessage = "Course Saved";
private static final String incorrectData = "Data Is Not Correct";
@Autowired(required = true)
public CourseRepository courseRepository;
@Override
public String saveCourse(CourseRegisterDTO courseDTO) {
Course newCourse = new Course();
public ResponseStatusException saveCourse(CourseRegisterDTO courseDTO) {
newCourse.setCourseCode(courseDTO.getCourseCode());
newCourse.setCourseName(courseDTO.getCourseName());
try {
courseRepository.save(newCourse);
Course newCourse = new Course();
return "Course Saved";
}
newCourse.setCourseCode(courseDTO.getCourseCode());
newCourse.setCourseName(courseDTO.getCourseName());
/* @Transactional
@Override
public List<CourseDTO> readAllCourse() {
return courseMapper.courseModelToDTO(courseRepository.findAll());
}
courseRepository.save(newCourse);
@Override
public CourseDTO readCourseById(Long id) {
return courseMapper.courseModelToDTO(courseRepository.findById(id).get());
}
return new ResponseStatusException(HttpStatus.OK,courseMessage);
@Override
public CourseDTO updateCourseById(CourseDTO courseDTO, Long id) {
CourseDTO dto = readCourseById(id);
} catch (Exception e) {
if (courseDTO.getTitle() != null) {
dto.setTitle(courseDTO.getTitle());
return new ResponseStatusException(HttpStatus.BAD_REQUEST,incorrectData,e);
}
if (courseDTO.getTeacherList() != null) {
dto.setTeacherList(courseDTO.getTeacherList());
}
if (courseDTO.getStudentList() != null) {
dto.setStudentList(courseDTO.getStudentList());
}
return courseMapper.courseModelToDTO(
courseRepository.save(
courseMapper.courseDTOToModel(dto)));
}
@Override
public void deleteCourseById(Long id) {
courseRepository.deleteById(id);
}*/
}
......@@ -2,7 +2,7 @@ package com.school.project.service.department;
import com.school.project.dto.department.DepartmentRegisterDTO;
import com.school.project.model.Department;
import com.school.project.repository.modelRepositery.DepartmentRepository;
import com.school.project.repository.DepartmentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......
package com.school.project.service.courseRegistration;
package com.school.project.service.student;
import com.school.project.dto.student.StudentCourseRegistrationDTO;
import org.springframework.stereotype.Service;
......
package com.school.project.service.courseRegistration;
package com.school.project.service.student;
import com.school.project.dto.student.StudentCourseRegistrationDTO;
import com.school.project.model.Course;
import com.school.project.model.Student;
import com.school.project.repository.modelRepositery.CourseRepository;
import com.school.project.repository.modelRepositery.StudentRepository;
import com.school.project.repository.CourseRepository;
import com.school.project.repository.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
import java.util.Set;
@Service
......@@ -35,7 +34,6 @@ public class CourseRegistrationServiceImpl implements CourseRegistrationService
student.setCourseLists(studentCourses);
studentRepository.save(student);
}
}
......@@ -5,7 +5,7 @@ import com.school.project.dto.student.StudentViewDataDTO;
import com.school.project.mapper.StudentCoursesMapper;
import com.school.project.mapper.StudentViewDataMapper;
import com.school.project.model.userRegistration.User;
import com.school.project.repository.modelRepositery.StudentRepository;
import com.school.project.repository.StudentRepository;
import com.school.project.repository.userRegistration.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......
package com.school.project.service.teacher;
import com.school.project.dto.teacher.TeacherViewCoursesDTO;
import com.school.project.dto.teacher.TeacherViewDataDTO;
public interface TeacherService {
TeacherViewDataDTO getTeacherData(String username);
TeacherViewCoursesDTO getTeacherCourses(String username);
}
package com.school.project.service.teacher;
import com.school.project.dto.teacher.TeacherViewCoursesDTO;
import com.school.project.dto.teacher.TeacherViewDataDTO;
import com.school.project.mapper.TeacherViewCoursesMapper;
import com.school.project.mapper.TeacherViewDataMapper;
import com.school.project.model.userRegistration.User;
import com.school.project.repository.*;
import com.school.project.repository.userRegistration.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class TeacherServiceImpl implements TeacherService {
@Autowired
TeacherRepository teacherRepository;
@Autowired
UserRepository userRepository;
@Autowired
TeacherViewDataMapper teacherViewDataMapper;
@Autowired
TeacherViewCoursesMapper teacherViewCoursesMapper;
@Override
public TeacherViewDataDTO getTeacherData(String username) {
User user = userRepository.findUserByEmail(username).get();
return teacherViewDataMapper.modelToDto(
teacherRepository.findOneByTeacherId(user.getUserId()));
}
@Override
public TeacherViewCoursesDTO getTeacherCourses(String username) {
User user = userRepository.findUserByEmail(username).get();
return teacherViewCoursesMapper.modelToDTO(
teacherRepository.findOneByTeacherId(user.getUserId()));
}
}
package com.school.project.service.teacher;
import com.school.project.dto.teacher.AddAssessmentDTO;
import com.school.project.dto.teacher.ObtainedMarksDTO;
import com.school.project.dto.teacher.UploadMarksDTO;
import com.school.project.model.marks.Assessment;
import com.school.project.model.marks.Section;
import org.springframework.stereotype.Service;
@Service
public interface UploadMarksService {
void setAssessment(AddAssessmentDTO assessmentDTO);
void setObtainedMarks(UploadMarksDTO uploadMarksDTO);
}
package com.school.project.service.teacher;
import com.school.project.dto.teacher.AddAssessmentDTO;
import com.school.project.dto.teacher.UploadMarksDTO;
import com.school.project.mapper.AssessmentToListOfAssessment;
import com.school.project.model.Course;
import com.school.project.model.Student;
import com.school.project.model.marks.Assessment;
import com.school.project.model.marks.Section;
import com.school.project.model.marks.StudentMarks;
import com.school.project.repository.CourseRepository;
import com.school.project.repository.StudentRepository;
import com.school.project.repository.marks.AssessmentRepository;
import com.school.project.repository.marks.AssessmentTypeRepository;
import com.school.project.repository.marks.SectionRepository;
import com.school.project.repository.marks.StudentMarksRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
@Service
public class UploadMarksServiceImpl implements UploadMarksService {
@Autowired
CourseRepository courseRepository;
@Autowired
StudentRepository studentRepository;
@Autowired
AssessmentTypeRepository assessmentTypeRepository;
@Autowired
AssessmentRepository assessmentRepository;
@Autowired
SectionRepository sectionRepository;
@Autowired
StudentMarksRepository studentMarksRepository;
@Autowired
AssessmentToListOfAssessment assessmentMapper;
@Override
@Transactional
public void setAssessment(AddAssessmentDTO assessmentDTO) {
Assessment assessment = new Assessment();
Course course = courseRepository.findByCourseCode(assessmentDTO.getCourseCode());
assessment.setAssessmentType(assessmentTypeRepository.findByAssessmentTypeName(assessmentDTO.getAssessment()));
assessment.setCourse(course);
assessmentRepository.save(assessment);
}
@Override
@Transactional
public void setObtainedMarks(UploadMarksDTO uploadMarksDTO) {
Assessment assessment = assessmentRepository.findByAssessmentId(uploadMarksDTO.getAssessmentId());
uploadMarksDTO.getSectionsList().forEach(sectionInList -> {
Section newSection = new Section();
newSection.setTotalMarks(sectionInList.getMarks());
newSection.setTotalWeightage(sectionInList.getWeightage());
newSection.setAssessment(assessment);
Section section = sectionRepository.save(newSection);
sectionInList.getObtainedMarksDTOS().forEach(obtainedMarksInList -> {
Student student = studentRepository.findByRollNumber(obtainedMarksInList.getStudentRollNumber());
StudentMarks studentMarks = new StudentMarks();
studentMarks.setObtainedMarks(obtainedMarksInList.getObtainedMarks());
studentMarks.setStudent(student);
studentMarks.setSection(section);
studentMarksRepository.save(studentMarks);
});
}
);
}
}
......@@ -2,7 +2,7 @@ package com.school.project.service.userRegistration.admin;
import com.school.project.dto.userRegistration.AdminRegistrationDTO;
import com.school.project.dto.userRegistration.UserRegistrationDTO;
import com.school.project.model.userRegistration.Admin;
import com.school.project.model.Admin;
import com.school.project.model.userRegistration.Role;
import com.school.project.model.userRegistration.User;
import com.school.project.repository.userRegistration.AdminRegRepository;
......
......@@ -6,7 +6,7 @@ import com.school.project.model.userRegistration.Role;
import com.school.project.model.Student;
import com.school.project.model.userRegistration.User;
import com.school.project.repository.userRegistration.RoleRepository;
import com.school.project.repository.modelRepositery.StudentRepository;
import com.school.project.repository.StudentRepository;
import com.school.project.repository.userRegistration.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
......@@ -43,7 +43,7 @@ public class StudentRegistrationServiceImpl implements StudentRegistrationServic
Student newStudent = new Student();
newStudent.setName(studentRegistrationDTO.getName());
newStudent.setStudentName(studentRegistrationDTO.getName());
newStudent.setAge(studentRegistrationDTO.getAge());
newStudent.setStudentAppUser(newUser);
newStudent.setRollNumber(studentRegistrationDTO.getRollNumber());
......
......@@ -6,7 +6,7 @@ import com.school.project.model.userRegistration.Role;
import com.school.project.model.Teacher;
import com.school.project.model.userRegistration.User;
import com.school.project.repository.userRegistration.RoleRepository;
import com.school.project.repository.modelRepositery.TeacherRepository;
import com.school.project.repository.TeacherRepository;
import com.school.project.repository.userRegistration.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
......
......@@ -4,6 +4,7 @@ spring.datasource.url=jdbc:mysql://localhost:3306/school-portal
spring.datasource.username=root
spring.datasource.password=charlie123
spring.security.user.name= sulemantalpur6@gmail.com
spring.security.user.password=charlie
......@@ -12,4 +13,4 @@ spring.mvc.view.prefix=/static
server.error.include-message=always
spring.datasource.data=data.sql
\ No newline at end of file
spring.datasource.data=classpath:data.sql
\ No newline at end of file
INSERT INTO role VALUES (1, 'ADMIN');
INSERT INTO role VALUES (2, 'STUDENT');
INSERT INTO role VALUES (3, 'TEACHER');
\ No newline at end of file
INSERT INTO role VALUES (3, 'TEACHER');
INSERT INTO assessment_type VALUES (1,'ASSIGNMENT');
INSERT INTO assessment_type VALUES (2,'QUIZ');
INSERT INTO assessment_type VALUES (3,'MIDTERM');
INSERT INTO assessment_type VALUES (4,'FINAL');
INSERT INTO assessment_type VALUES (5,'PROJECT');
INSERT INTO assessment_type VALUES (6,'PRESENTATION');
INSERT INTO assessment_type VALUES (7,'REPORT');
INSERT INTO assessment_type VALUES (8,'PARTICIPATION');
INSERT INTO assessment_type VALUES (9,'LABWORK');
INSERT INTO assessment_type VALUES (10,'LABTASK');
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment