You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+33-30Lines changed: 33 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,10 @@
1
-
# Sistema di Gestione Annotazioni
1
+
# Sistema di Gestione personale
2
2
3
3
Progetto sviluppato da < AlNao /> come esempio di progetto con Java Spring Boot.
4
4
5
-
Un sistema di gestione annotazioni multi-modulo basato su Spring Boot che implementa l'architettura esagonale (Hexagonal Architecture) con supporto per deployment sia on-premise che cloud AWS.
5
+
Un sistema di gestione personale multi-modulo basato su Spring Boot che implementa l'architettura esagonale (Hexagonal Architecture) con supporto per deployment sia on-premise che cloud AWS.
6
+
Prevede
7
+
- Una lista di annotazioni
6
8
7
9
8
10
## 📚 Indice rapido
@@ -24,7 +26,7 @@ Un sistema di gestione annotazioni multi-modulo basato su Spring Boot che implem
24
26
## 🛠️ Struttura progetto:
25
27
Il progetto segue i principi dell'*Hexagonal Architecture* (Ports and Adapters) e si basa su un'architettura a microservizi modulare:
26
28
```
27
-
📦 annotazioni-parent
29
+
📦 progetto
28
30
├── 📁 adapter-port # Interfacce e domini (Hexagonal Core)
29
31
├── 📁 adapter-api # REST API Controllers
30
32
├── 📁 adapter-web # Risorse statiche e configurazioni web
@@ -36,7 +38,7 @@ Caratteristiche:
36
38
-**Multi-database**: Supporto per PostgreSQL, MySQL, MongoDB, DynamoDB
37
39
-**Multi-ambiente**: Configurazioni separate per AWS e On-Premise
38
40
-**Architettura esagonale**: Separazione netta tra business logic e infrastruttura
39
-
-**REST API**: Endpoint completi per gestione annotazioni
41
+
-**REST API**: Endpoint completi per gestione dei dati
40
42
-**Profili Spring**: Attivazione automatica delle implementazioni corrette
41
43
-**Transazionalità**: Gestione delle transazioni cross-database
42
44
-**Configurazione esterna**: Supporto per variabili d'ambiente
@@ -68,6 +70,10 @@ Prerequisiti:
68
70
docker-compose build --no-cache app
69
71
docker-compose up
70
72
```
73
+
Per rimuovere tutto
74
+
```bash
75
+
docker-compose down --remove-orphans
76
+
```
71
77
- Esecuzione profilo AWS *coming soon*
72
78
```bash
73
79
# Profilo AWS
@@ -161,10 +167,10 @@ L'applicazione espone la documentazione interattiva delle API REST tramite Swagg
161
167
@Configuration
162
168
public class SwaggerConfig {
163
169
@Bean
164
-
public OpenAPI annotazioniOpenAPI() {
170
+
public OpenAPI getsionepersonaleOpenAPI() {
165
171
return new OpenAPI()
166
-
.info(new Info().title("Sistema di Gestione Annotazioni API")
167
-
.description("API per la gestione delle annotazioni, versioning e storico note.")
172
+
.info(new Info().title("Sistema di Gestione personale API")
173
+
.description("API per la gestione delle personale, versioning e storico note.")
@@ -173,7 +179,7 @@ L'applicazione espone la documentazione interattiva delle API REST tramite Swagg
173
179
}
174
180
}
175
181
```
176
-
- con la possibilità di aggiungere annotazioni OpenAPI ai controller/metodi per arricchire la documentazione.
182
+
- con la possibilità di aggiungere dati nelle annotation OpenAPI ai controller/metodi per arricchire la documentazione.
177
183
- *Note di sicurezza*: in ambiente di produzione si consiglia di limitare l'accesso a Swagger UI (che dovrebbe essere attivo solo su ambienti di test/sviluppo).
178
184
179
185
@@ -209,7 +215,7 @@ L'applicazione supporta l'analisi statica del codice, la code coverage e la qual
@@ -232,25 +238,25 @@ L'applicazione supporta l'analisi statica del codice, la code coverage e la qual
232
238
233
239
234
240
## 🐳 Deploy e utilizzo con DockerHub
235
-
L'immagine ufficiale dell'applicazione è pubblicata su [DockerHub](https://hub.docker.com/r/alnao/annotazioni) e può essere scaricata ed eseguita direttamente, senza necessità di build locale.
241
+
L'immagine ufficiale dell'applicazione è pubblicata su [DockerHub](https://hub.docker.com/r/alnao/gestionepersonale) e può essere scaricata ed eseguita direttamente, senza necessità di build locale.
236
242
- **Compilazione e push dell'immagine**
237
243
```bash
238
244
docker login
239
-
docker build -t alnao/annotazioni:latest .
240
-
docker push alnao/annotazioni:latest
245
+
docker build -t alnao/gestionepersonale:latest .
246
+
docker push alnao/gestionepersonale:latest
241
247
```
242
248
oppure lanciare lo script
243
249
```bash
244
250
./script/push-image-docker-hub.sh
245
251
```
246
252
- **Pull dell'immagine**:
247
253
```bash
248
-
docker pull alnao/annotazioni:latest
254
+
docker pull alnao/gestionepersonale:latest
249
255
```
250
256
L'immagine viene aggiornata con le ultime versioni *stabili*.
251
257
- **Esecuzione rapida**:
252
258
```bash
253
-
docker run --rm -p 8080:8080 alnao/annotazioni:latest
259
+
docker run --rm -p 8080:8080 alnao/gestionepersonale:latest
254
260
```
255
261
L'applicazione sarà disponibile su [http://localhost:8080](http://localhost:8080) ma nel sistema devono esserci già installati e ben configuati MongoDb e Postgresql.
256
262
- **Esecuzione completa**: 🔌 Rete Docker condivisa (alternativa più robusta)
@@ -397,7 +403,11 @@ L’applicazione e i database posso essere eseguiti anche su Minikube, l’ambie
397
403
- **Note**:
398
404
- I dati di MongoDB e PostgreSQL sono persistenti grazie ai PVC di Kubernetes, a meno di usare lo script di `stop-all.sh` che rimuove anche i volumi persistenti.
399
405
- Viene usata l'immagine `alnao/annotazioni:latest` su dockerHub e non una immagine creata in sistema locale.
400
-
406
+
- Per rimuovere tutto lo script da lanciare è
407
+
```bash
408
+
./script/minikube-onprem/stop-all.sh
409
+
minikube delete
410
+
```
401
411
402
412
## 🐳 Deploy AWS-onprem (MySQL e DynamoDB Local)
403
413
@@ -417,16 +427,6 @@ Per simulare l'ambiente AWS in locale (MySQL come RDS, DynamoDB Local, Adminer,
0 commit comments