\documentclass[hidelinks,12pt,a4paper,numbers=enddot]{scrartcl}

\usepackage[margin=2.5cm]{geometry}
\usepackage{hyperref}

\title{Inception document fore SA1 group project}
\author{Group 1 (Team Leader: Claudio Maggioni)}

\begin{document}

\maketitle
\tableofcontents
\newpage

\section{Team organization}\label{team-organization}

\paragraph{Project leader}
Claudio Maggioni

\paragraph{SVN admin}
Joey Bevilacqua

\subsection{Teams}

\paragraph{Front page, about and info team {[}front-team{]}}
Matteo Omenetti (\textbf{Team leader}), Nicola Brunner

\paragraph{Topics teams}
\begin{itemize}
    \item \textbf{File system {[}fs-team{]}}: Riccardo Antonio Vivanco (\textbf{Team leader})
      \begin{itemize}
      \item Mattia Hijman
	  \item Marwan Announ
	  \item Mirko Ponzio
      \end{itemize}
    \item \textbf{Basic commands {[}cmd-basic-team{]}}: Gianmarco De Vita (\textbf{Team leader})
      \begin{itemize}
      \item Alessandro Marinelli
      \item Joy Albertini
      \item Marzio Lunghi
      \end{itemize}
    \item \textbf{Intermediate commands {[}cmd-interm-team{]}}: Joao Tomazoni (\textbf{Team leader})
      \begin{itemize}
      \item Marco Farace
	  \item Fabiano Fenini
      \item Gabriele Giacomelli
   \end{itemize}
    \item \textbf{Advanced commands {[}cmd-advanced-team{]}}: Domenico Votta (\textbf{Team leader})
      \begin{itemize}
	  \item Alessandro Luini
      \item Agostino Monti
	  \item Petro Lukach
      \end{itemize}
    \item \textbf{Scripting {[}scripts-team{]}}: Marco Conterno (\textbf{Team leader})
      \begin{itemize}
	  \item Dario Rasic
    	  \item Alexander Todorovic
  \end{itemize}
\end{itemize}

\paragraph{\emph{CSS} team {[}css-team{]}}
Andrea Brites Marto, Marco Tereh

\paragraph{Documentation {[}docs-team{]}}
Ricardo Antonio Vivanco

\subsection{Extra roles}

\paragraph{Team management}
Claudio Maggioni, Joey Bevilacqua, Matteo Omenetti

\paragraph{Work environment}
Claudio Maggioni, Joey Bevilacqua

\section{Repository organization}\label{repository-organization}

\begin{itemize}
\item \texttt{docs/} (for \LaTeX documentation, Access: \texttt{docs-team})
\item \texttt{site/} (for the actual website)
	\begin{itemize}
	\item \texttt{\_include/} (Access: \texttt{css-team})
	\item \texttt{\_layout/} (Access: \texttt{css-team})
	\item \texttt{\_pages/}
		\begin{itemize}
            \item \texttt{cmd/}
			\begin{itemize}
			\item \texttt{basic/} (Access: \texttt{cmd-basic-team})
			\item \texttt{interm/} (Access: \texttt{cmd-interm-team})
			\item \texttt{advanced/} (Access: \texttt{cmd-advanced-team})
			\end{itemize}
		\item \texttt{fs/} (Access: \texttt{fs-team})
		\item \texttt{info/} (Access: \texttt{front-team})
		\item \texttt{scripts/} (Access: \texttt{scripts-team})
		\end{itemize}
	\item \texttt{\_sass/} (Access: \texttt{css-team})
	\item \texttt{assets/}
		\begin{itemize}
		\item \texttt{cmd/}
			\begin{itemize}
			\item \texttt{basic/} (Access: \texttt{cmd-basic-team})
			\item \texttt{interm/} (Access: \texttt{cmd-interm-team})
			\item \texttt{advanced/} (Access: \texttt{cmd-advanced-team})
			\end{itemize}
		\item \texttt{fs/} (Access: \texttt{fs-team})
		\item \texttt{info/} (Access: \texttt{front-team})
		\item \texttt{scripts/} (Access: \texttt{scripts-team})
		\item \texttt{style/} (Access: \texttt{css-team})
		\end{itemize}
	\item \texttt{css/} (Access: \texttt{css-team})
	\item \texttt{js/} (Access: \texttt{css-team})
	\item \texttt{index.html/} (Access: \texttt{front-team})
	\end{itemize}
\end{itemize}

\section{Teamwork}\label{teamwork}

Team members will have their channel in \emph{Slack} in which they can discuss
with their topic leader and mates about the things they're working on.

Team members refer only to the team leader, unless when they want to
raise issues about the team leader itself, in which case they'll refer to the
project leader (Claudio Maggioni).

Each team leader refer to the project leader and other team leaders.

Team leaders are responsible for assuring the work of their team is
committed in time and the coding convections are met.

Each team only has access to directories strictly related to their team.
For instance, members of \texttt{scripts-team} will have access only to
the script pages, but not on the file system pages.

Each content team has a folder available in the \texttt{\_pages/} and
\texttt{\_assets/} folder.

In \texttt{\_pages/} there will be \texttt{.html} files only.

In \texttt{\_assets/} there will be pictures, videos and other content used
in html files.

Images will be subject to review by the \emph{CSS} team that has the right to
have them changed to meet the website styling rules.

If someone needs to add some \emph{JavaScript} or \emph{CSS} code, they must notify to
both their team leader and the \emph{CSS} team which is the only capable of
submitting new \emph{JavaScript} and \emph{CSS} code.

Code may also be sent to the \emph{CSS} team, but it'll be subject to review
and changes.

\subsection{Work environment}\label{work-environment}

To work on the website you will need to get our work environment.

The website is built using \emph{Jekyll}. \emph{Jekyll} is a magic thing that
allows us to simplify our work by decoupling content from styling.

You won't need to apply all the styling on your own, as you'll just
import a base page and then write your html code which will be placed inside it.

\subsubsection{Setup}\label{setup}

To get the repository, please run the following command (make sure you
replace the \texttt{yourname} with your \emph{USI} email id,
E.G.: \texttt{Rossi\ Mario\ (rossm@usi.ch)} uses
\texttt{rossm} as name):

\begin{verbatim}
svn checkout svn+ssh://<your_name_here>@atelier.inf.usi.ch/home/bevilj/group-1
\end{verbatim}

To install Jekyll, run this command (you'll be required to input your
password):

\begin{verbatim}
sudo gem install jekyll
\end{verbatim}

\subsubsection{Test your work locally}\label{test-your-work-locally}

Having Jekyll makes testing your work locally a bit harder, there's a
script that does all you need to do in order to work.

Once you're done editing the webpage you're working on, execute the
\texttt{./build.sh} script and visit the following URL on any browser:
\url{http://localhost:4000} (it should open automatically, but open it
manually if it does not work)

Do not close the terminal unless you're done working with the website.

The website will refresh its contents automatically once you save your
files (there will be a small delay of a few seconds before changes are
made available in your browser).

\section{Deadlines}\label{deadlines}

We have deadlines available on \emph{Slack} we planned to make sure the
project can be delivered without delays.

Project managers are responsible for communicating the deadlines
and eventual changes to them to everyone.

Team leaders are responsible for making sure their team members
meet the deadlines and eventually communicating failures in meeting
them to the project leaders.

2 or more failures in meeting the deadlines will result from the removal
of the inclusion of the name on the about page of the website, which
will result in a decrease of personal score.

\subsection{Coding conventions}\label{coding-conventions}

\begin{itemize}
\item
  Uses two spaces for indentation (tab = 2 spaces);
\item
  Put one new line for each tag;
\item
  Put no more than 100 chars for each line;
\item
  Add comments when necessary.
\end{itemize}

Team leaders are responsible for making sure the code is properly
formatted.

Code may be reformatted by the repository administrator.

\subsection{Keep up with other people's work}\label{keep-up-with-other-peoples-work}

Please sync your repository every day by running the command:

\begin{verbatim}
svn update
\end{verbatim}

\subsection{Committing changes}\label{committing-changes}

Make your commits simple, but not too simple: each commit must be
dealing with a limited set of changes which are all related.

Commits making unrelated changes are not encouraged.

In case of conflict, talk with your other team members to resolve them
properly.

Commit messages will have to be properly written and explain in detail
what is happening in the commit. It's important to remember that history of commit messages will be reviewed by the TA/Bavota, so make sure your wording is appropriate.

Commit messages should be in the following format:\\

\texttt{team-name}: What you did

\subsubsection{GOOD examples of commit messages}

\begin{itemize}
\item \texttt{basic-team: add section about ``ls''}
\item \texttt{css-team: work on the header}
\item \texttt{scripts-team: fix typo in for loops page}
\item \texttt{scripts: fix typo in for loops page}
\item \ldots
\end{itemize}

\subsubsection{BAD examples of commit messages}

\begin{itemize}
\item \texttt{dragons: add section about ``ls''}
\item \texttt{mario rossi: work on the css header}
\item \texttt{css-team: fix this shit}
\item \texttt{scripts: update}
\item \texttt{My hands are typing words}
\item \texttt{Typo sorry won't happen again}
\item \texttt{How to make billions in 3 days. A method doctors won't tell you}
\item \texttt{Haaaaaaaaaaaands} \footnote{\url{https://xkcd.com/1296}}
\item \ldots
\end{itemize}

\end{document}
