Skip to content

Fase 6 – Progetti Finali (In Corso)

Progetto 1: CRUD Completo con Autenticazione

  • Obiettivo: Costruire un'API RESTful robusta con autenticazione sicura e test.
  • Tecnologie: Spring Boot, Spring Data JPA (PostgreSQL), Spring Security (JWT), JUnit 5, Testcontainers.
  • Funzionalità: CRUD per entità (es. attività, utenti), autenticazione con ruoli (ADMIN, USER), documentazione con Swagger.
  • Opzionale: Aggiungere un'interfaccia Thymeleaf per visualizzare/gestire le attività.
  • Esempio: API per gestire progetti (entità: Project, Task, User) con endpoint protetti.

Progetto 2: Caricamento File

  • Obiettivo: Aggiungere funzionalità di caricamento file all'API del Progetto 1.
  • Tecnologie: Spring Boot (MultipartFile), Amazon S3 o storage locale, validazione dei file.
  • Funzionalità: Caricare immagini/documenti associati alle attività, validare tipo/dimensione.
  • Esempio: Consentire il caricamento di allegati (es. PDF, PNG) per le attività nell'API.

Progetto 3: Distribuzione su Cloud

  • Obiettivo: Distribuire l'API su una piattaforma cloud con CI/CD.
  • Tecnologie: Railway, Heroku o AWS (Elastic Beanstalk), GitHub Actions, Docker.
  • Funzionalità: Pacchettizzare come JAR/Docker, configurare variabili d'ambiente, automatizzare la distribuzione.
  • Opzionale: Implementare caching con Redis per ottimizzare query frequenti.
  • Esempio: Distribuire l'API del progetto su Railway con PostgreSQL e CI/CD.

Progetto 4: Microservizi

  • Obiettivo: Dividere l'API del Progetto 1 in microservizi orchestrati.
  • Tecnologie: Spring Cloud (Eureka, Gateway), Docker Compose, REST per la comunicazione.
  • Funzionalità: Microservizi per Tasks e Users, con service discovery.
  • Opzionale: Usare RabbitMQ per la comunicazione asincrona tra microservizi.
  • Esempio: Separare la logica di attività e utenti in due servizi, orchestrati con Docker.

Progetto 5: Integrazione con API Esterne

  • Obiettivo: Consumare un'API esterna per migliorare le funzionalità.
  • Tecnologie: Spring RestTemplate o WebClient, autenticazione API (es. OAuth2).
  • Funzionalità: Integrare con un'API pubblica (es. inviare notifiche via email con SendGrid).
  • Opzionale: Aggiungere una query GraphQL per recuperare attività/utenti e memorizzare metadati in MongoDB.
  • Esempio: Aggiungere notifiche email per il completamento delle attività.

Best Practices per il Portfolio

  • Git: Commit per funzionalità (es. feature/crud, feature/upload), branch chiari.
  • Documentazione: README con descrizione, configurazione, endpoint, distribuzione e screenshot.
  • Pubblicazione: Ospitare su GitHub con licenza open-source (es. MIT).

Risorse