This Gradebook API was created using the Java Spring Boot API.
Run application and visit link
http://localhost:8080/swagger-ui/
- Returns Response Entity's to have full control of the HTTP Response
- Status Codes, Headers, and Body
- Throws Exceptions when an issue occurs
- Handles the conversion Entity & Data Transfer Objects
- Serves helpful data:
- Find missing Assignments for a given Student
- Find Minimum, Average, and Maximum Grade for given Assignment
- Calculates Letter Grade for Course
- Find Courses without Professors
- Uses JPQL Queries to fetch data from MySQL Database
- Logging
- Implements basic logging for application flow
- Before and AfterReturning Method calls
- Implements basic logging for application flow
- Work in Progress
-
Spring Security
- Create Security checks at Service layer @PreAuthorize
- Store User and Authorities in Database
- Create Person Class that Student, Professor & Admin can extend from
- Should User extend Person?
- Create a link between Users and Student/Teacher
- Spring Security ACL (Access Control List) seems to be the option.
- ACL specifies which identities are granted which operations on a given object
- Spring Security Access Control List is a Spring component which supports Domain Object Security. Simply put, Spring ACL helps in defining permissions for specific user/role on a single domain object
- instead of across the board, at the typical per-operation level.
- Spring Security ACL (Access Control List) seems to be the option.
-
Improve Response Entity Status Codes
-
Improve thrown Exceptions
- Ensure proper Exceptions are thrown
- Ensure Exceptions are handled properly
-
Find more edge cases