Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
school-portal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Muhammad Suleman
school-portal
Commits
6c2d7aee
Commit
6c2d7aee
authored
Jul 15, 2022
by
Muhammad Suleman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added Marks Upload
parent
a0ebbfe7
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
342 additions
and
10 deletions
+342
-10
RegistrationController.java
...com/school/project/controller/RegistrationController.java
+2
-4
TeacherController.java
...java/com/school/project/controller/TeacherController.java
+16
-0
AddAssessmentDTO.java
...java/com/school/project/dto/teacher/AddAssessmentDTO.java
+12
-0
AddSectionDTO.java
...in/java/com/school/project/dto/teacher/AddSectionDTO.java
+15
-0
TeacherCourseAssignDTO.java
...om/school/project/dto/teacher/TeacherCourseAssignDTO.java
+0
-4
SectionToListOfSectionMapper.java
...m/school/project/mapper/SectionToListOfSectionMapper.java
+17
-0
Course.java
src/main/java/com/school/project/model/Course.java
+3
-0
Student.java
src/main/java/com/school/project/model/Student.java
+7
-0
Assessment.java
src/main/java/com/school/project/model/marks/Assessment.java
+45
-0
AssessmentType.java
...n/java/com/school/project/model/marks/AssessmentType.java
+35
-0
Section.java
src/main/java/com/school/project/model/marks/Section.java
+40
-0
StudentMarks.java
...ain/java/com/school/project/model/marks/StudentMarks.java
+33
-0
CourseRepository.java
.../java/com/school/project/repository/CourseRepository.java
+2
-0
AssessmentRepository.java
...school/project/repository/marks/AssessmentRepository.java
+10
-0
AssessmentTypeRepository.java
...ol/project/repository/marks/AssessmentTypeRepository.java
+9
-0
SectionRepository.java
...om/school/project/repository/marks/SectionRepository.java
+7
-0
StudentMarksRepository.java
...hool/project/repository/marks/StudentMarksRepository.java
+7
-0
UploadMarksService.java
...om/school/project/service/teacher/UploadMarksService.java
+14
-0
UploadMarksServiceImpl.java
...chool/project/service/teacher/UploadMarksServiceImpl.java
+67
-0
data.sql
src/main/resources/data.sql
+1
-2
No files found.
src/main/java/com/school/project/controller/RegistrationController.java
View file @
6c2d7aee
...
@@ -8,13 +8,11 @@ import com.school.project.dto.userRegistration.UserRegistrationDTO;
...
@@ -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.admin.AdminRegistrationService
;
import
com.school.project.service.userRegistration.student.StudentRegistrationService
;
import
com.school.project.service.userRegistration.student.StudentRegistrationService
;
import
com.school.project.service.userRegistration.teacher.TeacherRegistrationService
;
import
com.school.project.service.userRegistration.teacher.TeacherRegistrationService
;
import
lombok.Getter
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
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.server.ResponseStatusException
;
import
org.springframework.web.server.ResponseStatusException
;
@RestController
@RestController
...
...
src/main/java/com/school/project/controller/TeacherController.java
View file @
6c2d7aee
package
com
.
school
.
project
.
controller
;
package
com
.
school
.
project
.
controller
;
import
com.school.project.dto.teacher.AddAssessmentDTO
;
import
com.school.project.dto.teacher.AddSectionDTO
;
import
com.school.project.dto.teacher.TeacherViewCoursesDTO
;
import
com.school.project.dto.teacher.TeacherViewCoursesDTO
;
import
com.school.project.dto.teacher.TeacherViewDataDTO
;
import
com.school.project.dto.teacher.TeacherViewDataDTO
;
import
com.school.project.service.teacher.TeacherServiceImpl
;
import
com.school.project.service.teacher.TeacherServiceImpl
;
import
com.school.project.service.teacher.UploadMarksServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -15,6 +18,9 @@ public class TeacherController {
...
@@ -15,6 +18,9 @@ public class TeacherController {
@Autowired
@Autowired
TeacherServiceImpl
teacherService
;
TeacherServiceImpl
teacherService
;
@Autowired
UploadMarksServiceImpl
uploadMarksService
;
@GetMapping
(
""
)
@GetMapping
(
""
)
public
TeacherViewDataDTO
getTeacherData
(
Principal
principal
)
{
public
TeacherViewDataDTO
getTeacherData
(
Principal
principal
)
{
...
@@ -25,4 +31,14 @@ public class TeacherController {
...
@@ -25,4 +31,14 @@ public class TeacherController {
public
TeacherViewCoursesDTO
getTeacherCourses
(
Principal
principal
)
{
public
TeacherViewCoursesDTO
getTeacherCourses
(
Principal
principal
)
{
return
teacherService
.
getTeacherCourses
(
principal
.
getName
());
return
teacherService
.
getTeacherCourses
(
principal
.
getName
());
}
}
@PostMapping
(
"/upload/marks"
)
public
void
addAssessment
(
@RequestBody
AddAssessmentDTO
addAssessmentDTO
){
uploadMarksService
.
setAssessment
(
addAssessmentDTO
).
getAssessmentId
();
}
@PostMapping
(
"/upload/marks/section"
)
public
void
addSectionInAssessment
(
@RequestBody
AddSectionDTO
addSectionDTO
)
{
uploadMarksService
.
setSection
(
addSectionDTO
);
}
}
}
src/main/java/com/school/project/dto/teacher/AddAssessmentDTO.java
0 → 100644
View file @
6c2d7aee
package
com
.
school
.
project
.
dto
.
teacher
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
AddAssessmentDTO
{
private
String
courseCode
;
private
String
assessment
;
}
src/main/java/com/school/project/dto/teacher/AddSectionDTO.java
0 → 100644
View file @
6c2d7aee
package
com
.
school
.
project
.
dto
.
teacher
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.nio.file.LinkOption
;
@Getter
@Setter
public
class
AddSectionDTO
{
private
Long
assessmentId
;
private
Long
totalMarks
;
private
Long
totalWeightage
;
}
src/main/java/com/school/project/dto/teacher/TeacherCourseAssignDTO.java
View file @
6c2d7aee
package
com
.
school
.
project
.
dto
.
teacher
;
package
com
.
school
.
project
.
dto
.
teacher
;
import
com.school.project.model.Course
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
import
lombok.Setter
;
import
lombok.Setter
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.util.Set
;
import
java.util.Set
;
...
...
src/main/java/com/school/project/mapper/SectionToListOfSectionMapper.java
0 → 100644
View file @
6c2d7aee
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
;
}
}
src/main/java/com/school/project/model/Course.java
View file @
6c2d7aee
package
com
.
school
.
project
.
model
;
package
com
.
school
.
project
.
model
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.school.project.model.marks.Assessment
;
import
com.sun.istack.NotNull
;
import
com.sun.istack.NotNull
;
import
lombok.*
;
import
lombok.*
;
...
@@ -39,4 +40,6 @@ public class Course {
...
@@ -39,4 +40,6 @@ public class Course {
@JsonIgnore
@JsonIgnore
private
Set
<
Teacher
>
teacherList
;
private
Set
<
Teacher
>
teacherList
;
@OneToMany
(
mappedBy
=
"course"
,
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
LAZY
)
private
List
<
Assessment
>
assessment
;
}
}
src/main/java/com/school/project/model/Student.java
View file @
6c2d7aee
package
com
.
school
.
project
.
model
;
package
com
.
school
.
project
.
model
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.school.project.model.marks.StudentMarks
;
import
com.school.project.model.userRegistration.User
;
import
com.school.project.model.userRegistration.User
;
import
com.sun.istack.NotNull
;
import
com.sun.istack.NotNull
;
import
lombok.*
;
import
lombok.*
;
...
@@ -53,4 +54,10 @@ public class Student {
...
@@ -53,4 +54,10 @@ public class Student {
@JoinColumn
(
name
=
"student_id"
)
@JoinColumn
(
name
=
"student_id"
)
@JsonIgnore
@JsonIgnore
private
User
studentAppUser
;
private
User
studentAppUser
;
@OneToOne
(
mappedBy
=
"student"
,
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
LAZY
)
@JsonIgnore
private
StudentMarks
studentMarks
;
}
}
src/main/java/com/school/project/model/marks/Assessment.java
0 → 100644
View file @
6c2d7aee
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
org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity
;
import
javax.persistence.*
;
import
java.util.List
;
import
java.util.Set
;
@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
=
"course_assessments"
,
joinColumns
=
{
@JoinColumn
(
name
=
"assessment_id"
)},
inverseJoinColumns
=
{
@JoinColumn
(
name
=
"course_id"
)})
@NotNull
@JsonIgnore
private
Course
course
;
@OneToMany
(
cascade
=
CascadeType
.
MERGE
,
fetch
=
FetchType
.
LAZY
,
orphanRemoval
=
true
)
@JoinTable
(
name
=
"assessment_sections"
,
joinColumns
=
{
@JoinColumn
(
name
=
"assessment_id"
)},
inverseJoinColumns
=
{
@JoinColumn
(
name
=
"section_id"
)})
@JsonIgnore
private
List
<
Section
>
section
;
}
src/main/java/com/school/project/model/marks/AssessmentType.java
0 → 100644
View file @
6c2d7aee
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
;
}
src/main/java/com/school/project/model/marks/Section.java
0 → 100644
View file @
6c2d7aee
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.*
;
@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
=
"assessment_id"
,
insertable
=
false
,
updatable
=
false
)},
inverseJoinColumns
=
{
@JoinColumn
(
name
=
"section_id"
,
insertable
=
false
,
updatable
=
false
)})
private
Assessment
assessment
;
@OneToOne
(
mappedBy
=
"section"
,
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
LAZY
)
@JsonIgnore
private
StudentMarks
studentMarks
;
}
src/main/java/com/school/project/model/marks/StudentMarks.java
0 → 100644
View file @
6c2d7aee
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
;
@OneToOne
(
fetch
=
FetchType
.
LAZY
,
cascade
=
CascadeType
.
ALL
)
@JoinColumn
(
name
=
"student_id"
)
@NotNull
private
Student
student
;
@OneToOne
(
fetch
=
FetchType
.
LAZY
,
cascade
=
CascadeType
.
ALL
)
@JoinColumn
(
name
=
"section_id"
)
@NotNull
private
Section
section
;
}
src/main/java/com/school/project/repository/CourseRepository.java
View file @
6c2d7aee
...
@@ -5,4 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
...
@@ -5,4 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
public
interface
CourseRepository
extends
JpaRepository
<
Course
,
Long
>
{
public
interface
CourseRepository
extends
JpaRepository
<
Course
,
Long
>
{
Course
findByCourseName
(
String
name
);
Course
findByCourseName
(
String
name
);
Course
findByCourseCode
(
String
name
);
}
}
src/main/java/com/school/project/repository/marks/AssessmentRepository.java
0 → 100644
View file @
6c2d7aee
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
);
}
src/main/java/com/school/project/repository/marks/AssessmentTypeRepository.java
0 → 100644
View file @
6c2d7aee
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
);
}
src/main/java/com/school/project/repository/marks/SectionRepository.java
0 → 100644
View file @
6c2d7aee
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
>
{
}
src/main/java/com/school/project/repository/marks/StudentMarksRepository.java
0 → 100644
View file @
6c2d7aee
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
>
{
}
src/main/java/com/school/project/service/teacher/UploadMarksService.java
0 → 100644
View file @
6c2d7aee
package
com
.
school
.
project
.
service
.
teacher
;
import
com.school.project.dto.teacher.AddAssessmentDTO
;
import
com.school.project.dto.teacher.AddSectionDTO
;
import
com.school.project.model.marks.Assessment
;
import
com.school.project.model.marks.Section
;
import
org.springframework.stereotype.Service
;
@Service
public
interface
UploadMarksService
{
Assessment
setAssessment
(
AddAssessmentDTO
assessmentDTO
);
Section
setSection
(
AddSectionDTO
sectionDTO
);
}
src/main/java/com/school/project/service/teacher/UploadMarksServiceImpl.java
0 → 100644
View file @
6c2d7aee
package
com
.
school
.
project
.
service
.
teacher
;
import
com.school.project.dto.teacher.AddAssessmentDTO
;
import
com.school.project.dto.teacher.AddSectionDTO
;
import
com.school.project.mapper.SectionToListOfSectionMapper
;
import
com.school.project.model.marks.Assessment
;
import
com.school.project.model.marks.Section
;
import
com.school.project.repository.CourseRepository
;
import
com.school.project.repository.marks.AssessmentRepository
;
import
com.school.project.repository.marks.AssessmentTypeRepository
;
import
com.school.project.repository.marks.SectionRepository
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.stereotype.Service
;
import
javax.transaction.Transactional
;
@Service
public
class
UploadMarksServiceImpl
implements
UploadMarksService
{
@Autowired
CourseRepository
courseRepository
;
@Autowired
AssessmentTypeRepository
assessmentTypeRepository
;
@Autowired
AssessmentRepository
assessmentRepository
;
@Autowired
SectionRepository
sectionRepository
;
@Autowired
SectionToListOfSectionMapper
mapper
;
@Override
@Transactional
public
Assessment
setAssessment
(
AddAssessmentDTO
assessmentDTO
)
{
Assessment
assessment
=
new
Assessment
();
assessment
.
setAssessmentType
(
assessmentTypeRepository
.
findByAssessmentTypeName
(
assessmentDTO
.
getAssessment
()));
assessment
.
setCourse
(
courseRepository
.
findByCourseCode
(
assessmentDTO
.
getCourseCode
()));
return
assessmentRepository
.
save
(
assessment
);
}
@Override
@Transactional
@Modifying
public
Section
setSection
(
AddSectionDTO
sectionDTO
)
{
Section
section
=
new
Section
();
section
.
setAssessment
(
assessmentRepository
.
findByAssessmentId
(
sectionDTO
.
getAssessmentId
()));
section
.
setTotalMarks
(
sectionDTO
.
getTotalMarks
());
section
.
setTotalWeightage
(
sectionDTO
.
getTotalWeightage
());
section
=
sectionRepository
.
save
(
section
);
Assessment
assessment
=
assessmentRepository
.
findByAssessmentId
(
sectionDTO
.
getAssessmentId
());
assessment
.
setSection
(
mapper
.
modelToList
(
section
));
return
section
;
}
}
src/main/resources/data.sql
View file @
6c2d7aee
...
@@ -11,5 +11,4 @@ INSERT INTO assessment_type VALUES (6,'PRESENTATION');
...
@@ -11,5 +11,4 @@ INSERT INTO assessment_type VALUES (6,'PRESENTATION');
INSERT
INTO
assessment_type
VALUES
(
7
,
'REPORT'
);
INSERT
INTO
assessment_type
VALUES
(
7
,
'REPORT'
);
INSERT
INTO
assessment_type
VALUES
(
8
,
'PARTICIPATION'
);
INSERT
INTO
assessment_type
VALUES
(
8
,
'PARTICIPATION'
);
INSERT
INTO
assessment_type
VALUES
(
9
,
'LABWORK'
);
INSERT
INTO
assessment_type
VALUES
(
9
,
'LABWORK'
);
INSERT
INTO
assessment_type
VALUES
(
10
,
'LABTASK'
);
INSERT
INTO
assessment_type
VALUES
(
10
,
'LABTASK'
);
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment