Piattaforma backend basata su Spring Boot per la gestione e valorizzazione della filiera agricola locale. Il sistema gestisce l'interazione tra produttori, trasformatori, distributori, acquirenti e animatori territoriali.
L'applicazione permette la gestione di:
- Catalogo Prodotti e Pacchetti: Caricamento, validazione e vendita di prodotti locali.
- Eventi Territoriali: Creazione e gestione di eventi promozionali con sistema di prenotazione.
- Workflow di Approvazione: Ruolo di Curatore per validare contenuti prima della pubblicazione.
- Ordini e Carrello: Gestione completa del processo di acquisto.
Il progetto segue un'architettura a livelli (Controller, Service, Repository, Model). Sono stati implementati specifici Design Pattern per risolvere problematiche architetturali:
- Builder Pattern (GoF): Utilizzato per la costruzione complessa e validata delle entità
Evento, separando la logica di costruzione dalla rappresentazione dell'oggetto. - Observer Pattern (GoF): Implementato per il sistema di notifiche social. Il
CuratoreService(Subject) notifica ilSocialService(Observer) quando un contenuto viene approvato, disaccoppiando la logica di business da quella di notifica.
- Java 17 o superiore
- Maven 3.6+
- Database H2 (In-memory, default) o MySQL
-
Clonare il repository:
git clone https://github.com/Capsoide/filiera-ids.git cd filiera-ids -
Compilare il progetto:
mvn clean install
-
Avviare l'applicazione:
mvn spring-boot:run
L'applicazione sarà disponibile all'indirizzo: http://localhost:8080
L'interazione avviene tramite API REST. Di seguito alcuni degli endpoint principali:
- Eventi:
POST /api/eventi(Creazione evento - Richiede ruolo Animatore) - Prodotti:
GET /api/prodotti/catalogo(Visualizzazione catalogo) - Curatore:
POST /api/curatore/approva/{id}(Approvazione contenuti) - Ordini:
POST /api/ordini(Checkout carrello)
Per testare le funzionalità è possibile utilizzare Postman. Assicurarsi di includere l'header di autenticazione (Basic Auth) per gli endpoint protetti.