Skip to content

marioOrtegaGarcia/java-spring-gradebook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gradebook

This Gradebook API was created using the Java Spring Boot API.

Gradebook RESET API Documentation

Run application and visit link
http://localhost:8080/swagger-ui/

Features

Controllers

  • Returns Response Entity's to have full control of the HTTP Response
    • Status Codes, Headers, and Body
  • Throws Exceptions when an issue occurs

Services

  • 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

Hibernate

  • Uses JPQL Queries to fetch data from MySQL Database

Aspect Oriented Programming

  • Logging
    • Implements basic logging for application flow
      • Before and AfterReturning Method calls

Spring Security

  • Work in Progress

TODO

  • 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.
  • Improve Response Entity Status Codes

  • Improve thrown Exceptions

    • Ensure proper Exceptions are thrown
    • Ensure Exceptions are handled properly
  • Find more edge cases

Releases

No releases published

Packages

No packages published

Languages