Proyecto API de gestión de préstamos en una biblioteca - librería basado en tecnologías Spring Boot, Spring Data, JPA, Hibernate, Lombok y Mapstruct
A partir del proyecto de la librería que tenéis subido en el Equipo de Teams se pide:
- Crear un proyecto Spring Boot con el mismo modelo de entidades.
- Implementación de servicios y repositorios para cada una de las entidades.
- Gestión CRUD de libros.
- Gestión CRUD de copias.
- Gestión CRUD de usuarios.
- Gestión de préstamos y devoluciones.
Las especificaciones funcionales son las siguientes:
- Se tienen distintas categorías literarias, entre las que se destacan [1.] Novela, [2.] Teatro, [3.] Poesía y [4.] Ensayo. Estas categorías deben ser gestionables por la aplicación (CRUD).
- En la biblioteca se encuentran libros, que tendrán los siguientes atributos: código, título, ISBN, categoría, autor, editorial.
- Los autores son otra entidad importante en nuestro modelo, por lo que también ser gestionará el alta, baja y modificación de los mismos.
- De cada libro existirá un número finito de copias, que tendrán un identificador y un estado: [1.] en la biblioteca, [2.] prestada, [3.] con retraso y [4.] en reparación.
- Se tendrán registrados usuarios, que contarán con una clave alfanumérica que los identifique de manera inequívoca.
- Cada uno de los usuarios puede tener un máximo de tres libros prestados, y se debe llevar un registro del histórico de usuarios que han cogido prestada cada una de las copias.
For further reference, please consider the following sections:
- Official Apache Maven documentation
- Spring Boot Maven Plugin Reference Guide
- Create an OCI image
- Spring Web
- Spring Security
- Spring Data JPA
- Validation
- Spring Boot Actuator
- Spring Boot DevTools
- Spring Configuration Processor
- Spring HATEOAS
The following guides illustrate how to use some features concretely:
- Building a RESTful Web Service
- Serving Web Content with Spring MVC
- Building REST services with Spring
- Securing a Web Application
- Spring Boot and OAuth2
- Authenticating a User with LDAP
- Accessing Data with JPA
- Accessing data with MySQL
- Validation
- Building a RESTful Web Service with Spring Boot Actuator
- Building a Hypermedia-Driven RESTful Web Service