Questo repository contiene il codice del mio portfolio personale, composto da un backend Spring Boot e da un frontend React (Vite + TypeScript).
Scopo: mostrare progetti, esperienza, competenze e permettere una semplice demo CRUD per autenticazione e dati di esempio.
Contenuto del repository
backend/: applicazione Java Spring Boot (API REST, sicurezza, persistenza).frontend/: applicazione React + TypeScript (Vite) per l'interfaccia utente.
Tecnologie principali
- Backend: Java, Spring Boot, Spring Security, JPA/Hibernate
- Frontend: React, TypeScript, Vite, TailwindCss
- Build: Gradle (backend), npm / pnpm (frontend)
Struttura rilevante:
backend/src/main/java/...: sorgenti Java dell'APIbackend/src/main/resources: configurazioni Spring (application.properties)frontend/src: sorgenti React (componenti, pagine, servizi)
Prerequisiti
- Java 17+
- Gradle wrapper incluso (usare
./gradlew) - Node.js 18+ e npm o pnpm
- Docker + Docker Compose (per deploy containerizzato)
Esecuzione in locale
- Avviare il backend
cd backend
./gradlew bootRunIl backend espone le API su http://localhost:8080 (configurazione locale).
- Avviare il frontend
cd frontend
npm install
npm run devPer usare pnpm sostituire i comandi di npm con pnpm.
Build e pubblicazione immagini Docker su GitHub Container Registry
Questo repository usa GitHub Actions per costruire e pubblicare le immagini Docker di backend e frontend su GHCR.
Le immagini pubblicate sono:
ghcr.io/biziol/portfolio-backendghcr.io/biziol/portfolio-frontend
Deploy su server con Docker Compose
Il file docker-compose.yml è già configurato per usare immagini GHCR e avviare:
- frontend esposto su
3001 - backend esposto su
8081 - database MariaDB interno
Per avviare i servizi con l'ultima immagine pubblicata:
export IMAGE_TAG=latest
docker compose pull
docker compose up -dSe i package GHCR sono privati, prima fai login:
docker login ghcr.io -u biziolNginx sull'host può poi fare da proxy pubblico verso:
http://127.0.0.1:3001(frontend)http://127.0.0.1:8081(backend API)
Se vuoi ricostruire in locale dal sorgente, Docker Compose continuerà a usare i Dockerfile presenti in backend/ e frontend/.
Documentazione API (Swagger UI)
Il backend include la documentazione OpenAPI tramite SpringDoc e rende disponibile Swagger UI.
- In locale (backend su
8080):http://localhost:8080/swagger-ui.html - In deploy con Docker Compose (backend su
8081):http://localhost:8081/swagger-ui.html - Endpoint OpenAPI JSON:
/v3/api-docs
Variabili di ambiente
frontend/.envofrontend/.env.examplecontiene variabili per la build (es. URL backend).backend/src/main/resources/application-local.propertiespuò essere usato per configurare il profilo locale.
Contatti e autore
- Autore: Fabrizio Lombardi
- Contatto: fabriziolombardi732@gmail.com
Contribuire
Se vuoi suggerire modifiche o miglioramenti, apri una issue o invia una pull request. Per modifiche rilevanti, apri prima una issue per discutere il cambiamento.
Licenza
Questo progetto è rilasciato sotto la Apache License, Version 2.0. Vedi il file LICENSE per il testo completo della licenza.