<reponame>marlondecol/tcc-engcomp
\begin{tikzpicture}[%
	decision/.style={%
		diamond,
		color=unoesc-green,
		draw=unoesc-green,
		fill=unoesc-green!15,
		inner sep=0pt,
		shape aspect=1.5,
		text width=1.75cm
	},
	empty/.style={%
		draw=none,
		fill=none,
		text opacity=0
	},
	event/.style={%
		rounded rectangle,
		color=unoesc-red,
		draw=unoesc-red,
		fill=unoesc-red!15
	},
	every fit/.style={%
		inner sep=-.25pt
	},
	every node/.style={%
		text centered,
		font=\ABNTEXfontereduzida,
		inner sep=6pt,
		line width=.5pt,
		minimum width=2.6cm,
		text width=2.6cm
	},
	header/.style={%
		color=black!50,
		draw=none,
		fill=none,
		inner sep=0
	},
	pool/.style={%
		dashed,
		draw=black!50,
		inner sep=1.5mm,
		line width=.5pt,
		rounded corners=2mm
	},
	process/.style={%
		color=unoesc-blue,
		draw=unoesc-blue,
		fill=unoesc-blue!15,
		rounded corners=1.5mm
	}
]
	\matrix[%
		ampersand replacement=\&,
		column sep=8mm,
		row sep=5mm
	]{%
		% Cabeçalho.
		\node[header] (tcc1) {\acs{tcc} I}; \& \& \node[header] (tcc2) {\acs{tcc} II}; \\
		% Linha 1.
		\node[event] (start) {Início}; \\
		% Linha 2.
		\node[process] (1) {Definir \hyperref[sec:problema_justificativa]{problematização e justificativa}}; \&
		\node[decision] (suggestions) {Houve considerações da banca?}; \&
		\node[process] (6) {Revisar e aplicar sugestões da banca}; \\
		% Linha 3.
		\node[process] (2) {Pesquisar conteúdo em \hyperref[cha:revisao_literatura]{materiais bibliográficos}}; \&
		\node[process] (7) {Adquirir componentes do dispositivo}; \\
		% Linha 4.
		\node[process] (3) {Elencar os elementos do sistema}; \&
		\node[process] (8) {Solicitar fabricação da \acs{pci}}; \&
		\node[process] (13) {Realizar testes de bancada}; \\
		% Linha 5.
		\node[process] (4) {Delinear a \hyperref[sec:aplicacao_metodologia]{modelagem do projeto}}; \&
		\node[process] (9) {Desenvolver \textit{firmware} e \textit{driver} do dispositivo}; \&
		\node[decision] (adjust) {Requer ajustes?}; \&
		\node[process] (14) {Verificar falhas e aplicar correções e melhorias}; \\
		% Linha 6.
		\node[process] (5) {Apresentar o projeto à banca de \acs{tcc} I}; \&
		\node[process] (10) {Programar \textit{software} de autenticação e gerenciamento}; \&
		\node[process] (15) {Efetuar a montagem do \textit{hardware}}; \\
		% Linha 7.
		\node[decision] (board1) {Foi aprovado?}; \&
		\node[process] (11) {Elaborar e disponibilizar \textit{skill} da Alexa}; \&
		\node[process] (16) {Validar o funcionamento do sistema}; \\
		% Linha 8.
		\& \node[process] (12) {Preparar servidores e \textit{broker} \acs{mqtt}}; \&
		\node[process] (17) {Apresentar monografia à banca de \acs{tcc} II}; \\
		% Linha 9.
		\& \& \node[decision] (board2) {Foi aprovado?}; \\
		% Linha 10.
		\node[empty] (southwest) {Fim}; \&
		\& \node[event] (finish) {Fim}; \\
	};

	\node[empty, fit=(tcc1) (southwest), pool] {};
	\node[empty, fit=(tcc2) (14) (finish) (suggestions), pool] {};

	\begin{scope}[%
		back/.style={%
			<-,
			shorten <=1pt,
			shorten >=0pt
		},
		every node/.style={%
			font=\ABNTEXfontereduzida\relscale{.8}
		},
		every path/.style={%
			->,
			>={Stealth[%
				inset=1pt,
				length=4pt
			]},
			draw=black,
			line width=.5pt,
			rounded corners=1.5mm,
			shorten >=1pt
		}
	]
		\path (start) -- (1);
		\path (1) -- (2);
		\path (2) -- (3);
		\path (3) -- (4);
		\path (4) -- (5);
		\path (5) -- (board1);
		\path (3.west) [back] -- ++(-3mm,0) |- (board1.west) node [anchor=north east] {Não};
		\path (suggestions.north) [back] -- ++(0,3mm) -| ($ (5.east) + (3mm,0) $) |- (board1.east) node [anchor=north west, xshift=-1.5mm] {Sim};
		\path (suggestions.east) node [anchor=north west] {Sim} -- (6);
		\path (suggestions.south) node [anchor=north west] {Não} -- (7);
		\path (6) |- (7);
		\path (7) -- (8);
		\path (8) -- (9);
		\path (9) -- (10);
		\path (10) -- (11);
		\path (11) -- (12);
		\path (12.east) -- ++(5mm,0) |- (13.west);
		\path (13) -- (adjust);
		\path (adjust.east) node [anchor=north west] {Sim} -- (14);
		\path (adjust.south) node [anchor=north west] {Não} -- (15);
		\path (14) |- (13);
		\path (15) -- (16);
		\path (16) -- (17);
		\path (17) -- (board2);
		\path (suggestions.west) [back] -- ++(-3mm,0) |- (board2.west) node [anchor=north east] {Não};
		\path (board2.south) node [anchor=north west] {Sim} -- (finish);
	\end{scope}
\end{tikzpicture}
