%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[12pt,a4paper]{report} % o article, book, ...

% TODO inserire vari packages (todonotes, ecc.)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% packages...
\usepackage[utf8]{inputenc}
\usepackage[english,italian]{babel}
\usepackage[hyphens]{url}
\usepackage{showframe}

% Per generare il file PDF aderente alle specifiche PDF/A-1b. Verificarne poi la validità.
\usepackage[a-1b,mathxmp]{pdfx}

\usepackage{hyperref}
\hypersetup{
    colorlinks,
    linkcolor={black!100!black},
    citecolor={blue!100!black},
    urlcolor={blue!100!black}
}

\usepackage{graphicx}

\usepackage{caption}
\captionsetup[figure]{labelsep=period}


\usepackage{lipsum} % Per inserire testo a caso in attesa di realizzare i capitoli

\usepackage{listings} % Per inserire codice formattato
%\lstset{
	%lstset va usato dopo l'inizio del document e ogni volta che si vuole cambiare/impostare il linguaggio da formattare
	% language=bash
	%frame=single,
	%breaklines=true,
	%postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}},
	%basicstyle=\ttfamily\footnotesize
%}

\usepackage[backend=biber,
style=alphabetic,
%citestyle=authoryear
]{biblatex}

\usepackage{csquotes}

\usepackage{epigraph} % per le frasi inizio capitolo

\usepackage{fancyhdr}
\pagestyle{fancy}
\setlength{\headheight}{14.5pt}

\usepackage{etoolbox}

\setlength {\marginparwidth }{2cm}
\usepackage[colorinlistoftodos]{todonotes}
%\usepackage[disable]{todonotes}

\usepackage{refcheck}

\newenvironment{usecaseenv}{
    \def\arraystretch{2}
    \begin{tabular}{lp{10.5cm}}\hline
}{
    \hline\end{tabular}
    \def\arraystretch{1}
}

\newcommand\addheading[1]{
    \multicolumn{2}{c}{\textbf{\textit{#1}}}\\ \hline
}
\newcommand\addrow[2]{\textbf{#1}\begin{minipage}[t][][t]{10.5cm} \end{minipage}% 
   &\begin{minipage}[t][][t]{10.5cm}
    #2
    \end{minipage}\\
}

% The actual command definition
\let\oldFigureName\figurename %save the old definition of the caption's figure name
\newcommand{\usecase}[5]{
    \vspace*{0.5cm} % adds a bit of padding to make it look nicer
    \renewcommand{\figurename}{Use case} %call figure name "Use case" instead
    \begin{figure}[htbp]
        \begin{center}
            \begin{usecaseenv}
                \addheading{#1} 
                \addrow{Use case:}{#2}
                \addrow{Soggetti:}{#3}
                \addrow{Obbiettivi:}{#4}
            \end{usecaseenv}
        \end{center}
        \caption{#5}
    \end{figure}
    \renewcommand{\figurename}{\oldFigureName} %reset caption figure name
}

\addbibresource{Biblio.bib}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

% Frontespizio
\begin{titlepage}
\begin{center}
\includegraphics[width=\textwidth]{Logo.jpg}\\
{\large{\em Corso di Laurea in Informatica per la comunicazione digitale}}
\end{center}
\vspace{12mm}
\begin{center}
{\huge{\bf Streaming decentralizzato di}}\\
\vspace{4mm}
{\huge{\bf contenuti audiovisivi}}\\
\end{center}
\vspace{12mm}
\begin{flushleft}
{\large{\bf Relatore:}}
{\large{Trentini Andrea}}\\
%{\large{\bf Correlatore:}}
%{\large{...}}\\
\end{flushleft}
\vfill
\begin{flushright}
\parbox{1.7in}{
{\large{\bf Tesi di Laurea di:}}\\
{\large{Mirko Milovanovic}}\\
{\large{\bf Matricola: \normalfont 870671}}
}
\end{flushright}
\vfill
\begin{center}
{\large{\bf Anno Accademico 2021-2022}}
\end{center}
\end{titlepage}

\tableofcontents
\thispagestyle{empty}

%\chapter o \sections (dipende dal documentclass e cosa vogliamo fare)
%\makeatletter
%\patchcmd{\@makechapterhead}{50\p@}{0pt}{}{}
%\patchcmd{\@makeschapterhead}{50\p@}{0pt}{}{}
%\makeatother

\chapter{Introduzione}
\setcounter{page}{1}
Al giorno d'oggi internet viene sempre più utilizzato 

%TCP/IP over Avian Carriers\cite{waitzman1990standard}\\
\newpage
\section{Dei concetti base}
\todo{Definire ancora dei concetti base}
\newpage
\section{Use cases}
Vediamo degli esempi di come questa interazione potrebbe essere svolta:
\usecase{Esempio di interazione one to many}{Un utente davanti al proprio computer vorrebbe condividere quello che vede a schermo con dei propri amici o followers}{Utente principale, viewers, computer, connessione internet}{Condivisione in live streaming di un contenuto a schermo via internet con TCP/IP}{}

\usecase{Esempio di interazione many to many}{Più utenti al proprio computer vorebbero comunicare e ineragire tra di loro contemporaneamente simil conference-call}{Utenti multipli, computer, connessione internet, microfono, telecamera}{Live streaming e interazione real-time tra utenti via internet con TCP/IP}{}

\chapter{Lipsum 2}
\lipsum[0-5]
\section{Test sezione}
\lipsum[5-10]

%\chapter{Cap3}

\printbibliography
\addcontentsline{toc}{chapter}{Bibliografia}

\end{document}