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
490fd3b0
Commit
490fd3b0
authored
Jul 18, 2022
by
Muhammad Suleman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added Upload Marks Feature
parent
f5443341
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
125 additions
and
91 deletions
+125
-91
TeacherController.java
...java/com/school/project/controller/TeacherController.java
+4
-8
ObtainedMarksDTO.java
...java/com/school/project/dto/teacher/ObtainedMarksDTO.java
+13
-0
SectionsDTO.java
...main/java/com/school/project/dto/teacher/SectionsDTO.java
+16
-0
UploadMarksDTO.java
...n/java/com/school/project/dto/teacher/UploadMarksDTO.java
+3
-3
AssessmentToListOfAssessment.java
...m/school/project/mapper/AssessmentToListOfAssessment.java
+17
-0
Course.java
src/main/java/com/school/project/model/Course.java
+6
-3
Student.java
src/main/java/com/school/project/model/Student.java
+5
-3
Assessment.java
src/main/java/com/school/project/model/marks/Assessment.java
+6
-5
Section.java
src/main/java/com/school/project/model/marks/Section.java
+8
-2
StudentMarks.java
...ain/java/com/school/project/model/marks/StudentMarks.java
+8
-4
SectionRepository.java
...om/school/project/repository/marks/SectionRepository.java
+1
-0
UploadMarksService.java
...om/school/project/service/teacher/UploadMarksService.java
+3
-5
UploadMarksServiceImpl.java
...chool/project/service/teacher/UploadMarksServiceImpl.java
+34
-57
application.properties
src/main/resources/application.properties
+1
-1
No files found.
src/main/java/com/school/project/controller/TeacherController.java
View file @
490fd3b0
...
...
@@ -31,16 +31,12 @@ public class TeacherController {
@PostMapping
(
"/upload/marks"
)
public
void
addAssessment
(
@RequestBody
AddAssessmentDTO
addAssessmentDTO
){
uploadMarksService
.
setAssessment
(
addAssessmentDTO
)
.
getAssessmentId
()
;
uploadMarksService
.
setAssessment
(
addAssessmentDTO
);
}
@PostMapping
(
"/upload/marks/
section
"
)
public
void
add
SectionInAssessment
(
@RequestBody
AddSectionDTO
addSectionDTO
)
{
uploadMarksService
.
set
Section
(
addSection
DTO
);
@PostMapping
(
"/upload/marks/
assessments
"
)
public
void
add
Marks
(
@RequestBody
UploadMarksDTO
uploadMarksDTO
)
{
uploadMarksService
.
set
ObtainedMarks
(
uploadMarks
DTO
);
}
@PostMapping
(
"/upload/marks/section/assessment"
)
public
void
setStudentMarks
(
@RequestBody
UploadMarksDTO
uploadMarksDTO
)
{
uploadMarksService
.
setMarks
(
uploadMarksDTO
);
}
}
src/main/java/com/school/project/dto/teacher/
AddSection
DTO.java
→
src/main/java/com/school/project/dto/teacher/
ObtainedMarks
DTO.java
View file @
490fd3b0
...
...
@@ -3,13 +3,11 @@ package com.school.project.dto.teacher;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.nio.file.LinkOption
;
@Getter
@Setter
public
class
AddSectionDTO
{
public
class
ObtainedMarksDTO
{
private
String
studentRollNumber
;
private
Long
obtainedMarks
;
private
Long
assessmentId
;
private
Long
totalMarks
;
private
Long
totalWeightage
;
}
src/main/java/com/school/project/dto/teacher/SectionsDTO.java
0 → 100644
View file @
490fd3b0
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
;
}
src/main/java/com/school/project/dto/teacher/UploadMarksDTO.java
View file @
490fd3b0
package
com
.
school
.
project
.
dto
.
teacher
;
import
com.school.project.model.marks.Section
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -11,8 +12,7 @@ import java.util.Set;
@Setter
public
class
UploadMarksDTO
{
private
Long
sectionId
;
private
List
<
String
>
studentRollNumbers
;
private
List
<
Long
>
obtainedMarks
;
private
Long
assessmentId
;
private
List
<
SectionsDTO
>
sectionsList
;
}
src/main/java/com/school/project/mapper/AssessmentToListOfAssessment.java
0 → 100644
View file @
490fd3b0
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
;
}
}
src/main/java/com/school/project/model/Course.java
View file @
490fd3b0
...
...
@@ -40,7 +40,10 @@ public class Course {
@JsonIgnore
private
Set
<
Teacher
>
teacherList
;
@OneToMany
(
mappedBy
=
"course"
,
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
LAZY
)
@JsonIgnore
private
List
<
Assessment
>
assessment
;
@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
;
}
src/main/java/com/school/project/model/Student.java
View file @
490fd3b0
...
...
@@ -55,9 +55,11 @@ public class Student {
@JsonIgnore
private
User
studentAppUser
;
@OneToMany
(
mappedBy
=
"student"
,
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
LAZY
)
@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
List
<
StudentMarks
>
studentMarks
;
private
Set
<
StudentMarks
>
studentMarks
;
}
src/main/java/com/school/project/model/marks/Assessment.java
View file @
490fd3b0
...
...
@@ -6,11 +6,9 @@ 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
...
...
@@ -29,15 +27,18 @@ public class Assessment {
private
AssessmentType
assessmentType
;
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
@JoinTable
(
name
=
"course_assessments"
,
@JoinTable
(
name
=
"course
s
_assessments"
,
joinColumns
=
{
@JoinColumn
(
name
=
"assessment_id"
)},
inverseJoinColumns
=
{
@JoinColumn
(
name
=
"course_id"
)})
@NotNull
@JsonIgnore
private
Course
course
;
@OneToMany
(
mappedBy
=
"assessment"
,
fetch
=
FetchType
.
LAZY
)
@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
;
}
src/main/java/com/school/project/model/marks/Section.java
View file @
490fd3b0
...
...
@@ -6,6 +6,7 @@ import lombok.Getter;
import
lombok.Setter
;
import
javax.persistence.*
;
import
java.util.List
;
import
java.util.Set
;
@Getter
...
...
@@ -31,12 +32,17 @@ public class Section {
@JoinTable
(
name
=
"assessment_sections"
,
joinColumns
=
{
@JoinColumn
(
name
=
"section_id"
)},
inverseJoinColumns
=
{
@JoinColumn
(
name
=
"assessment_id"
)})
@NotNull
@JsonIgnore
private
Assessment
assessment
;
@OneToMany
(
mappedBy
=
"section"
,
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
LAZY
)
@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
Set
<
StudentMarks
>
studentMarks
;
private
List
<
StudentMarks
>
studentMarks
;
}
src/main/java/com/school/project/model/marks/StudentMarks.java
View file @
490fd3b0
...
...
@@ -21,13 +21,17 @@ public class StudentMarks {
@Column
(
name
=
"obtained_marks"
)
private
Long
obtainedMarks
;
@ManyToOne
(
fetch
=
FetchType
.
LAZY
,
cascade
=
CascadeType
.
ALL
)
@JoinColumn
(
name
=
"student_id"
)
@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
,
cascade
=
CascadeType
.
ALL
)
@JoinColumn
(
name
=
"section_id"
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
@JoinTable
(
name
=
"student_marks_section"
,
joinColumns
=
{
@JoinColumn
(
name
=
"student_marks_id"
)},
inverseJoinColumns
=
{
@JoinColumn
(
name
=
"section_id"
)})
@NotNull
private
Section
section
;
}
src/main/java/com/school/project/repository/marks/SectionRepository.java
View file @
490fd3b0
...
...
@@ -4,4 +4,5 @@ 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/service/teacher/UploadMarksService.java
View file @
490fd3b0
package
com
.
school
.
project
.
service
.
teacher
;
import
com.school.project.dto.teacher.AddAssessmentDTO
;
import
com.school.project.dto.teacher.
AddSection
DTO
;
import
com.school.project.dto.teacher.
ObtainedMarks
DTO
;
import
com.school.project.dto.teacher.UploadMarksDTO
;
import
com.school.project.model.marks.Assessment
;
import
com.school.project.model.marks.Section
;
import
com.school.project.model.marks.StudentMarks
;
import
org.springframework.stereotype.Service
;
@Service
public
interface
UploadMarksService
{
Assessment
setAssessment
(
AddAssessmentDTO
assessmentDTO
);
void
setAssessment
(
AddAssessmentDTO
assessmentDTO
);
Section
setSection
(
AddSectionDTO
section
DTO
);
void
setObtainedMarks
(
UploadMarksDTO
uploadMarks
DTO
);
void
setMarks
(
UploadMarksDTO
marksDTO
);
}
src/main/java/com/school/project/service/teacher/UploadMarksServiceImpl.java
View file @
490fd3b0
package
com
.
school
.
project
.
service
.
teacher
;
import
com.school.project.dto.teacher.AddAssessmentDTO
;
import
com.school.project.dto.teacher.AddSectionDTO
;
import
com.school.project.dto.teacher.UploadMarksDTO
;
import
com.school.project.mapper.MarksToListOfMarks
;
import
com.school.project.mapper.SectionToListOfSectionMapper
;
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
;
...
...
@@ -15,7 +15,6 @@ 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.data.jpa.repository.Modifying
;
import
org.springframework.stereotype.Service
;
import
javax.transaction.Transactional
;
...
...
@@ -25,6 +24,10 @@ public class UploadMarksServiceImpl implements UploadMarksService {
@Autowired
CourseRepository
courseRepository
;
@Autowired
StudentRepository
studentRepository
;
@Autowired
AssessmentTypeRepository
assessmentTypeRepository
;
...
...
@@ -35,84 +38,58 @@ public class UploadMarksServiceImpl implements UploadMarksService {
SectionRepository
sectionRepository
;
@Autowired
StudentRepository
studentRepository
;
@Autowired
SectionToListOfSectionMapper
sectionMapper
;
StudentMarksRepository
studentMarksRepository
;
@Autowired
MarksToListOfMarks
marks
Mapper
;
AssessmentToListOfAssessment
assessment
Mapper
;
@Autowired
StudentMarksRepository
studentMarksRepository
;
@Override
@Transactional
public
Assessment
setAssessment
(
AddAssessmentDTO
assessmentDTO
)
{
public
void
setAssessment
(
AddAssessmentDTO
assessmentDTO
)
{
Assessment
assessment
=
new
Assessment
();
assessment
.
setAssessmentType
(
assessmentTypeRepository
.
findByAssessmentTypeName
(
assessmentDTO
.
getAssessment
()));
Course
course
=
courseRepository
.
findByCourseCode
(
assessmentDTO
.
getCourseCode
());
assessment
.
setAssessmentType
(
assessmentTypeRepository
.
findByAssessmentTypeName
(
assessmentDTO
.
getAssessment
()));
assessment
.
setCourse
(
courseRepository
.
findByCourseCode
(
assessmentDTO
.
getCourseCode
()));
assessment
.
setCourse
(
course
);
return
assessmentRepository
.
save
(
assessment
);
assessmentRepository
.
save
(
assessment
);
}
@Override
@Transactional
@Modifying
public
Section
setSection
(
AddSectionDTO
sectionDTO
)
{
Section
section
=
new
Section
();
public
void
setObtainedMarks
(
UploadMarksDTO
uploadMarksDTO
)
{
section
.
setAssessment
(
assessmentRepository
.
findByAssessmentId
(
sectionDTO
.
getAssessmentId
()));
section
.
setTotalMarks
(
sectionDTO
.
getTotalMarks
());
section
.
setTotalWeightage
(
sectionDTO
.
getTotalWeightage
());
Assessment
assessment
=
assessmentRepository
.
findByAssessmentId
(
uploadMarksDTO
.
getAssessmentId
());
section
=
sectionRepository
.
save
(
section
);
uploadMarksDTO
.
getSectionsList
().
forEach
(
sectionInList
->
{
Assessment
assessment
=
assessmentRepository
.
findByAssessmentId
(
sectionDTO
.
getAssessmentId
());
assessment
.
setSection
(
sectionMapper
.
modelToList
(
section
));
Section
newSection
=
new
Section
();
return
section
;
}
newSection
.
setTotalMarks
(
sectionInList
.
getMarks
());
newSection
.
setTotalWeightage
(
sectionInList
.
getWeightage
());
newSection
.
setAssessment
(
assessment
);
@Override
@Transactional
public
void
setMarks
(
UploadMarksDTO
marksDTO
)
{
int
marksSize
=
marksDTO
.
getObtainedMarks
().
size
();
Section
section
=
sectionRepository
.
findById
(
marksDTO
.
getSectionId
()).
get
();
Section
section
=
sectionRepository
.
save
(
newSection
);
/* List<Student> studentsSet = new ArrayList<>();
List<Long> studentObtainedMarks = marksDTO.getObtainedMarks();
studentRollNumbers.forEach(studentRollNumber -> studentsSet.add(studentRepository.findByRollNumber(studentRollNumber)));
sectionInList
.
getObtainedMarksDTOS
().
forEach
(
obtainedMarksInList
->
{
studentsSet.forEach(student -> {
StudentMarks studentMarks = new StudentMarks();
Student
student
=
studentRepository
.
findByRollNumber
(
obtainedMarksInList
.
getStudentRollNumber
());
studentMarks.setStudent(student);
studentMarks.setSection(section);
studentMarks =studentMarksRepository.save(studentMarks);
student.setStudentMarks(studentMarks);
});*/
git
StudentMarks
studentMarks
=
new
StudentMarks
();
for
(
int
i
=
0
;
i
<
marksDTO
.
getStudentRollNumbers
().
size
()
;
i
++)
{
StudentMarks
studentMarks
=
new
StudentMarks
();
studentMarks
.
setObtainedMarks
(
obtainedMarksInList
.
getObtainedMarks
());
studentMarks
.
setStudent
(
student
);
studentMarks
.
setSection
(
section
);
studentMarks
.
setSection
(
section
);
studentMarks
.
setStudent
(
studentRepository
.
findByRollNumber
(
marksDTO
.
getStudentRollNumbers
().
get
(
i
)));
studentMarksRepository
.
save
(
studentMarks
);
if
(
i
<
marksDTO
.
getObtainedMarks
().
size
()
)
{
studentMarks
.
setObtainedMarks
(
marksDTO
.
getObtainedMarks
().
get
(
i
));
}
else
{
studentMarks
.
setObtainedMarks
(
0
l
);
}
});
studentMarksRepository
.
save
(
studentMarks
);
}
}
);
}
}
src/main/resources/application.properties
View file @
490fd3b0
...
...
@@ -2,7 +2,7 @@
spring.jpa.hibernate.ddl-auto
=
update
spring.datasource.url
=
jdbc:mysql://localhost:3306/school-portal
spring.datasource.username
=
root
spring.datasource.password
=
root
spring.datasource.password
=
charlie123
spring.security.user.name
=
sulemantalpur6@gmail.com
...
...
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