%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% LATEX-TEMPLATE PROJECTPLAN
%-------------------------------------------------------------------------------
% Voor informatie over het projectplan, zie
% http://practicumav.nl/project/projectplan.html
% Voor readme en meest recente versie van het template, zie
% https://gitlab-fnwi.uva.nl/informatica/LaTeX-template.git
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%-------------------------------------------------------------------------------
%	PACKAGES EN DOCUMENT CONFIGURATIE
%-------------------------------------------------------------------------------

\documentclass{uva-inf-article}
\usepackage[dutch]{babel}
\usepackage{enumitem}
\usepackage{pgfgantt}
\usepackage{pdflscape}
\usepackage{geometry}

%-------------------------------------------------------------------------------
%	GEGEVENS VOOR IN DE TITEL
%-------------------------------------------------------------------------------

% Vul de naam van de opdracht in.
\assignment{Webprogrameren en Databases}
% Vul het soort opdracht in.
\assignmenttype{Projectplan}
% Vul de titel van de eindopdracht in.
\title{MyHyvesBookPlus}

% Vul de volledige namen van alle auteurs in.
\authors{Lars van Hijfte; Hendrik Huang; Marijn Jansen; Joey Lai; Kevin Nobel}
% Vul de corresponderende UvAnetID's in.
\uvanetids{11291680; 11342374; 11166932; 11057122; 11319801}

% Vul altijd de naam in van diegene die het nakijkt, tutor of docent.
\tutor{Robin Klusman}
% Vul eventueel ook de naam van de docent of vakcoordinator toe.
\docent{}
% Vul hier de naam van de PAV-groep  in.
\group{C++}
% Vul de naam van de cursus in.
\course{Webprogrameren en Databases}
% Te vinden op onder andere Datanose.
\courseid{5062WEDA6Y}

% Dit is de datum die op het document komt te staan. Standaard is dat vandaag.
\date{11 januari 2017}

%-------------------------------------------------------------------------------
%	VOORPAGINA
%-------------------------------------------------------------------------------

\begin{document}
\maketitle

%-------------------------------------------------------------------------------
%	INHOUDSOPGAVE
%-------------------------------------------------------------------------------

\tableofcontents

%-------------------------------------------------------------------------------
%	ACHTERGROND
%-------------------------------------------------------------------------------

\section{Achtergrond}
Bouwen van een social network, opdracht als oefening projectmatig werken.
Het project social network is gekozen boven de andere onderwerpen omdat deze interessant was voor alle groepsleden. Dit omdat het een uitgebreid onderwerp is, redelijk modulair en dus ook makkelijker te verdelen en eigen insteek aan toe te voegen. Ook is het zo dat er gerelateerde ervaring is binnen de groep, maar geen specifieke ervaring met een soortgelijke toepassing, wat een reden is geweest om een ander onderwerp te mijden.

%-------------------------------------------------------------------------------
%	DOELEN
%-------------------------------------------------------------------------------

\section{Projectdoelstelling}
\subsection{Doelstellling}
Maak door middel van een website een sociaal netwerk. Gebruikers kunnen hier registreren zodat ze een eigen account krijgen met profiel. Na geregistreerd te hebben kunnen gebruikers verschillende acties uitvoeren.

Vrienden maken: Gebruikers kunnen naar andere gebruikers een vriendenverzoek sturen, deze moet het dan accepteren voordat de twee gebruikers ook echt vrienden zijn.

Profiel bewerken: Een gebruiker kan zijn/haar eigen profiel aanpassen door informatie over zichzelf te plaatsen en berichten plaatsen op het profiel die alleen zichtbaar zijn voor vrienden. Ook kan de gebruiker kiezen in hoeverre de informatie voor iedereen zichtbaar is, dit is in eerste instantie voor iedereen zichtbaar.

Priv\'e chat: Als gebruikers met elkaar bevriend zijn, kunnen deze met elkaar chatten.

Pagina’s: Een gebruiker kan ook een pagina aanmaken. Van deze pagina kunnen andere gebruikers dan lid worden om de inhoud ervan te zien. De gebruiker die het aan heeft gemaakt is dan een beheerder van de pagina en kan als enige posts plaatsen op die pagina.

Beheren: Ook moeten er beheerders komen op het sociaal media, deze kunnen gebruikers op non-actief zetten zodat deze niet meer kunnen communiceren.

%-------------------------------------------------------------------------------
%	RESULTAAT
%-------------------------------------------------------------------------------

\section{Projectresultaat}
Het product
De opdrachtgever wil een sociaal netwerk waar gebruikers informatie over zichzelf kunnen posten. Gebruikers hebben hun eigen profielpagina waar deze posts te bekijken zijn. De gebruiker kan zijn eigen profielpagina zelf aanpassen en eventueel de zichtbaarheid wijzigen (standaard zijn profielen voor iedereen zichtbaar).

Gebruikers kunnen elkaar bevrienden, gebruiker A stuurt dan een vriendschapsverzoek naar gebruiker B. Wanneer gebruiker B deze accepteert zijn gebruiker A en B bevriend. Gebruikers kunnen daarnaast met hun vrienden communiceren door priv\'eberichten te sturen.

Wanneer een profiel niet zichtbaar is voor iedereen kan alleen de eigenaar van het profiel en zijn vrienden de profielpagina bekijken.

Naast profielpagina's voor gebruikers zijn er ook nog pagina's voor bedrijven of onderwerpen die door gebruikers zijn aangemaakt en worden beheerd. Standaard zijn deze pagina's enkel zichtbaar voor de leden.

Administrators zijn gebruikers met extra rechten. Zij kunnen alles wat andere gebruikers ook kunnen en daarnaast kunnen ze alles zien en gebruikers (tijdelijk) verbannen.

Beschikbare middelen
Voor deze opdracht hebben we met 5 mensen 4 weken de tijd.

%-------------------------------------------------------------------------------
%	ORGANISATIE
%-------------------------------------------------------------------------------

\newpage
\section{Projectorganisatie}

\subsection{Rollen}
\textbf{Gitadmin}
\begin{itemize}[noitemsep]
    \item Wie: Marijn.
    \item Wat: Mergeconflicts oplossen.
    \item Waarom: Als meerdere mensen mensen proberen conflicts op te lossen krijg je nog meer conflicts.
    \item Wanneer: Als er een mergeconflict is
\end{itemize}

\textbf{Serveradmin}
\begin{itemize}[noitemsep]
    \item Wie: Lars.
    \item Wat: Zorgen dat de server goed blijft werken en dat het goed toegankelijk is.
    \item Waarom: Omdat er anders geen mooi eindproduct zichtbaar is en/of de server moeilijk loopt.
    \item Wanneer: Tijdens het hele project.
\end{itemize}

\textbf{Frontend}
\begin{itemize}[noitemsep]
    \item Wie: Kevin
    \item Wat: Frontend controleren op kwaliteit.
    \item Waarom: Kwaliteit van de frontend garanderen.
    \item Wanneer: Na iedere commit (na implementatie van een nieuwe functionaliteit/feature).
\end{itemize}

\textbf{Backend}
\begin{itemize}[noitemsep]
    \item Backend:
    \item Wie: Hendrik.
    \item Wat: Eindcontrole backend onderdelen.
    \item Waarom: Kwaliteit van de site garanderen.
    \item Wanneer: Na iedere commit (na implementatie van een nieuwe functionaliteit/feature).
\end{itemize}

\textbf{Notulist}
\begin{itemize}[noitemsep]
    \item Wie: Joey Lai
    \item Wat: Notulen schrijven, logboek bijhouden en Trello Board onderhouden.
    \item Waarom: Goed overzicht van wat er allemaal gebeurd en of het project op schema loopt.
\end{itemize}

\subsection{Werkwijze}
\begin{itemize}[noitemsep]
    \item Merge conflicten worden opgelost door de gitadmin.
    \item Elke maandag vergaderen en iedere dag een korte kickoff.
    \item Communiceren gaat via de telegram groepsapp.
    \item Werken volgens de scrum methode.
    \item Werken met Trello zodat we goed kunnen zien wie welke taak op zich heeft genomen. Hierdoor is het makkelijk te controleren of iedereen wel aan de alle onderdelen heeft geholpen.
    \item Iedereen is verantwoordelijk voor het eindresultaat.
    \item Open communicatie.
    \item Bij irritaties eerlijke feedback geven.
    \item Afspraken nakomen.
    \item Iedereen woont vergaderingen bij.
    \item Vergaderingen beginnen op tijd.
    \item Iedereen krijgt voldoende ruimte voor inbreng.
\end{itemize}

%-------------------------------------------------------------------------------
%	PLANNING
%-------------------------------------------------------------------------------

%Zet de planning indien gewenst in een apart document
%\input{planning}
\newgeometry{top=20mm, bottom=20mm, left=10mm, right=10mm}
\begin{landscape}
\section{Planning}
\begin{ganttchart}[
		vgrid,
		hgrid,
		x unit=1cm,
		y unit title=.6cm,
		y unit chart=.7cm,
		group left peak width=.2,
		group right peak width=.2
	]{1}{21}
	\gantttitle{MyHyvesBook+}{21} \ganttnewline
	\gantttitle{Week 1}{5}
	\gantttitle{Week 2}{5}
	\gantttitle{Week 3}{5}
	\gantttitle{Week 4}{5} \ganttnewline
	\gantttitlelist{9,...,13}{1}
	\gantttitlelist{16,...,20}{1}
	\gantttitlelist{23,...,27}{1}
	\gantttitlelist{30,31,1,2,3}{1} \ganttnewline
	
	\ganttbar{Inleiden}{1}{1} \ganttnewline
	
	\ganttlinkedgroup{Frontend}{2}{5} \ganttnewline
	
	\ganttbar{html/views}{2}{5} \ganttnewline
	\ganttbar{css/styles}{2}{5} \ganttnewline
	\ganttbar{javascript}{2}{5} \ganttnewline
	\ganttmilestone{Week 1}{5} \ganttnewline
	
	\ganttlink[link mid=.833]{elem2}{elem5}
	\ganttlink[link mid=.75]{elem3}{elem5}
	\ganttlink[link mid=.5]{elem4}{elem5}
	
	\ganttlinkedgroup{Backend}{6}{10} \ganttnewline
	
	\ganttbar{Database/PhpMyAdmin}{6}{6} \ganttnewline
	\ganttbar{SQL-queries/MySql}{7}{10} \ganttnewline
	\ganttbar{Forms/php}{6}{10} \ganttnewline
	\ganttbar{Livechat/AJAX, PHP}{6}{10} \ganttnewline
	\ganttmilestone{Week 2}{10} \ganttnewline
	
	\ganttlink[link mid=.5]{elem7}{elem8}
	\ganttlink[link mid=.833]{elem8}{elem11}
	\ganttlink[link mid=.75]{elem9}{elem11}
	\ganttlink[link mid=.5]{elem10}{elem11}
	
	\ganttbar{Beveiliging/testen}{6}{15} \ganttnewline
	
	\ganttgroup{Gebruiksvriendleijk}{11}{15} \ganttnewline
	\ganttbar{Mobileformaat}{11}{15} \ganttnewline
	\ganttbar{Restyle}{11}{15} \ganttnewline
	\ganttbar{Extra's}{11}{15} \ganttnewline
	\ganttbar{Code opschonen}{14}{15} \ganttnewline
	
	\ganttmilestone{Week 3}{15} \ganttnewline
	\ganttlink[link mid=.75]{elem11}{elem13}
	\ganttlink[link mid=.917]{elem12}{elem18}
	\ganttlink[link mid=.875]{elem14}{elem18}
	\ganttlink[link mid=.833]{elem15}{elem18}
	\ganttlink[link mid=.75]{elem16}{elem18}
	\ganttlink[link mid=.5]{elem17}{elem18}
	
	\ganttlinkedgroup{Afronding}{16}{20} \ganttnewline
	\ganttbar{Rapport}{16}{20} \ganttnewline
	\ganttbar{Documentatie}{16}{20} \ganttnewline
	\ganttbar{Demo}{18}{20} \ganttnewline
	
	\ganttmilestone{Finshed!}{20}
	\ganttlink[link mid=.833]{elem20}{elem23}
	\ganttlink[link mid=.75]{elem21}{elem23}
	\ganttlink[link mid=.5]{elem22}{elem23}

\end{ganttchart}
\end{landscape}


%-------------------------------------------------------------------------------
%	BIJLAGEN EN EINDE
%-------------------------------------------------------------------------------

%\section{Bijlage A}
%\section{Bijlage B}
%\section{Bijlage C}

\end{document}
