Questa applicazione è un sistema di gestione di una biblioteca, sviluppato con Spring Boot. Consente di gestire libri, autori e utenti tramite un'interfaccia web. Include funzionalità come l'autenticazione dell'utente, l'uso di DTO (Data Transfer Objects) per la gestione delle richieste e delle risposte, e l'integrazione di WebSocket per una comunicazione in tempo reale.
- Gestione dei Libri: È possibile visualizzare, aggiungere, modificare e rimuovere libri dalla biblioteca.
- Gestione degli Autori: Gli autori dei libri sono gestiti separatamente, con la possibilità di visualizzare e aggiungere autori.
- Gestione degli Utenti: Gli utenti possono autenticarsi per accedere al sistema e gestire i propri dati.
- Swagger: È integrato Swagger per la documentazione e l'interazione con le API RESTful.
- WebSocket: Implementazione di WebSocket per la comunicazione in tempo reale.
- DTO: Uso di DTO per una migliore separazione tra le entità di dominio e le risposte o richieste API.
- Spring Boot: Framework principale per lo sviluppo dell'applicazione.
- Spring Web: Per la gestione delle API RESTful.
- Spring Security: Per l'autenticazione e la gestione degli utenti.
- Spring Data JPA: Per l'accesso al database con Hibernate.
- Swagger: Per la documentazione delle API e l'interazione tramite un'interfaccia grafica.
- WebSocket: Per la gestione della comunicazione in tempo reale.
- Thymeleaf: Per la creazione delle pagine HTML dinamiche.
- H2 Database: Database in memoria per la gestione dei dati (è possibile configurare un database diverso).
- Java 17 o superiore
- Maven o Gradle per la gestione delle dipendenze
- Un IDE come IntelliJ IDEA o Eclipse
-
Clonare il repository:
git clone https://github.com/NotSoupCarry/BackEnd_JavaLibrary.git
-
Navigare nella cartella del progetto:
cd BackEnd_JavaLibrary -
Compilare il progetto:
Se usi Maven:
mvn clean install
Se usi Gradle:
gradle build
-
Avviare l'applicazione:
Se usi Maven:
mvn spring-boot:run
Se usi Gradle:
gradle bootRun
L'applicazione sarà avviata su
http://localhost:8080.
Le API RESTful sono documentate tramite Swagger. Puoi accedere all'interfaccia di Swagger all'indirizzo:
http://localhost:8080/swagger-ui/index.html
Swagger ti permette di visualizzare tutte le rotte API, i metodi supportati (GET, POST, PUT, DELETE), e di interagire con esse direttamente.
L'applicazione utilizza WebSocket per inviare messaggi in tempo reale. Puoi connetterti al WebSocket all'indirizzo:
ws://localhost:8080/ws
src/main/java/com/example/library/: Contiene la logica dell'applicazione, inclusi i controller, servizi, repository e la configurazione WebSocket.src/main/resources/: Contiene i file di configurazione, tra cuiapplication.propertiesper configurare il database, il server, ecc.src/main/resources/static/: Contiene i file statici (come CSS, JavaScript, immagini) per la parte frontend.src/main/resources/templates/: Contiene i file di template Thymeleaf per il rendering delle pagine web.
L'applicazione è configurata per utilizzare un database H2 in memoria. Per configurare un altro database, modifica il file application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/biblioteca
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=updateWebSocket è configurato nel file WebSocketConfig.java:
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new WebSocketHandler(), "/ws").setAllowedOrigins("*");
}
}Swagger è abilitato nel progetto tramite la dipendenza springfox-swagger2. Puoi personalizzare il comportamento di Swagger nel file di configurazione SwaggerConfig.java.
Se desideri contribuire a questo progetto, puoi fare un fork del repository, implementare le modifiche e inviare una pull request.
-
Crea un nuovo branch per la tua funzionalità:
git checkout -b nome-branch
-
Implementa la tua funzionalità e aggiungi test se necessario.
-
Commetti le tue modifiche:
git commit -m "Descrizione della tua modifica" -
Pusha le modifiche:
git push origin nome-branch
-
Invia una pull request tramite GitHub.
Grazie per aver utilizzato il progetto! Se hai domande, non esitare a creare una issue nel repository o a contattare gli sviluppatori.