There is a school with 3 course in it. Theese 3 course are being taught in this school: Mathematics, Physics, Chemistry Avarage grade, calculated according to 2 exams in a year. Avarage grade should be more than 50 for passing course. There are two school years, one active (2020-2021 school year) and one passive (2019-2020 school year). Students have grades and average grades for both active and passive school years.
The application has 3 apis
- StudentAPI for CRUP operations
- CourseAPI for CRUP operations
- StudentCourseAPI for assing any course to any student
POST /api/v1/course/add - creates a new course
GET /api/v1/course/getbycode/{code} - retrieves a student according to identity
DELETE /api/v1/course/{code} - deletes course
PUT /api/v1/course/{code} - updates course
POST /api/v1/student/addCourse - creates a new student
GET /api/v1/student/getbyid/{identity} - retrieves a student according to identity
GET /api/v1/student/getall - retrieves all students
DELETE /api/v1/student/{identity} - deletes student
PUT /api/v1/student/{identity} - updates student
POST /api/v1/studentcourse/add - creates a new student
POST /api/v1/studentcourse/getGradesOfStudent - retrives list all the grades and avarage grade of a student according to the school year code, course code and student id that will be given
POST /api/v1/studentcourse/getGradesOfAllStudents - list all the grades and avarage grade of all students according to the school year code and course code that will be given.
GET /api/v1/studentcourse/getbyid/{identity} - retrieves a studentcourse according to identity
GET /api/v1/studentcourse/getall - retrieves all studentcourses
DELETE /api/v1/studentcourse/{identity} - deletes studentcourse
PUT /api/v1/studentcourse/{identity} - updates studentcourse
JUnit test coverage is 100% as well as unit and integration tests are available.
- Java 17
- Spring Boot
- Spring Data JPA
- Validation
- Restful API
- Swagger documentation
- H2 In memory database
- Docker
- JUnit 5
- Maven
- Docker
http://localhost:8080/api/v1/swagger-ui.html