ae3003c460
git-svn-id: svn+ssh://atelier.inf.usi.ch/home/bevilj/group-1@87 a672b425-5310-4d7a-af5c-997e18724b81
341 lines
11 KiB
TeX
341 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}
|