From cabcbc69f5a664da063ec07f81610fb255126d5b Mon Sep 17 00:00:00 2001
From: Lorenzo Ferron <20024182@studenti.uniupo.it>
Date: Fri, 16 Oct 2020 11:23:05 +0200
Subject: [PATCH] Correzioni prima della stampa.

---
 .../src/contents/conclusioni/conclusioni.tex  |  6 +++---
 .../introduzione-al-lavoro.tex                | 20 ++++++++++---------
 .../contents/introduzione/introduzione.tex    |  2 +-
 .../lavoro-svolto/contents/architecture.tex   |  6 +++---
 .../lavoro-svolto/contents/business-layer.tex |  8 ++++----
 .../lavoro-svolto/contents/data-layer.tex     | 10 +++++-----
 .../contents/lavoro-svolto/lavoro-svolto.tex  |  2 +-
 .../strumenti-utilizzati.tex                  |  4 ++--
 8 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/relazione/src/contents/conclusioni/conclusioni.tex b/relazione/src/contents/conclusioni/conclusioni.tex
index 6ad8852..d7d67df 100644
--- a/relazione/src/contents/conclusioni/conclusioni.tex
+++ b/relazione/src/contents/conclusioni/conclusioni.tex
@@ -1,7 +1,7 @@
 % !TeX encoding = UTF-8
 % !TeX root = ../../FERRON_relazione.tex
 
-\chapter{Conclusioni e sviluppi}
+\chapter{Conclusioni e sviluppi futuri}
 \label{ch:conclusioni}
 \graphicspath{{contents/conclusioni/assets/img/}}
 
@@ -17,7 +17,7 @@ Se si manifestasse la necessità di dover accedere a questa funzionalità dalla
 Oltre all'amministrazione, vi sono altre funzionalità che non sono state implementate, ma sono state previste nella fase di progettazione, una fra tutte è l'internazionalizzazione della piattaforma.
 Essa permetterebbe di raggiungere un mercato molto più ampio di clienti non solo in Italia.
 Inoltre risulta comoda anche per quei clienti, che vivono in Italia, ma hanno difficoltà a comprendere la lingua.
-In particolare, tale funzionalità richiederebbe la traduzione delle pagine, una conversione in tempo reale dei prezzi nella valuta corrente e la scelta del paese in cui spedire l'ordine, ovvero seguendo uno stile simile a quello di AliExpress.
+In particolare, tale funzionalità richiederebbe la traduzione delle pagine, una conversione in tempo reale dei prezzi nella valuta desiderata e la scelta del paese in cui spedire l'ordine, ovvero seguendo uno stile simile a quello di AliExpress.
 Si noti che per quanto riguarda la base di dati, essa è perfettamente in grado di trattare caratteri non latini, come quelli cirillici o gli ideogrammi, vista la codifica scelta (\Cref{subsec:schema-logico-fisico}).
 Inoltre per agevolare la traduzione delle pagine, sono stati creati file \texttt{.properties} che contengono coppie \mbox{chiave-valore}, in cui il valore è un messaggio che sarà mostrato all'utente.
 L'aggiunta di una nuova lingua richiederebbe la creazione di nuovi file \texttt{.properties} e la conseguente traduzione delle coppie \mbox{chiave-valore}, così facendo non sarà necessaria alcuna modifica dei file JSP, che faranno sempre riferimento alle stesse chiavi.
@@ -32,4 +32,4 @@ Quindi se di lì a poco l'utente riesegue l'accesso non troverà il carrello com
 Purtroppo tale difetto è portato da una considerazione di prestazioni, infatti  per correggerlo basterebbe che il salvataggio avvenisse ogni qualvolta si fa una modifica sul carrello.
 Ad ogni modo se questa operazione risulta frequente, si rischia di avere un gran numero di scritture sulla base di dati.
 
-Si potrebbe infine passare a uno sviluppo più rapido, senza cambiare linguaggio, ma utilizzando un \textenglish{framework} come Spring~\cite{spring}, che nonostante faccia uso di \mbox{Tomcat}, rende più agevole e compatta l'implementazione perché fornisce un gran numero di annotazioni, le quali fanno inteso uso della riflessione di Java.
\ No newline at end of file
+Si potrebbe infine passare a uno sviluppo più rapido, senza cambiare linguaggio, ma utilizzando un \textenglish{framework} come Spring~\cite{spring}, che nonostante faccia uso di \mbox{\prog{Tomcat}}, rende più agevole e compatta l'implementazione perché fornisce un gran numero di annotazioni, le quali fanno inteso uso della riflessione di Java.
\ No newline at end of file
diff --git a/relazione/src/contents/introduzione-al-lavoro/introduzione-al-lavoro.tex b/relazione/src/contents/introduzione-al-lavoro/introduzione-al-lavoro.tex
index cff55cc..8d69306 100644
--- a/relazione/src/contents/introduzione-al-lavoro/introduzione-al-lavoro.tex
+++ b/relazione/src/contents/introduzione-al-lavoro/introduzione-al-lavoro.tex
@@ -16,22 +16,22 @@ In particolare nel corso del capitolo, oltre ai requisiti, si prenderanno in esa
 
 All'inizio il sistema informatico era fruibile attraverso il software \prog{Access}~\cite{msaccess} con cui era stato realizzato.
 Per esigenze puramente aziendali esso non era esposto all'esterno dell'\textenglish{intranet}.
-Questa situazione è perdurata fino a quando grandi aziende del commercio elettronico, come Amazon ed eBay, non sono diventate competitor delle più piccole; urgeva quindi la necessità di mettere a disposizione una piattaforma indipendente e dedicata, fu scelto \prog{Joomla}~\cite{joomla}.
+Questa situazione è perdurata fino a quando grandi aziende del commercio elettronico, come \mbox{Amazon} ed \mbox{eBay}, non sono diventate competitor delle più piccole; urgeva quindi la necessità di mettere a disposizione una piattaforma indipendente e dedicata, fu scelto \prog{\mbox{Joomla}}~\cite{joomla}.
 Negli stessi anni prendeva anche piede una tipologia di \textenglish{cloud computing}, il \textenglish{Software as Service} (SaaS), che delega l'installazione e la manutenzione del server e dei servizi a terzi, lasciando all'utente la sola configurazione dell'applicazione pagata; si veda anche \cite{Sommerville2017}.
 Il difficile uso dell'applicazione portò a un nuovo cambiamento e venne acquistato un nuovo servizio, sempre con le stesse modalità.
-Si trattava di \prog{WordPress}~\cite{wordpress}.
+Si trattava di \prog{\mbox{WordPress}}~\cite{wordpress}.
 
-\prog{WordPress} non nasce per siti dedicati all'\ecommerce, ma per blog.
+\prog{\mbox{WordPress}} non nasce per siti dedicati all'\ecommerce, ma per blog.
 Tuttavia, essendo \textenglish{open source} è possibile creare o installare \textenglish{plugin} per adattarlo a qualsiasi esigenza.
 L'uso dei \textenglish{plugin} sembra offrire all'utente, anche alle prime armi, un buon punto di partenza per sviluppare la propria piattaforma, ma questo meccanismo nasconde dei difetti.
 In primo luogo, ogni \textenglish{plugin} è indipendente dagli altri, il che porterebbe a pensare all'assenza di problemi inerenti la compatibilità, ma non è così, infatti spesso l'incompatibilità può portare a un peggioramento dell'usabilità della piattaforma da parte dei clienti e del gestore.
 In secondo luogo, molti \textenglish{plugin} presentano maschere in lingua inglese e, soprattutto per quelli meno conosciuti, non esiste una traduzione oppure è incompleta; ancora una volta i clienti e il gestore, che non padroneggiano la lingua, si trovano in difficoltà.
 Inoltre, le poche conoscenze riguardo la sicurezza informatica potrebbero esporre l'applicativo a maggiori vulnerabilità, ad esempio rendendo visibile verso l'esterno il contenuto della cartella \file{wp-content/plugins} è possibile conoscere i \textenglish{plugin} installati.
-Pur avendo evitato questo problema, spesso non si effettuano gli aggiornamenti dei \textenglish{plugin}, i quali possono ancora essere scoperti da \textenglish{software} come \prog{wpscan}~\cite{wpscan}, che permette anche di conoscere le vulnerabilità della versione corrente, se non aggiornata, e di fatto aiutare l'attaccante nel suo intento.
+Pur avendo evitato questo problema, spesso non si effettuano gli aggiornamenti dei \textenglish{plugin}, i quali possono ancora essere scoperti da \textenglish{software} come \prog{\mbox{wpscan}}~\cite{wpscan}, che permette anche di conoscere le vulnerabilità della versione corrente, se non aggiornata, e di fatto aiutare l'attaccante nel suo intento.
 Infine l'uso di \textenglish{plugin} per modellare la base di dati, attraverso la definizione di metadati, può risultare difficile al gestore che si trova a dover completare differenti campi di cui a volte non conosce il significato; questo fatto si verifica di frequente qualora il \textenglish{plugin} abbia una scarsa o inesistente documentazione, ma anche quando questa è in inglese.
 Non è altresì raro ottenere modelli non sufficientemente aderenti alla realtà, cioè troppo permissivi o grossolani.
 
-Alcuni di questi aspetti potevano essere risolti mettendo mano al \textenglish{file system} su cui risiede l'installazione di \prog{WordPress}.
+Alcuni di questi aspetti potevano essere risolti mettendo mano al \textenglish{file system} su cui risiede l'installazione di \prog{\mbox{WordPress}}.
 Abbiamo però accennato al fatto che il servizio è stato acquistato con tipologia SaaS, pertanto non è permesso interagire direttamente con il sistema operativo.
 Altri interventi richiedevano una maggiore comprensione dei \textenglish{plugin}, ma non si garantiva il risultato desiderato a causa delle incompatibilità.
 
@@ -61,7 +61,7 @@ In \Cref{fig:scrum} è illustrato il processo Scrum, per approfondimenti si veda
 \begin{figure}[t]
 	\centering
 	\includegraphics[width=.7\linewidth]{scrum.png}
-	\caption[Il ciclo degli sprint di Scrum]{Il ciclo degli sprint di Scrum (trattato da \cite{Sommerville2017}).}
+	\caption[Il ciclo degli sprint di Scrum]{Il ciclo degli sprint di Scrum (tratto da \cite{Sommerville2017}).}
 	\label{fig:scrum}
 \end{figure}
 
@@ -95,7 +95,7 @@ Cominciamo dai requisiti funzionali espressi, per semplicità, come requisiti de
 
 	\item Le categorie devono avere un nome e deve essere possibile indicare all'utente quelle create di recente.
 
-	\item Il cliente può essere sia un'azienda sia un privato.
+	\item\label{itm:user-type} Il cliente può essere sia un'azienda sia un privato.
 
 	\item\label{itm:sign-up} La registrazione di un nuovo cliente richiede \textbf{solamente} un'\textenglish{e-mail} e una password.
 	Al termine della procedura l'\account deve essere attivato dall'apposito link inviato all'\textenglish{e-mail} del nuovo \textbf{potenziale} acquirente.
@@ -107,7 +107,8 @@ Cominciamo dai requisiti funzionali espressi, per semplicità, come requisiti de
 	\item Il cliente durante il completamente del suo profilo deve registrare almeno un indirizzo e un numero di telefono, da poter fornire al corriere.
 	Tutti i dati del profilo, compresa l'\textenglish{e-mail}, devono poter essere modificabili.
 
-	\item Il \textenglish{form} di completamento del profilo di un privato richiede nome, cognome e codice fiscale, per poter intestare la fattura, inoltre dal codice fiscale è possibile estrarre la data di nascita, eventualmente utile per promozioni mirate basate sul compleanno.
+	\item Il \textenglish{form} di completamento del profilo di un privato richiede nome, cognome e codice fiscale, per poter intestare la fattura.
+	Inoltre dal codice fiscale è possibile estrarre la data di nascita, eventualmente utile per promozioni mirate basate sul compleanno.
 
 	\item L'azienda è da considerasi come un utente, l'\textenglish{e-mail} che fornirà potrebbe anche essere quella del responsabile degli acquisti.
 	In ogni caso anche per l'azienda deve essere previsto un \textenglish{form} apposito, che richieda la partita IVA, necessaria per intestare le fatture e il nome dell'azienda.
@@ -164,11 +165,12 @@ format=\bfseries\upshape\sffamily
 ]
 
 \item L'interfaccia utente sarà grafica.
-\item Il codice sarà scritto in Java e si eseguirà su \mbox{Tomcat}.
+\item Il codice sarà scritto in Java e si eseguirà su \mbox{\prog{Tomcat}}.
 \item Il database utilizzato sarà MySQL\@.
 \item Lo sviluppo inizia a fine giugno 2020 e la consegna è prevista per metà agosto 2020.
 \item\label{itm:pci-dss} Rispettare lo standard PCI~DSS\@.
 \item Rispettare il GDPR\@.
 \item Le date saranno memorizzate nel formato AAAA/MM/GG\@.
+\item\label{itm:utf-8} Gli input saranno memorizzati nella codifica UTF-8.
 
 \end{enumerate}
\ No newline at end of file
diff --git a/relazione/src/contents/introduzione/introduzione.tex b/relazione/src/contents/introduzione/introduzione.tex
index 53048bf..e7e7db6 100644
--- a/relazione/src/contents/introduzione/introduzione.tex
+++ b/relazione/src/contents/introduzione/introduzione.tex
@@ -15,7 +15,7 @@ Tutto ciò è possibile su una piattaforma \ecommerce, per esempio i clienti las
 In questa situazione si trovò anche la Trimar S.r.l.\ di Frugarolo, attiva nella produzione di sedie e tavoli da interno ed esterno fin dal 1982.
 L'azienda si impegnò fin da subito nella digitalizzazione del processo di vendita, ma con scarsi risulti.
 Si aveva quindi la necessità di avere un \ecommerce il più aderente possibile alle esigenze dell'azienda e dei suoi clienti.
-Questa necessità portò alla collaborazione, che vide la nascita della piattaforma descritta in queste pagine.
+Questa necessità portò alla collaborazione che vide la nascita della piattaforma descritta in queste pagine.
 
 In particolare nel \Cref{ch:introduzione-al-lavoro} si discuterà dell'approccio che si è seguito in preparazione al lavoro, in cui si illustrerà il \textenglish{software} presente e le sue limitazioni, il perché si è scelta una soluzione \textit{ad hoc}, la metodologia del processo di sviluppo e infine i requisiti funzionali e non individuati.
 
diff --git a/relazione/src/contents/lavoro-svolto/contents/architecture.tex b/relazione/src/contents/lavoro-svolto/contents/architecture.tex
index c6f4c77..995d32d 100644
--- a/relazione/src/contents/lavoro-svolto/contents/architecture.tex
+++ b/relazione/src/contents/lavoro-svolto/contents/architecture.tex
@@ -39,12 +39,12 @@ Di seguito si illustra brevemente quali sono le interazioni tra \textenglish{cli
 	\caption{Architettura client-server a tre livelli.}
 	\label{fig:architecture}
 \end{figure}
-Il tipo di architettura appena descritto si adatta molto bene a qualsiasi \textenglish{application server}\footnote{Si è generalizzato un po' troppo con questo termine, infatti \mbox{Tomcat} non soddisfa tutti i requisiti di un \textenglish{application server} come si vedrà nel \Cref{ch:strumenti-utilizzati}.} basato su JavaEE, compreso Tomcat.
+Il tipo di architettura appena descritto si adatta molto bene a qualsiasi \textenglish{application server}\footnote{Si è generalizzato un po' troppo con questo termine, infatti \mbox{\prog{Tomcat}} non soddisfa tutti i requisiti di un \textenglish{application server} come si vedrà nel \Cref{ch:strumenti-utilizzati}.} basato su \mbox{JavaEE}, compreso \mbox{\prog{Tomcat}}.
 Inoltre è usato anche dalle piattaforme di e-commerce SaaS, come \prog{Magento}.
-Tuttavia aziende come Amazon usano un'architettura a microservizi.
+Tuttavia aziende come \mbox{Amazon} usano un'architettura a microservizi.
 Tale scelta comporta avere tanti team quanti i microservizi; ogni team deve essere un \textit{\textenglish{two-pizza team}}, ovvero deve avere un numero di membri che possano essere sfamati con solo due pizze.
 Questa filosofia consente un rapido sviluppo, tralasciando lunghe riunioni di progetto, proprio perché il personale è limitato.
-Amazon, infatti afferma che può far passare una modifica dalla fase di \textenglish{deployment} a quella di produzione ogni $11,6$ secondi.
+\mbox{Amazon}, infatti afferma che può far passare una modifica dalla fase di \textenglish{deployment} a quella di produzione ogni $11,6$ secondi.
 Per maggiori dettagli su queste architetture si faccia riferimento a \cite{Richardson2019}.
 
 Nel seguito del capitolo si dedicherà una sezione per ciascuno dei livelli presentati in \Cref{fig:architecture}.
\ No newline at end of file
diff --git a/relazione/src/contents/lavoro-svolto/contents/business-layer.tex b/relazione/src/contents/lavoro-svolto/contents/business-layer.tex
index 78e57e6..2cd2df7 100644
--- a/relazione/src/contents/lavoro-svolto/contents/business-layer.tex
+++ b/relazione/src/contents/lavoro-svolto/contents/business-layer.tex
@@ -64,7 +64,7 @@ Anche questa misura è stata adottata per evitare attacchi a forza bruta, infatt
 
 Le pagine che richiedono un autenticazione non devono poter essere visibili una volta effettuato il \textenglish{logout}.
 Tuttavia i \textenglish{browser}, per necessità di efficienza, salvano in \textenglish{cache} le pagine visitate.
-Questo comporta la possibilità di recuperare dalla cronologia, le pagine, che richiedono autorizzazione nonostante si sia fatto il \textenglish{logout}.
+Questo comporta la possibilità di recuperare dalla cronologia, le pagine, che richiedono autenticazione nonostante si sia fatto il \textenglish{logout}.
 Per impedire questo comportamento, il \textenglish{browser} non dovrebbe memorizzare le pagine sensibili in \textenglish{cache}.
 Ciò può essere realizzato impostando opportunamente gli \textenglish{header} HTTP di tali pagine.
 Più precisamente, prima che la risposta giunga al \textenglish{client} vi è un filtro (vedi \Cref{ch:strumenti-utilizzati}) che inserisce nell'\textenglish{header} i seguenti valori:
@@ -88,7 +88,7 @@ La soluzione adotta è stata quella di ripulire (\textenglish{\textit{sanitize}}
 \subsection{IDOR}
 \label{subsec:idor}
 
-Abbiamo mostrato l'uso intensivo delle chiavi surrogate (vedi \Cref{fig:eer}), che permettono di individuare efficientemente l'oggetto di interesse.
+Abbiamo mostrato l'uso intensivo delle chiavi surrogate (vedi \Cref{fig:eer}), che permettono di individuare l'oggetto di interesse.
 Viene naturale pensare di esporre tali chiavi agli utenti della piattaforma, per esempio inserendole all'interno dell'URL\@.
 Tale approccio è chiamato \textenglish{Insecure Direct Object Reference} (IDOR).
 Pur non costituendo un problema di sicurezza diretta, l'attaccante potrebbe stabilire il \textenglish{pattern} su cui una chiave primaria si basa e sferrare un \textenglish{enumeration attack}, il cui scopo sarebbe ottenere l'accesso ai dati con quel formato di chiave.
@@ -98,7 +98,7 @@ Per questa ragione ogni chiave esposta prima è stata concatenata con un \texten
 Si è scelta tale funzione, piuttosto che SHA-512, perché si voleva identificatori brevi, ma robusti.
 
 Tuttavia la soluzione proposta necessita di calcolare ogni volta, per ogni richiesta, la funzione \textenglish{hash}, dato che i valori non cambiano, si è usata una struttura dati per conservare l'associazione tra chiave e identificatore calcolato.
-Tale struttura non ammette duplicati ed è condivisa tra tutti i \textenglish{thread} di una data servlet (vedi \Cref{ch:strumenti-utilizzati}), in maniera tale che tutti ne possano beneficiare senza allocare ulteriore spazio.
+Tale struttura non ammette duplicati ed è condivisa tra tutte le richieste gestite da una data servlet (vedi \Cref{ch:strumenti-utilizzati}), in maniera tale che tutti ne possano beneficiare senza allocare ulteriore spazio.
 In particolare la struttura dati scelta è una \texttt{BiMap} implementata da Guava~\cite{guava}.
 
 \subsection{Concorrenza}
@@ -113,7 +113,7 @@ Una transazione è un lotto atomico di operazioni, nel quale o tutte le operazio
 Prima di creare effettivamente l'ordine, una transazione pone un \textenglish{lock} sui prodotti della tabella \textenglish{\texttt{product}} che si vogliono acquistare, al fine di poter eseguire le \textenglish{query} per decrementarne le quantità.
 Se durante tale operazione dovesse giungere un nuovo ordine, in cui tutti i prodotti sono in quantità sufficiente, ma che comprende, anche solo parzialmente, gli stessi articoli dell'ordine in processamento, questo sarebbe trattenuto fino al completamento dell'operazione precedente.
 Una volta che l'ordine è in attesa di pagamento (per maggiori dettagli si veda \Cref{ch:strumenti-utilizzati}), quello nuovo può essere processato, tuttavia è possibile che un prodotto non sia più in quantità sufficiente, perché già venduto nell'ordine precedente.
-Ricordando che esistono controlli ad ogni livello (vedi \Cref{sec:business-layer}), all'atto del decremento della quantità si avrà la violazione del vincolo sulla base di dati per cui \verb|quantity >= 0|.
+Ricordando che esistono controlli ad ogni livello (vedi \Cref{sec:architettura}), all'atto del decremento della quantità si avrà la violazione del vincolo sulla base di dati per cui \verb|quantity >= 0|.
 Questo fatto terminerebbe il processamento della transazione e l'utente sarebbe reindirizzato al carrello, da cui gli spetterà scegliere quale azione intraprendere.
 
 Anche se le quantità fossero sufficienti è ancora possibile, che la transazione non sia completata.
diff --git a/relazione/src/contents/lavoro-svolto/contents/data-layer.tex b/relazione/src/contents/lavoro-svolto/contents/data-layer.tex
index 903e654..cd8dcf5 100644
--- a/relazione/src/contents/lavoro-svolto/contents/data-layer.tex
+++ b/relazione/src/contents/lavoro-svolto/contents/data-layer.tex
@@ -26,7 +26,7 @@ Per tali ragioni si è prevista l'opzionalità (cardinalità \texttt{(0,1)}) sul
 \begin{sidewaysfigure}[p]
 	\centering
 	\includegraphics[width=\linewidth]{er.pdf}
-	\caption{Schema ER del progetto.}
+	\caption{Diagramma ER del progetto.}
 	\label{fig:er}
 \end{sidewaysfigure}
 
@@ -97,16 +97,16 @@ Si ricorda che un evento è una procedura o funzione memorizzata sullo schema di
 Si tiene a precisare che l'eliminazione di un cliente consiste nel slegare le tabelle \texttt{\textenglish{customer}} e \texttt{\textenglish{login}}, ponendo \verb|login_id = NULL| quando un \textenglish{record} della tabella \texttt{\textenglish{login}} viene rimosso, ovvero il vincolo di chiave esterna sull'eliminazione è \texttt{SET NULL}.
 Così facendo l'utente non potrà più accedere ai suoi dati, ma l'azienda proprietaria della piattaforma potrà esaminare lo \textbf{storico} delle vendite, compresi gli indirizzi apposti alle bolle di spedizione.
 
-Se si osserva attentamente il diagramma ristrutturato si noterà la presenza della tabella \verb|user_role|, ma tale nome non compare all'interno del diagramma ER, perché questa tabella è necessaria al funzionamento di \mbox{Tomcat}.
-Tuttavia permette di distinguere se un cliente loggato è un'azienda oppure un privato, nel diagramma ER questa distinzione è fatta sulla base della generalizzazione (completa ed esclusiva).
+Se si osserva attentamente il diagramma ristrutturato si noterà la presenza della tabella \verb|user_role|, ma tale nome non compare all'interno del diagramma ER, perché questa tabella è necessaria al funzionamento di \mbox{\prog{Tomcat}}.
+Tuttavia permette di distinguere se un cliente loggato è un'azienda oppure un privato (vedi \ref{itm:user-type}), nel diagramma ER questa distinzione è fatta sulla base della generalizzazione (completa ed esclusiva).
 
-Un altro aspetto importante è la codifica usata dallo schema della base di dati, ovvero \verb|utf8mb4_0900_as_cs|, il quale è basato sulla codifica Unicode 9.0 e gestisce sia gli accenti (\textit{\textenglish{accent sensitive}}) sia la differenza tra maiuscole e minuscole (\textit{\textenglish{case sensitive}}).
+Un altro aspetto importante è la codifica usata dallo schema della base di dati, ovvero \verb|utf8mb4_0900_as_cs| (vedi \ref{itm:utf-8}), il quale è basato sulla codifica Unicode 9.0 e gestisce sia gli accenti (\textit{\textenglish{accent sensitive}}) sia la differenza tra maiuscole e minuscole (\textit{\textenglish{case sensitive}}).
 Tale codifica è utile nel caso in cui la piattaforma voglia affermarsi anche in un mercato internazionale.
 
 In conclusione si ricorda che sullo schema della base di dati si sono definiti due utenti con privilegi differenti per manipolare i dati.
 \begin{sidewaysfigure}[p]
 	\centering
 	\includegraphics[width=\linewidth]{eer.eps}
-	\caption{Schema EER del progetto.}
+	\caption{Diagramma EER del progetto.}
 	\label{fig:eer}
 \end{sidewaysfigure}
\ No newline at end of file
diff --git a/relazione/src/contents/lavoro-svolto/lavoro-svolto.tex b/relazione/src/contents/lavoro-svolto/lavoro-svolto.tex
index fe91e27..329e4b2 100644
--- a/relazione/src/contents/lavoro-svolto/lavoro-svolto.tex
+++ b/relazione/src/contents/lavoro-svolto/lavoro-svolto.tex
@@ -9,7 +9,7 @@
 Abbiamo finora visto i dettagli astratti alla base del lavoro, senza però illustrarne alcuna idea di soluzione; è pertanto giunto il momento di farlo.
 
 Questo capitolo si aprirà con una panoramica dell'architettura scelta e proseguirà con una dettagliata esamina dei suoi livelli.
-In particolare si descriverà e commenterà da prima il livello riguardante il \textenglish{database}, successivamente si tratterà il ``cervello'' del progetto l'\textenglish{application server} e infine si darà spazio, anche se marginalmente, al livello di presentazione.
+In particolare si descriverà e commenterà da prima il livello riguardante il \textenglish{database}, successivamente si tratterà il ``cervello'' del progetto, l'\textenglish{application server}, e infine si darà spazio, anche se marginalmente, al livello di presentazione.
 
 Durante l'analisi si farà riferimento ad alcuni dei requisiti funzionali più interessanti esposti nel \Cref{ch:introduzione-al-lavoro}, al fine di mostrare al lettore quanta progettazione è richiesta dietro una banale descrizione in linguaggio naturale.
 Si farà inoltre riferimento ad alcuni aspetti tecnici degli strumenti utilizzati senza però entrare nel dettaglio, essi saranno ripresi nel \Cref{ch:strumenti-utilizzati}.
diff --git a/relazione/src/contents/strumenti-utilizzati/strumenti-utilizzati.tex b/relazione/src/contents/strumenti-utilizzati/strumenti-utilizzati.tex
index 1988c5e..2db2664 100644
--- a/relazione/src/contents/strumenti-utilizzati/strumenti-utilizzati.tex
+++ b/relazione/src/contents/strumenti-utilizzati/strumenti-utilizzati.tex
@@ -6,7 +6,7 @@
 \graphicspath{{contents/strumenti-utilizzati/assets/img/}}
 
 In questo capitolo si tratteranno alcuni degli strumenti fin qui citati.
-In particolare si dedicherà una sezione a \mbox{Tomcat} vista la sua centralità nel progetto.
+In particolare si dedicherà una sezione a \mbox{\prog{Tomcat}} vista la sua centralità nel progetto.
 Nella successiva sezione si raggrupperanno tutti gli altri strumenti usati, ma non si tratteranno le librerie, anche se alcune sono già state citate nel precedente capitolo.
 
 \section{Tomcat}
@@ -85,7 +85,7 @@ In questa sezione seguirà una rapida rassegna degli altri strumenti utilizzati
 
 	\mbox{\prog{Braintree}} permette la creazione di un \account, attraverso cui è possibile monitore tutte le transazioni eseguite e durante la fase di sviluppo mette a disposizione una modalità di \textenglish{\textit{sandbox}} per effettuare le dovute sperimentazioni.
 
-	\item \mbox{\prog{Cloudinary}}~\cite{cloudinary} è un servizio di hosting di file multimediali con una ricca API per manipolare le immagine.
+	\item \mbox{\prog{Cloudinary}}~\cite{cloudinary} è un servizio di hosting di file multimediali con una ricca API per manipolare immagini.
 	In particolare mette a disposizione tag personalizzati basati sulla libreria JSTL, a cui è possibile passare il nome di un file, presente nella libreria dell'\account, creato sul servizio,  per vedere l'immagine corrispondete inserita nella pagina HTML che si sta componendo.
 	Molto utile sono le manipolazioni messe a disposizione, una tra tutte il \textenglish{\textit{cropping}}.
 	Se n'è fatto uso per conservare l'immagine di una particolare ``configurazione'' del prodotto.
-- 
GitLab