\section{Logo}

\begin{figure}[H]
  \centering
  \begin{subfigure}[b]{0.680\linewidth}
    \includegraphics[width=\linewidth]{img/logo.png}
    \caption{Logo dell'applicazione}
  \end{subfigure}
  \label{fig:coffee}
\end{figure}

\section{Autori}

Salanti Michele - 793091
\newline
Ivan Donati - 781022

\section{Repository}

Come da consegna per l'assignment è stato fatto uso dello strumento di file versioning git gestito da GitLab. Tutto il materiale definitivo del progetto è presente nel branch master del repository raggiungibile al seguente collegamento:

\begin{center}
\url{https://gitlab.com/meliurwen/2019_assignment3_MiVan}
\end{center}

La radice del branch raffigurata in basso presenta un'organizzazione semplice e minimale:
\newline
\dirtree{%
 .1 <repository>.
 .2 app/.
 .2 doc/.
 .2 .gitignore.
 .2 README.md.
 .2 assignment3\_mivan.pdf.
}

\begin{itemize}
  \item \textbf{app:} È la cartella che contiene il sorgente dell'applicazione.
  \item \textbf{doc:} È la cartella che contiene il sorgente della documentazione scritta in \latex .
  \item \textbf{assignment3\_mivan.pdf:} È la versione compilata in pdf della documentazione.
\end{itemize}

\section{Applicazione}

L'applicazione oggetto di questo assigment è \textbf{MiVan}.
\newline
Si tratta di un'applicazione che gestisce prestiti di libri di un sistema bibliotecario con una o più sedi. Essa, oltre ad essere in grado di gestire i prestiti, è anche in grado di gestire i libri, la loro posizione, lo staff che amministra i prestiti e gli utenti che ne fanno richiesta.
\newline
Grazie a questa applicazione è possibile creare, visualizzzare, modificare e rimuovere in tempo reale lo stato di prestito dei libri. I prestiti sono descritti da una data di inizio, di fine, uno stato, un libro, un utente ed un operatore. Si ritiene che sia importante sottolineare che durante la progettazione si è presa la decisione che un prestito possa consistere in esattamente una unità di libro, in maniera tale che questo livello di granularità permetta all'utente, in caso di prestito contemporaneo di più libri, di non dover restituirli in blocco.
\newline
Altra caratteristica è la separazione tra concetto di libro ed "unità di libro", questo per gestire in maniera efficiente il caso molto frequente in cui il sistema bibliotecario possieda più copie dello stesso libro; nella nostra implementazione ogni singola unità (Item) corrisponderebbe in maniera univoca all'unità fisica corrispondente.
\newline
Una feature degna di nota (che andrebbe a soddisfare il requisito del self-loop) è la possibilità di sapere se nel sistema bibliotecario è disponibile il sequel (ammesso che esistano) di un determinato libro.
\newline
Allo stato attuale l'applicazione è stata pensata per essere utilizzata nell'area metropolitana di \underline{\textit{Brescia}} e \underline{\textit{Novara}}, con un \textit{\textbf{target iniziale}} ristretto agli utenti delle \textit{\textbf{sedi del sistema blibliotecario comunale}} delle rispettive città.
\newline
A seconda della trazione che potrebbe ricevere una volta lanciata, si potrà valutare un'eventuale \textit{espansione} del territorio coperto e degli enti (sia pubblici che privati) interessati.
