theshell.ch/docs/inception/inception.tex
bevilj 6f46054121 docs: add authors usernames in inception and create author pages
git-svn-id: svn+ssh://atelier.inf.usi.ch/home/bevilj/group-1@87 a672b425-5310-4d7a-af5c-997e18724b81
2018-11-10 21:48:52 +00:00

342 lines
11 KiB
TeX

\documentclass[hidelinks,12pt,a4paper,numbers=enddot]{scrartcl}
\usepackage[margin=2cm]{geometry}
\usepackage{hyperref}
\title{Inception document \\
{\large Group 1}}
\author{Joey Bevilacqua \and Claudio Maggioni}
\begin{document}
\maketitle
\tableofcontents
\newpage
\section{Contents}\label{contents}
Our website will be divided in these sections:
\paragraph{File system}
A section about navigating the file system, absolute and relative paths,
the \texttt{.} and \texttt{..} shortcuts, symbolic and hard links, and
manipulating (creating, renaming, editing, moving, copying, deleting,
and changing permissions) files.
\paragraph{Commands}
\subparagraph{Basic commands}
A tutorial for the first steps in the shell world (i.e. opening the shell,
basic interactions, \texttt{man}/\texttt{info}).
\subparagraph{Intermediate commands}
A reference for commonly used tools, such as \texttt{zip} or \texttt{sudo},
enriched with examples provided in a friendlier way than the manual or official
documentation.
\subparagraph{Advanced commands}
Advanced features of the shell, such as input and output redirection, pipes,
regular expressions, and tools such as \texttt{sed} and \texttt{awk}.
\paragraph{Scripting}
An introduction to \texttt{sh} scripting: conditionals, loops, functions, aliases,
local and global variables and parsing of command line flags with \texttt{getopt}.
\newpage
\section{Team organization}\label{team-organization}
\paragraph{Project leader}
Claudio Maggioni (maggic)
\paragraph{SVN admin}
Joey Bevilacqua (bevilj)
\subsection{Teams}
\paragraph{Topics teams}
\begin{itemize}
\item \textbf{File system {[}fs-team{]}}: Riccardo Antonio Vivanco (vivanr) (\textbf{Team leader})
\begin{itemize}
\item Mattia Hijman (hijmam)
\item Marwan Announ (annoum)
\item Mirko Ponzio (ponzim)
\end{itemize}
\item \textbf{Basic commands {[}cmd-basic-team{]}}: Gianmarco De Vita (devitg) (\textbf{Team leader})
\begin{itemize}
\item Alessandro Marinelli (marina)
\item Joy Albertini (alberj)
\item Marzio Lunghi (lunghm)
\end{itemize}
\item \textbf{Intermediate commands {[}cmd-interm-team{]}}: Joao Tomazoni (tomazj) (\textbf{Team leader})
\begin{itemize}
\item Marco Farace (faracm)
\item Fabiano Fenini (feninf)
\item Alessandro Luini (luinia)
\item Gabriele Giacomelli (giacog)
\end{itemize}
\item \textbf{Advanced commands {[}cmd-advanced-team{]}}: Domenico Votta (vottad) (\textbf{Team leader})
\begin{itemize}
\item Agostino Monti (montia)
\item Petro Lukach (lukacp)
\end{itemize}
\item \textbf{Scripting {[}scripts-team{]}}: Marco Conterno (contem) (\textbf{Team leader})
\begin{itemize}
\item Dario Rasic (rasicd)
\item Alexander Todorovic (todora)
\end{itemize}
\end{itemize}
\paragraph{Other teams}
\begin{itemize}
\item \textbf{Front team {[}front-team{]}}: Matteo Omenetti (omenem) (\textbf{Team leader})
\begin{itemize}
\item Nicola Brunner (brunnn)
\end{itemize}
\item \textbf{\emph{CSS} team {[}css-team{]}}
\begin{itemize}
\item Andrea Brites Marto (britea)
\item Marco Tereh (terehm)
\end{itemize}
\end{itemize}
\subsection{Extra roles}
\paragraph{Team management}
Claudio Maggioni, Joey Bevilacqua, Domenico Votta
\paragraph{Work environment}
Claudio Maggioni, Joey Bevilacqua
\newpage
\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{js/} (Access: \texttt{css-team})
\item \texttt{main.scss} (Access: \texttt{css-team})
\item \texttt{index.html} (Access: \texttt{front-team})
\end{itemize}
\end{itemize}
\newpage
\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}
\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
\texttt{./build.sh} script that will start a webserver that will allow you
to visit the website at the following URL on any browser:
\url{http://localhost:4000} (it should open automatically, but open it
manually if it does not work).
The first time you will be required to insert your computer's password.
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).
To stop the webserver once you're done working with the website,
run \texttt{./stop.sh}
\subsection{Coding conventions}\label{coding-conventions}
\begin{itemize}
\item
Uses two spaces for indentation (tab = 2 spaces);
\item
Put one new line for each block 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}
\newpage
\section{Deadlines}\label{deadlines}
We have deadlines 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.
\begin{table}[h]
\begin{tabular}{l l l l}
\textbf{Deadline} & \textbf{Begins} & \textbf{Ends} & \textbf{Who}\\\hline
Repository creation & 30-10 & 31-10 & SVN admin\\
Preparation of the Inception & 30-10 & 01-11 & Claudio Maggioni, Joey Bevilacqua\\
Teams creations & 31-10 & 31-10 & Group management\\
Preparation for Go NoGo & 31-10 & 03-11 & Group management, Marco Conterno\\
Define topics & 31-10 & 04-11 & Everyone\\
CSS implementation & 31-12 & 08-11 & CSS team\\
\textbf{Inception} & 02-11 & & \\
\textbf{Go NoGo} & 05-11 & & \\
First 3 pages delivery & 05-11 & 09-11 & Contents teams\\
Initial project review & 08-11 & 11-11 & Group management\\
Final pages delivery & 10-11 & 14-11 & Contents teams\\
\textbf{Midway milestone} & 12-11 & & \\
Final review & 14-11 & 17-11 & Group management\\
Teamwork report & 14-11 & 17-11 & Group management\\
\textbf{Final milestone} & 19-11 & & \\
\textbf{Final presentation} & 23-11 & &
\end{tabular}
\end{table}
\end{document}