\chapter{Studie proveditelnosti}
\section{Popis projektu a jeho etap}
\subsection{Výchozí stav}
Pokud chce mít spotřebitel celkový přehled o své finanční situaci, musí skladovat účtenky, extrahovat z nich informace a ty zaznamenávat v nějaké mobilní aplikaci k tomu určené, v horším případě v excelu. Toto úsilí zabírá čas, což snižuje pravděpodobnost pravidelně tyto informace zaznamenávat a na základě výsledků provést potřebné kroky ke zlepšení  finanční situace spotřebitele.

Další problém nastává s produkty, které mají záruku. Od nich je nutné uchovávat účtenky, kterými musí spotřebitel prokazovat koupi daného produktu. Účtenky jsou však tisknuty na papír, který po čase tmavne a degraduje. Tím pádem musí spotřebitel tyto účtenky správně skladovat, nebo převádět do elektronické podoby.

\subsection{Finální stav}\label{subsection:FinalniStav}
Spotřebitel si založí účet na webové stránce. Ten si poté spojí se svými bankovními účty a půjde na nákup. Zaplatí mobilem, kreditní nebo debetní kartou a jde domů bez převzetí jakéhokoliv dokladu o platbě. Během chvilky spotřebiteli přijde upozornění na mobil o provedené platbě. V případě zájmu si otevře svoji aplikaci, kde najde:
\begin{itemize}
    \item Údaje o provedené platbě s datem platby, celkovou cenou zboží, EET a jinými identifikačními údaji.
    \item Položkový seznam zboží, které nakoupil.
    \item Na základě své nákupní historie spotřebitel dostane doporučení na změny svých nákupních návyků pro celkové ušetření času a peněz.
    \item V případě konzumního zboží aplikace ukazuje kalorické a výživové údaje. V případě základních potravin i typy na přípravu rychlého, jednoduchého a zdravého jídla.
    \item Pokud zboží má státem garantovanou záruční dobu, zobrazují se kontakty a odkazy na případné reklamační oddělení.
    \item Jedná li se o nábytek, elektroniku, zahradní nářadí či jiné zboží, jež by v sobě obsahovalo návody, bezpečnostní instrukce či jiné příbalové letáky, tyto informace jsou poskytnuty ve formě PDF dokumentů v aplikaci.
    \item Spotřebitel také může vyhledávat stejné či podobné produkty podle klíčového slova, kde dokáže zjistit užitečné informace. Příklad: Spotřebitel jede na velký nákup. Potřebuje nakoupit mléko na další měsíc, protože je v akci. Podívá se do aplikace, vyhledá mléko a aplikace mu řekne, že minulý měsíc nakoupil $15 * 1,5 l$ mléčných kartonů. Spotřebitel tak ví, že má nakoupit $22.5 l$ mléka.
\end{itemize}
V aplikaci by se postupně objevovalo více funkcí na základě zpětné vazby od uživatelů.

Obchodník si musí ke svému prodejnímu systému připojit aplikaci, která spojuje systém BillSaver spolu se systémem obchodníka. Tato aplikace může běžet jak u obchodníka, tak na systémech BillSaveru za určitý měsíční poplatek. Obchodník se tak nemusí starat o zálohování svých dat, která si vždy může stáhnout z BillSaveru. Může se také dozvědět informace o svých zákaznících, například:
\begin{itemize}
    \item Věková skupina zákazníků, pohlaví či jiné údaje, které zákazník vyplní při registraci nebo které systém vydedukuje, například koníčky zákazníků, jídelní preference a podobně.
    \item Nejoblíbenější produkty prodejce.
    \item Průměrná částka za nákup.
    \item Reklamovatelnost zboží.
    \item Nejčastější způsob platby.
\end{itemize}
V případě zájmu si obchodník může objednat další statistické a analytické služby. Obchodník se tak nemusí starat o zákaznické karty, protože informace o zákaznících dostane od BillSaveru. Místo zákaznických karet, které zákazníci mohou, či nemusí použít, BillSaver funguje automaticky pro každou platbu. Obchodník také může zavést slevy na určité zboží pro své věrné zákazníky.
\subsection{Souhrnná informace o projektu}
\begin{itemize}
    \item Projekt řeší analýzu skladování a extrahování informací z účtenek, tak aby vyextrahované informace byly přínosné jak pro zákazníka, tak pro obchodníka.
    \item Systém dodává relevantní doplňkové informace k jednotlivým produktům.
    \item Celý systém je také lehce rozšiřitelný, aby se k němu dokázala přidávat další funkcionalita.
    \item Projekt se zaměřuje na mladší až středně staré věkové skupiny, které inklinují k automatizaci a ulehčení práce pomocí technologií.
    \item Dále se projekt zaměřuje na malé až středně velké obchodníky, kteří by potřebovali zjistit více informací ohledně svých zákazníků.
\end{itemize}

\subsection{Lokalizace projektu}
Pro jednoduchou správu celého systému a finanční nenáročnost bude systém běžet v cloudu u jedné ze společností Google cloud, AWS a nebo Azure. Tyto společnosti byly vybrány na základě jejich spolehlivosti, bezpečnosti, jednoduchosti škálování a dobré znalosti ve vývojářské komunitě.

Pro flexibilní výběr talentovaných lidí z České republiky a nebo sousedních zemí, snížení finančních nákladů a ověřenosti daného přístupu přes pandemii SARS-CoV-2 bude celý tým pracovat vzdáleně.

Pro sídlo firmy využijeme služeb od jedné ze společností, nabízejících virtuální firemní sídla.
\subsection{Fáze projektu a jeho harmonogram}  \label{subsection:Hamronogrma}
Projekt je rozdělen do 5 fází, jež by měly kopírovat SDLC, viz \ref{section:SDLC}.
Plánování a analýza by patřily do předinvestiční fáze. Návrh a implementace by patřily do investiční fáze, údržba spolu s kontinuálním vývojem by patřily do provozní fáze.

\subsubsection{Fáze předinvestiční}
\begin{enumerate}
\item Plánování
\begin{itemize}
    \item \textbf{Tvorba studie proveditelnosti.}
    \item \textbf{Založení vývojového týmu.}
    \item \textbf{Vymezení styčných cílů.}
    \item Vymezení cílové skupiny.
    \item Vydefinování buisness potřeb.
    \item \textbf{Identifikování budoucích problémů.}
    \item \textbf{Výběr vhodných technologií.}
    \item Ohraničení buisness cílů.
    \item Zanalyzování zájmu o BillSaver z pohledu spotřebitelů a obchodníků.
\end{itemize}
\item Analýza
\begin{itemize}
    \item Provedení rešerše podobných projektů.
    \item \textbf{Klasifikování problémů, které mohou nastat, a navrhnout k nim řešení.}
    \item \textbf{Poukázat na nezbytné části systému.}
\end{itemize}
\end{enumerate}

Protože plánování a analýza velice úzce souvisí s druhou bakalářskou prací od Anastasiie Bernikové, na kterou tato práce navazuje. Musíme si zde velice jasně vymezit rozsah. Protože se tato bakalářská práce zaměřuje především na technickou implementaci BillSaveru, nebudeme se okruhy jako například vymezení cílové skupiny, zanalyzování zájmu o BillSaver, provedení rešerše podobných projektů atd.,  zabývat. Budeme se zde věnovat pouze tučně vyznačeným bodům, a to převáženě po technické stránce. Plánování a analýza jsou vytvořeny v gant diagramu, viz obrázek: \ref{fig:gantPlanovaniAAnalyza}


\subsubsection{Fáze investiční}

\begin{enumerate}
\item Návrh
\begin{itemize}
    \item Zanalyzování dat, která se budou uchovávat v databázi.
    \item Vytvoření databázového modelu.
    \item Zanalyzování interakce buisness entit mezi sebou.
    \item Navržení komunikačního rozhraní jednotlivých buisness entit.
    \item Návrh uživatelského rozhraní.
\end{itemize}
\item Implementace
\begin{itemize}
    \item Na základě analýzy vytvořit seznam úkolů.
    \item Vytvoření datového modelu na základě databázového modelu.
    \item Na základě designu aplikace vytvořit implementaci.
    \item Otestovat aplikace.
\end{itemize}
\end{enumerate}
Pro podrobnější návrh jednotlivých servis, rozdělení komunikace, odůvodnění, proč jsme použili zrovna Microservice architecture a dalších implementačních detailů se prosím obraťte na kapitolu\ref{section:TechnickeAspekty}. Zde si pouze ukážeme harmonogram práce. Návrh je vytvořen v gant diagramu, viz obrázek:\ref{fig:gantNavrh}Pro rozsáhlost implementační části jsme museli rozdělit gant diagram na dvě části, viz obrázky: \ref{fig:gantImplementace1}, \ref{fig:gantImplementace2}

\subsubsection{Fáze provozní}

Tato fáze nebude mít sadu úkolů, které budou mít začátek a konec. Nebudeme zde tak tvořit harmonogram práce. Pouze zde popíšeme jednotlivé pozice, které se budou starat o správný chod celé aplikace.

\begin{itemize}
        \item Admin tým
    \begin{enumerate}
        \item Monitorování stavu všech servis.
        \item V případě výskytu chyby buď chybu vyřešit, nebo eskalovat problém na technický tým.
    \end{enumerate}
        \item Technický tým
    \begin{enumerate}
        \item Řešit a opravovat vzniklé chyby v systému.
        \item Vyvíjet novou funkcionalitu na základě připomínek zákazníků, PR nebo buisness partnerů.
    \end{enumerate}
        \item PR tým
    \begin{enumerate}
        \item Zahajovat a vyhodnocovat promoční kampaně.
        \item Zjišťovat a zajišťovat zpětnou vazbu od zákazníků.
        \item Navrhovat novou funkcionalitu, kterou by zákazníci využili.
        \item Nábor nových obchodníků do systému.
    \end{enumerate}
        \item Support tým
    \begin{enumerate}
        \item Řešení problémů spotřebitelů.
        \item Řešení problémů obchodníků.
        \item Případná komunikace s admin, technickým a nebo PR týmem.
    \end{enumerate}
\end{itemize}

\begin{sidewaysfigure}[h]
    \centering
    \hspace*{-3cm}
    \includegraphics[width=\paperheight-5cm]{images/Gant-planovani a analyza.png}
    \caption{Gant diagram s plánováním a analýzou} 
    \label{fig:gantPlanovaniAAnalyza}
\end{sidewaysfigure}

\begin{sidewaysfigure}[h]
    \centering
    \includegraphics[width=\paperheight-5cm]{images/Gant-navrh.png}
    \caption{Gant diagram návrh} 
    \label{fig:gantNavrh}
\end{sidewaysfigure}

\begin{sidewaysfigure}[h]
    \centering
    \hspace*{-3cm}
    \includegraphics[width=\paperheight-5cm]{images/Gant-implementace1.png}
    \caption{Gant diagram implementace část 1} 
    \label{fig:gantImplementace1}
\end{sidewaysfigure}

\begin{sidewaysfigure}[h]
    \centering
    \includegraphics[width=\paperheight-5cm]{images/Gant-implementace2.png}
    \caption{Gant diagram implementace část 2} 
    \label{fig:gantImplementace2}
\end{sidewaysfigure}

\FloatBarrier
