Microsoft Word - dokumentácia-k-riadeniu.docx

Podobné dokumenty
Snímka 1

Metodika práce s gitom Spôsob práce s gitom V projekte sa budú udržovať dve hlavné vetvy: - Master - Hlavná vetva, ktorá odráža otestovaný funkčný kód

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Iľkovičova 2, , Bratislava 4 Metodika verziovania Tím

MOTIVAČNÝ DOKUMENT TÍMOVÝ PROJEKT TÍM Č. 21 GROMA Matej HORVÁTH Matej JURKÁČEK Peter KAMENSKÝ Jozef KŇAZE Adam MACKOVÁ Kristína PEJCHALOVÁ Lenka SEDLÁ

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Zápisnica zo stretnutia #4 Tím sixpack Bc. Jozef Blažíček B

Predstavenie tímu Náš tím pozostáva zo siedmich členov: Andrej Hucko, Jakub Domian, Ľubomíra Trnavská, Ján Karaffa, Ľudovít Popelka, Dušan Janeček a Z

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Deep Search Dokumentácia

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Deep Search Metodiky výv

NSK Karta PDF

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Iľkovičova 2, , Bratislava 4 Big picture - Riadenie p

Matej Kendera - PDF, word, lucene, java

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Iľkovičova 2, , Bratislava 4 Tímový projekt MOB-UX Pr

iot business hub whitepaper isdd_em_New.pdf

NSK Karta PDF

SPRINT 2

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, Bratislava 4 Askalot meets Harvard Cou

Slovenská technická univerzita Fakulta informatiky a informačných technológii Ilkovičova 2, Bratislava Dokument riadenia Tímový projekt II Seal

Princípy tvorby softvéru GIT a iné užitocné veci

Návod na vytvorenie kvalifikovaného elektronického podpisu prostredníctvom občianskeho preukazu s čipom Dátum zverejnenia: Verzia: 1 Dátu

Používateľská príručka Obsah Používateľská príručka... 1 Administrácia servera... 2 FTP... 2 Remote Desktop... 3 Administrácia databáze:... 3 Spusteni

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

PowerPoint Presentation

Microsoft Word - pouzivatelska_prirucka.doc

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

Zápisnica stretnutia tímu EduVirtual (tím číslo 4) Téma stretnutia: Šprint review a plánovanie ďalšieho šprintu Dátum stretnutia: Miesto s

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

Slovenská Technická Univerzita v Bratislave Fakulta Informatiky a Informačných Technológií Monitorovanie a vyhodnocovanie fyziologických procesov člov

Balíčkovanie FreeSWITCH-u pre Debian Autor: Zdenko Holeša, InžProjekt 1, KIS FRI ŽU Predkompilované balíčky Predkompilované balíčky existujú pre Debia

SAEAUT SNMP OPC Server

aplikácia do mobilého telefónu na stiahnutie digitálneho tachografu

SK01-KA O1 Analýza potrieb Zhrnutie BCIME tím Vyhlásenie: "Podpora Európskej komisie pre výrobu tejto publikácie nepredstavuje súhlas

Manuál pre nastavenie tlače z VRP Bluetooth, USB tlačiarne Bluetooth, USB tlačiarne Manuál pre nastavenie tlače -1-

Slovenská technická univerzita v Bratislave FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Ilkovičova 3, Bratislava Tímový projekt Ponuka Grafi

Pravidelné úlohy verzia ku dňu SEAL IT Services, s.r.o. Kontakt: SEAL IT Services, s.r.o., Topoľová 4, Bratislava 1, tel.:

STRUČNÝ NÁVOD KU IP-COACHU

Microsoft Word - Priloha_1.docx

Digitálne technológie v každodennom živote 3. ročník akademický rok 2019/2020 Harmonogram prednášok

Detail správy a súvisiace prvky Dátum zverejnenia: Verzia: 5 Dátum aktualizácie: Detail správy a súvisiace prvky UPOZORNENIE

Privátna zóna pre prevádzku Obsah Privátna zóna pre prevádzku 1 Obsah 1 Webová stránka 2 Úvodná stránka 2 Registrácia prevádzka/penzión

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Snímka 1

Manuál pre nastavenie tlače z VRP elio m500 Elio m500 Manuál pre nastavenie tlače -1-

Microsoft PowerPoint - CONNECT_R&A_76_sk

0022-vub-mobilne-tokeny-200x200-v03.indd

Objektovo orientované programovanie

CitiManager - Migration Quick Reference Guide for Cardholders_Slovak_fin

Microsoft Word - o06_Príručka k inštalácii a registrácii OverKupon_v4.doc

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE Fakulta informatiky a informačných technológií STU Ústav počítačových systémov a sietí ZADANIE SEMESTRÁLNE

SK_mTransfer_Okamzita_notifikacia_ indd

VSDC Free Video Editor stručný návod na používanie Link na sťahovanie softvéru: K prog

Programujeme krok za krokom prvú mobilnú aplikáciu v AI2

(Microsoft Word - Registr\341cia \372\350tu Hik-Connect.docx)

Prevádzka

eKasa

Kategória školenia Kurzy Project, Outlook obsahuje kurzy: Outlook základy Účastníci kurzu Outlook základy sa naučia využívať tento program na ov

Slovenská technická univerzita v Bratislave

eKasa

Microsoft PowerPoint - OOP_prednaska_10.pptx

Manuál uchádzača ezakazky Manuál uchádzača Dátum vytvorenia dokumentu: Verzia: Autori slovenský Matej Marcin, Stanislava Marošiová Te

Používateľská príručka elektronických služieb pre žiadateľov o štatistické informácie október 2016

EduVirutal (Tím číslo 4) Metodiky projektu Roly členov tímu, zodpovednosti: Koník Kristián Manažérske úlohy: Kontrola stavu systému na správu verzií (

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Informačný systém pre materské školy Bakalárska práca 2019 Monika Vlčková

Webové portály pre Hlavné mesto SR a Dopravný podnik Bratislava Ako sme Hlavnému mestu a Dopravnému podniku Bratislava zabezpečili väčší používateľský

sprievodca-priestor.pdf

STRUČNÝ NÁVOD KU IP-COACHU

Prezentácia programu PowerPoint

Microsoft Word - Dokument_riadenia_k_timovemu_projektu.docx

Navigácia po úvodnej stránke elektronickej schránky Dátum zverejnenia: Verzia: 10 Dátum aktualizácie: Navigácia po úvodnej st

Ponuka Štart

(Manu\341l)

Čo bude ďalší krok pre rozvoj ekonomiky SR, alebo Premrhaný(?) potenciál štátneho IT

Aktion.NEXT Novinky vo verzii 1.9

Microsoft Word - o09_Používateľská príručka ku kontrole kupónov na webe_v4.doc

Snímka 1

Manuál aplikácie eoev

Microsoft Word - prirucka_katedry_nova

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak,

UpRekrea manuál

C-Monitor WIN klient pre verziu 2.8

Manažment v Tvorbe Softvéru 2018/2019

Finančné riaditeľstvo Slovenskej republiky 9/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor/Technik Inf

Style Sample for C&N Word Style Sheet

Microsoft Word Nextra_ADSLink.doc

Microsoft Word - ESD_-_DA_-_MA_-_Ucastnicka_verzia_video_V_3.docx

10 tipov pre tvoj forex úspech

eKasa

Návod na obsluhu CompactIO 1

IT NEWS

Ako si mám nainštalovať nový upgrade z Internetu?

Prepis:

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Importér verejných datasetov Dokumentácia k riadeniu Tímový projekt Vedúci tímu: Ing. Jakub Šimko Phd. Ing. Marek Šurek Členovi tímu: Bc. Matúš Brandajský Bc. Lukáš Belaj Bc. Božik Tomáš Bc. Michal Hrutka Bc. Tatiana Šlesariková Bc. Janka Fabušová Bc. Gabriel Csollei Študijný program: SI November 2017

Obsah 1. Úvod... 5 1.1. Roly členov tímu... 5 1.2 Podiel práce... 7 2. Aplikácie manažmentov... 9 3. Sumarizácie šprintov... 11 3.1 Šprint 1 Audi... 11 3.1.1 Retrospektíva po prvom šprinte:... 12 3.2 Šprint 2 Bugatti... 13 3.2.1 Retrospektíva po druhom šprinte:... 14 3.3 Šprint 3 Chevrolet... Error! Bookmark not defined. 4. Používané metodiky... Error! Bookmark not defined. 4.1 Metodika commitovania, branchovania a k definition of done... 21 4.2 Metodika ku scrumdesku... 22 4.3 Metodika k rozbehaniu technológií... 25 4.3.1 Rozbehanie frontendu... 25 4.3.2 Rozbehanie backendu... 27 4.4 Metodika k deploymentu... 28 4.5 Metodika k správnemu zapisovaniu chybových hlášok... 30 5. Globálna retrospektíva... 33 6. Motivačný dokument... 34 6.1 Predstavenie tímu... 34 6.2 Motivácia pre každú z tém:... 34 6.2.1 1. preferovaná téma - Inteligentný bazár [IBazar]... 34 6.2.2 2. preferovaná téma - Importér verejných datasetov [PubDatasets]... 35 6.2.3 3. preferovaná téma - Group de'cider [Group]... 36

6.3 Príloha A Zoradenie všetkých tém podľa priority... 37 6.4 Príloha B Rozvrh tímu... 38 7. Zápisnice... 39 7.1 Zápisnica zo stretnutia č.1... 39 7.2 Zápisnica zo stretnutia č.2... 40 7.3 Zápisnica zo stretnutia č.3... 41 7.4 Zápisnica zo stretnutia č.4... 42 7.5 Zápisnica zo stretnutia č.5... 43 7.6 Zápisnica zo stretnutia č.6... 44 7.7 Zápisnica zo stretnutia č.7... 44

Zoznam tabuliek a obrázkov: Tabuľka 1: Podiel práce... 7 Tabuľka 2: Rozvrh tímu... 38 Obrázok 1: Stories pre šprint č. 1... 11 Obrázok 2:Burndown graf k šprintu č. 1... 12 Obrázok 3: Stories pre šprint č. 2... 13 Obrázok 4: Burndown graf k šprintu č. 2... 14 Obrázok 5: Tagcloud... 23 Obrázok 6: Pridávanie tagov do stories... 24 Obrázok 7: Príklad revidovania... 25

1. Úvod Dokument, ktorý sme vytvorili obsahuje informácie o troch šprintoch, ktoré sme, ktoré máme za sebou a jeho hlavným účelom je ukázať progress, ktorý sme počas prvých týždňov, spravili. Na úvod dokumentu sme sa zamerali na opis členov tímu, ich časový prínos na projekte, V ďalšej časti sme sa zamerali na manažment projektu, tj. priebeh stretnutí, výstupy šprintov a o používaných nástrojoch počas vývoja. V ďalšej kapitole sme sa zamerali na jednotlivé šprinty, napríklad dĺžka trvania šprintov, počet odpracovaných hodín a čo počas šprintov vzniklo. Jedna kapitola je venovaná metodikám, ktoré používame a dodržiavame počas šprintov a celkovej práce na projekte. Na záver dokumentácie je výpis všetkých zápisníc, ktoré vznikli počas šprintov. 1.1. Roly členov tímu Ing. Jakub Šimko, PhD. Jakub je náš pedagogický vedúci projektu. Svojimi doterajšími skúsenosťami nás navádzal na správnu cestu pri práci na projekte. V prípade nejasností nám vždy problém objasní. Jeho skúsenosti s UX dizajnom, budú potrebné pre jednoduché a správne používanie aplikácie. Taktiež nás oboznámil s agilným vývojom, konkrétne so scrumom a dohliada na jeho dodržiavanie. Ing. Marek Šurek Marek je náš konzultant, ktorý pôsobí vo viacerých štandardizačných komisiách na úrade podpredsedu vlády pre investície a informatizáciu. Práve on s nami konzultuje požiadavky na projekt. Jeho skúsenosti s vývojom nám pomohli a dokázal nás nasmerovať správnym smerom. Uviedol nás rýchlo do problematiky a vysvetlil nám prácu s CI, kde nám pomohol aj s implementáciou. Samozrejme nás obidvaja vedúci motivujú a pomáhajú s každým problémom, ktorý je pre nás nejasný.

Bc. Gabriel Csollei full stack vývojár práca s CI git návrh infraštruktúry správa tímového servera práca s dockerom dohľad nad prácou s vetvami Bc. Tomáš Božik vývoj na backende práca s databázami sledovanie písania testov a testovanie zapisovateľ počas stretnutí Bc. Janka Jabušová práca na webovom dizajne návrh rozhraní vývoj na frontende UX zapisovateľ počas stretnutí vytvorenie, správa a štýlovanie tímovej webovej stránky Bc. Tatiana Šlesariková práca na webovom dizajne návrh rozhraní vývoj na frontende UX zapisovateľ počas stretnutí vytvorenie, správa a štýlovanie tímovej webovej stránky

Bc. Michal Hrutka kontrolovanie git commitov vývoj na backende práca s databázami dohľad nad prácou s vetvami Bc. Lukáš Belaj vývoj na frontende návrh rozhraní práca na webovom dizajne vytvorenie, správa a štýlovanie tímovej webovej stránky aktualizácia dokumentov na gitlabe Bc. Matúš Brandajský scrummaster vývoj na backende práca s CI návrh infraštruktúry správa tímového servera zodpovednosť za zadeľovanie úloh a sumarizovanie šprintov sledovanie tímovej komunikácie práca s dockerom 1.2 Podiel práce Tý ž d e ň 3 4 5 6 7 8 9 10 11 12 Spolu Tom á š 1.5 6.5 8.5 6 5.5 5.5 33.5 Matú š 3 9 14.5 6 12 8 52.5 Mich al 0.75 6.5 5.5 5.5 7 6 31.25 Gabo 2.5 10 11.5 6 8 8 46 Lukáš 1 5 6 5.5 7.5 5 30 Ja n ka 1.5 10 7 5 6.5 5 35 Tá ň a 2 9 7 6 7 6 37 Práca kon k rétn y tý žd eň 10.3 47 53 40 53.5 43.5 265.25 Tabuľka 1: Podiel práce

V tejto tabuľke je vidieť, kto koľko počas týždňa spravil a celkovo sme odrobili 265 hodín, počas troch šprintov.

2. Aplikácie manažmentov V rámci nášho tímového projektu sme absolvovali týždenné stretnutia, na ktorých sa nachádzali aj vlastníci produktu. Na každom stretnutí riadil scrum master celý priebeh stretnutia a zapisovateľ vždy všetko potrebné zapisoval. Na začiatku každého stretnutia sme spravili kolo, kde každý opísal, čo počas týždňa spravil a koľko úsilia vynaložil. Potom prebiehala ukážka práce vlastníkom produktu, kde sme prediskutovali svetlé stránky alebo nedostatky práce. Následne sa spravil okruh otázok, ktoré bolo nutné prediskutovať. Ak zostal voľný čas, tak sa pracovalo na pridelení story pointov ku stories pomocou metódy plánovací poker. Prebiehalo to nasledovne. Najskôr, každý ohodnotil úlohu v podobe story pointov. Ak sa výsledky nezhodovali, tak vždy člen s najvyšším a najnižším číslom povedal prečo si myslí, že by mala byť úloha takto ohodnotená a hlasovanie prebehlo znova. Stretnutie, ktoré prebiehalo počas uzatvorenia šprintu a pri otvorení nového šprintu prebiehalo nasledovne. Na začiatku stretnutia sme si prezerali všetky stories, ktoré boli definované v scrumdesku a následne sme ich spolu s product ownerom presúvali do done, ak boli splnené podľa požiadaviek. Následne sme uzavreli starý šprint a pozreli sme si štatistiky burndown grafu. Pri plánovaní nového šprintu sme používali planning poker, len ak sme nestihli všetky stories ohodnotiť na predchádzajúcom stretnutí. Tu sme si aj určili, ktorú user stories zaradíme do nasledovného šprintu a otvorili sme nový šprint. Potom nasledovala retrospektíva, kde sme si povedali, čo je nutné zlepšiť a čo sme robili v tomto šprinte dobre. Tu bolo nutné opísať aj ako zlepšíme zlé spôsoby, ktoré vznikli počas šprintu Následne bolo potrebné každú story rozbiť do taskov. Pre túto činnosť sme si vyhradili čas, kde sme sa všetci stretli a spoločne sme si rozdelili úlohy pre jednotlivých členov tímu. Pre zaznamenávanie tejto práce nám slúžil systém pre manažment úloh Scrumdesk. Pomocou tohto systému sme sledovali priebeh vykonávania jednotlivých úloh a zároveň bolo možné v Scrumdesku aj revidovať jednotlivé tasky. Celkový priebeh šprintu sme si rozdelili na 5 častí: To do, In progress, For review, awaiting aprooval a done. Keďže sa na vývoji podieľali viacerí členova tímu, bolo potrebné zabezpečiť nástroj na zdieľanie zdrojového kódu. My sme si zvolili systém gitlab, ktorý nám poslúžil aj na dokumentáciu k projektu. Vytvorili sme si tri repoziráre: prvý repozitár slúži na backend, druhý na frontend a tretí na dokumentáciu ku kódu. Stanovili sme si aj pravidlá, ktoré budeme používať pri commitovaní a merge requestoch, sú opísané v metodike commitovania

Pre jednoduchý vývoj sme použili viacero technológií. Medzi prvú patrí docker. Docker nám umožnil našu aplikáciu použiť ako kontajner. To nám v konečnom dôsledku dovolilo použiť gitlab runner, ktorý zbuilduje celý projekt a vytvorí vždy nový docker image po každom novom commite. Toto nám umožnilo jednoduché nasadenie našej aplikácie na cloud, kde sme využili docker compose. Docker compose dokáže, celý zbuildovaný projekt dotiahnuť na cloud a spustiť zároveň. Pri práci na tímovom projekte je veľmi potrebná komunikácia. Tu sme si zvolili nástroj Slack, v ktorom sme si vytvorili viacero kanálov. V každom kanály prebieha komunikácia ku konkrétnej téme. Vďaka tejto aplikácií je naša komunikácia prehľadná. V slacku sme si importovali aj modul na vytváranie ankety, ktorý nám pomáha pri rozhodovaní. Dôležitou súčasťou softvéru je aj dokumentácia, ktoré je potrebné neustále dopĺňať a aktualizovať. Agilný vývoj softvéru si vyžaduje aj dokumentáciu. Preto sme počas projektu vytvorili viacero typov dokumentov Motivačný dokument Zápisnice zo stretnutí v šprintoch Retrospektívy na konci šprintov Dokumentácie k nasadzovaniu softvéru Príručky a metodiky na používanie technológií Dokumentácia k riadeniu Dokumentácia k inžinierskemu dielu

3. Sumarizácie šprintov 3.1 Šprint 1 Audi Prvý šprint prebiehal formou oboznámenia s technológiami, rozbehnanie nášho projektu a základnú funkcionalitu. Na obrázku je vidieť, ktoré user stories sme si vybrali do tohto šprintu. Obrázok 1: Stories pre šprint č. 1 Šprint bol úspešný a a všetky úlohy sa nám podarilo dokončiť a boli akceptované product ownerom. V tomto šprinte sme si rozbehali technológie, a bola spravená prvá verzia API na upload súboru, s tým že sa spracované dáta aj odoslali naspať na FE a zobrazili v tabuľke. Zoznámili sme sa so scrumdeskom a s gitlabom a vytvorili sa aj prvé wireframy obrazoviek. V burndown charte je vidieť, že väčšina stories sa dokončilo až na konci a bolo to spomenuté aj v retrospektíve. Počas niektorých taskov vznikli zaujímavé dokumentácie, ktoré sú ukázané v prílohách.

Obrázok 2:Burndown graf k šprintu č. 1 3.1.1 Retrospektíva po prvom šprinte: Čo bolo pozitívne/v čom by sme mali pokračovať: spolupráca v tíme na začiatku stretnutie s účelom rozdeľovania taskov komunikácia na slacku, každý z nás videl problémy merge requesty branche na gite Michal dával po prstoch Naopak s čím by sme mali prestať: neprodukovať zbytočnú dokumentáciu nemať ID kódy v dokumentácií prestať písať commit logy v slovenčine review nerobiť neskoro => označiť človeka

Na čom sme sa dohodli: review v pullrequestoch o zamýšľať sa nad užitočnosťou pri dokumentácii o aktualizovať chlieviky v scrumdesku pri prezentácií mať veci nasadené, integračné testy 3.2 Šprint 2 Bugatti Druhý šprint už bol zaujímavejší, zvolili sme si user stories, ktoré sme považovali za potrebné. Medzi ne patrí napríklad exportovanie do excel formátov. Na základe úspešného šprintu sme sa rozhodli zvýšiť počet story pointov. Úlohy je možné vidieť na ďalšom obrázku. Obrázok 3: Stories pre šprint č. 2 Bohužiaľ, tento šprint nebol úspešný. Dôvodom bola práca s novými technológiami a zlý odhad stories. Celý problém bol pri User Story Vytvorenie vhodnej databázy pre uchovávanie Centrálneho modelu. Tu sa prvý krát pracovalo s Centrálnym modelom a to bol problém v tomto šprinte. Story Preklopiť frontend do bootstrapu nebolo akceptované, pretože prototyp nebol nasadený. Samozrejme

sa zase veci dokončovali v posledný možný deň a to nám nedalo dostatočný priestor na komunikáciu. V tomto šprinte sa realizovala konverzia excel súborov do objektov. Rozhodli sme sa že aplikácia bude viacjazyčná a aj sme to zrealizovali. Vytvorila sa ďalší návrh používateľského rozhrania. V tomto šprinte bolo zahrnuté aj Continous integration a rozbehanie cloudu, čo sa podarilo s miernymi problémami, ktoré bolo nutné preniesť do ďalšieho šprintu na opravu. Obrázok 4: Burndown graf k šprintu č. 2 3.2.1 Retrospektíva po druhom šprinte: Čo bolo pozitívne, aj napriek tomu, že sme daný šprint nestihli úspešne ukončiť: Keď sme poprosili o review, tak každý bol ochotný ho spraviť, tým pádom sme rýchlo vybavili review Označovanie v kóde pri písaní správ Rozdelenie taskov hneď po začiatku šprintu Čomu by sme sa mali vyhnúť v ďalších šprintoch:

Vyhnúť sa nejednoznačnému opisu stories v scrumdesku Všetky veci musia byť nasadené Pointa dokumentácií API musí byť taká, že keď tam prídem, musia tam byť základné ukážky Zamyslieť sa pri dokumentácii, aká je tá užitočnosť za tým Rozdeliť ťažký task pre viac ľudí, nie iba pre jedného Prehodnotiť prideľovanie effortu pre stories Kľúčové je začať, nie celé urobiť, aby sme si uvedomili skryté riziká Prepisovanie opisov do scrumdesku zo zápisníc Ak sme pracovali na nejakých taskoch napríklad 7 hodín, tak si prisadneme k niekomu napríklad na 3 hodiny a budeme paralelne kódiť, jeden kódi, druhý ho smeruje - skúsiť robiť v pároch - treba to robiť osobne (poprípade cez skype) Systematické budovanie skúseností, praktické budovanie, každý by mal postupne pracovať tak, aby sa naučiť všetko

3.3 Šprint 3 Chevrolet Do tretieho šprintu sa nám presunuli user stories, ktoré sa nám v minulom šprinte nepodarilo splniť. Medzi ne patria: Vytvorenie vhodnej databázy na uchovávanie CM, Vytvorenie porovnávania dát 1 ku 1 a Preklopiť frontend do bootstrapu. Ku nim sme doplnili ďalšie stories z nášho backlogu, ktoré sme považovali za vhodné. Všetky úlohy tretieho šprintu je možné vidieť na ďalšom obrázku. Obrázok 5: Stories pre šprint č. 3 TREBA SPRÁVNE OČÍSLOVAŤ Žiaľ ani tento šprint nám nevyšiel úplne podľa našich predstáv. Vyskytol sa problém v komunikácií medzi elasticom a backendom na cloude. Vďaka tomuto problému sa nám nepodarilo viacero úloh dopracovať a tým sme zlyhali a preto nám neboli tieto úlohy akceptované produkt ownerom.

Obrázok 6: Burndown graf k šprintu č. 3 TREBA SPRÁVNE OČÍSLOVAŤ 3.3.1 Retrospektíva po treťom šprinte: Čo bolo pozitívne/v čom by sme mali pokračovať: Párové programovanie, pokračovať ešte vo väčšej miere Skoré rozdelenie taskov Každý rád pomohol, keď bolo treba Čomu by sme sa mali vyhnúť v ďalších šprintoch: Chýbajúci description v taskoch, popísať čo má byť výstupom tasku V dokumentácii na wiki treba podrobnejšie opisy rozbehania technológií zlepšiť návody Robiť priebežne, aby sme nemergovali všetko, možno aj kvôli tomu vznikajú chyby pri nasadzovaní Na čom sme sa dohodli: Párové nasadzovanie

Dať si stretnutie, na ktorom nasadíme všetko na každý počítač, bez ohľadu na to, či robíme FE alebo BE Rozumné rozdeľovanie review Robenie merge requestov každý spraví aspoň jeden, resp. robme ich spolu, ak sa dá párové mergovanie. 3.4 Šprint 4 Dodge V štvrtom šprinte sme nestihli dokončiť jednu úlohu: Stiahnutie výsledného súboru úradníkom. Problém bol v tom, že prvý týždeň sme o tejto úlohe diskutovali iba teoreticky, pretože nebolo jasné ako presne treba túto úlohu robiť. Počas druhého týždňa, keď sme už začali implementovať nastalo viacero problémov s touto úlohou ktoré sme neočakávali (problémy s cookies, mapovanie JSON na objekt). Kvôli tomu, že implementácia prebiehala až druhý týždeň sa úloha nestihla dokončiť načas a presunula sa do ďalšieho šprintu. Na obrázku č. 7 sú všetky úlohy vybrané do tohto šprintu. Na obrázku č. 8 je burndown graf k tomuto šprintu. Obrázok 7: Stories pre šprint č. 4 TREBA SPRÁVNE OČÍSLOVAŤ

Obrázok 8: Burndown graf k šprintu č. 4 TREBA SPRÁVNE OČÍSLOVAŤ 3.4.1 Retrospektíva po štvrtom šprinte: Čo bolo pozitívne/v čom by sme mali pokračovať: Spoločné stretnutie pred ukončením šprintu a vzájomná pomoc pri úlohách Skoré začatie úloh Čomu by sme sa mali vyhnúť v ďalších šprintoch: Robenie revertu merge bez opýtania osoby, ktorá ho spravila. Robenie implementačných úloh príliš neskoro Na čom sme sa dohodli: Revert merge treba vždy dopredu oznámiť osobe ktorá ho robila Implementačné úlohy začať implementovať už v prvom týždni Scrummaster bude kontrolovať priebeh šprintu každú Sobotu 3.5 Šprint 5 Equus

Do tohto šprintu sme si preniesli úlohu z predchádzajúceho šprintu: Stiahnutie výsledného súboru úradníkom. Hlavnou úlohou v tomto šprinte boli research úlohy. Každý člen tímu mal na starosti jednu oblasť ktorej sa venoval. Obrázok 9: Stories pre šprint č. 5 TREBA SPRÁVNE OČÍSLOVAŤ 3.5.1 Retrospektíva po piatom šprinte: Čo bolo pozitívne/v čom by sme mali pokračovať: Čomu by sme sa mali vyhnúť v ďalších šprintoch: Na čom sme sa dohodli: 4. Používané metodiky V našom projekte bolo vypracovaných viacero metodík: Metodika commitovania, branchovania a k definition of done Metodika k scrumdesku Metodika k rozbehaniu technológií Metodika k nasadzovaniu Metodika k správnemu zapisovaniu chýb

4.1 Metodika commitovania, branchovania a k definition of done Gitflow definuje striktný branching model, ktorý je zameraný na iteratívny a inkrementálny spôsob vývoja. Tento workflow prideľuje rôznym typom vetiev špecifické roly a definuje, ako a kedy by sa mali interagovať. Základnom tohto modelu sú 2 hlavné vetvy; master a development: Master vetva obsahuje tzv. produkčný kód, čo znamená kód, ktorý spĺňa definition of done a je vhodný na použitie zákazníkmi. Táto vetva obsahuje históriu oficiálnych release-ov. V krajných prípadoch môžu byť vetvy vytvorené z master vetvy, ako napríklad hotfix. Development vetva je kópiou master vetvy a reprezentuje tzv staging prostredie. Pri implementácií nových features (komponentov?) sa nové vetvy vytvárajú z development vetvy a následne sa do nej použitím pull requestov mergenú. Každá nová feature je implementovaná v rámci vlastnej vetvy a nemala by sa vôbec priamo dotýkať master vetvy. Vytváranie vetiev pri vytváraní novej vetvy vychádzame z vetvy development a novú vetvu nazývame feature/cislotasku-cely-nazov-tasku, napr. pre task #435285 Urobenie drobnej metodiky ako to budeme používať (https://app.scrumdesk.com/#/projects/23929/work/435285-task) by bol názov vetvy feature/435285-urobenie-drobnej-metodiky-ako-to-budeme-pouzivat git checkout -b feature/cislotasku-cely-nazov-tasku development Commit message - každý commit by mal obsahovať deskriptívnu správu v angličtine, pomocou ktorej sa v prípade potreby bude dať jednoducho identifikovať zmeny, ktoré daný commit obsahuje. Priklady: Add test Add nazov_metody Refactor Fix bug (popis / metoda) git commit -m "Your message"

Pull / Merge request je vytvorený po commitnutí všetkých zmien, ktoré boli v rámci daného tasku / danej vetvy vykonané. Vytvárajú priestor na code review, teda v rámci jedného pull requestu sa diskutujú detaily nového kódu a implementujú prípadné zmeny, ktoré z diskusie vyšli. Taktiež je možné PR využiť v prípade, keď sa programátor zasekne a potrebuje poradiť od iného programátora. git merge branch_name development - prehľadnejšie cez browser Hotfix typ prakticky iba názov, resp. prefix vetvy, ktorý sa používa v prípade, keď sa v produkcii, resp. master vetve vyskytne bug, ktorý treba okamžite opraviť. Hotfix vetvy sa vytvárajú z master vetvy a hneď ako sa chyba opraví, merge-ne sa do master aj development vetiev. Výhodou týchto vetiev je, že na opravenie chyby nie je nutné čakať na nasledovný release. Staging prostredie nám umožňuje otestovať kód v prostredí, ktoré je rovnaké, prípadne veľmi podobné ako produkčné, čím vieme udržať produkčné prostredie stabilné a odolnejšie voči bugom. Definition of done code review dokument o review napr. neefektíny alg., zlá štruktúra kódu primerané pokrytie testami (unit testy) implementačné stories nasadené product owner schváli posunie sa do done 1234 4.2 Metodika ku scrumdesku Tagy 1 https://www.atlassian.com/git/tutorials/comparing-workflows 2 http://nvie.com/posts/a-successful-git-branching-model/ 3 https://datasift.github.io/gitflow/introducinggitflow.html 4 https://blog.axosoft.com/gitflow/

Pri práci so scrumdeskom používame tagy na lepšie odlíšenie stories. Tagy sa dajú kombinovať. Použité tagy sú nasledujúce: infrastructure stories, ktoré sa týkajú práce s našimi nástrojmi a infraštruktúrou (príklad. github nastavenie, scrumdesk) csv tag na označenie všetkých stories, ktoré sa týkajú práce s csv súbormi excel rovnako ako pri csv uxtest všetko čo sa týka testovania a navrhovania používateľského rozhrania neural network práce na neurónovej sieti login zahŕňa všetko okolo autentifikácie používateľa vrátane registrácie a zabudnutého hesla search všetko čo súvisí s vyhľadávačom v našej aplikácii (FE aj BE) upload všetko ohľadom nahratia súboru do našej aplikácie a prenosu súboru do úložiska (bez spracovania) wireframe wireframy frontend všetko s čím príde do kontaktu používateľ (najmä UI, veci okolo Angularu) backend spracovanie nahratého súboru, odoslanie dát na FE, ukladanie dát Tagy frontend a backend sú dosť obsiahle, preto je vhodné ich kombinovať s inými (napr. login, backend = môže znamenať, že chcem riešiť overenie používateľa na serveri a je jasné, že to nebude nič s UI) V Scrumdesku sa dá v časti backlog->filter->tag Cloud vyhľadávať podľa tagov, avšak nejde zaškrtnúť viac tagov naraz. Obrázok 5: Tagcloud

Ak pridáte nový tag, doplňte ho do dokumentácie a informujte ostatných na slacku, ak môžete používajte už existujúce. Obrázok 6: Pridávanie tagov do stories Označovanie stories farbami Pri výbere každej stories, ktorá je zaradená do určiteho šprintu, pridelíme farbu. Farby nie sú jasne dané, tzn že sa môže jednať o hociktorú farbu, ktorá ešte nebola použítá alebo bola použitá už dávno. Tým dokážeme v scrumdesku efektívne rozlišovať šprinty podľa farieb. Práca počas šprintov v Scrumdesku Počas každého šprintu je potrebné rozdeliť tasky. Tieto tasky môžu mať 5 stavov a prideľujú sa do nich nasledovne: to do task ešte nie je začatý in progress na tasku sa začalo pracovať, ale nie je dokončený for review task čaká na zrevidovanie, tu by už mal byť task otestovaný a task by mal byť čo najlepšie vypracovaný podľa schopnosti jednotlivca awaiting approval task je zrevidovaný a čaká na schválenie product ownerom done task schválený product ownerom Revidovanie v Scrumdesku

Na revidovanie v scrumdesku používame field, ktorý sa nachádza v každom tasku s názvom revidoval. Tento field sme si vytvorili pre vlastné potreby a jednoduhšie používanie scrumdesku. Do políčka revidoval si človek, ktorý robí review napíše meno a ďalej napíše výsledok revízie. Obrázok 7: Príklad revidovania 4.3 Metodika k rozbehaniu technológií 4.3.1 Rozbehanie frontendu Inštalácia NODEJS Windows: Odinštalovať starú verziu NodeJS a nainštalovať Verziu aspoň 8.6 stiahnuť najnovší nodejs zo stránky https://nodejs.org/en/ nainštalovať nodejs otvoriť terminál zadať npm install -g @angular/cli Linux / Mac OS X: spustiť curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh bash alebo wget -qo- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh bash napísať export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh"] &&. "$NVM_DIR/nvm.sh" # This loads nvm zadať nvm install node Inštalácia GIT Windows:

stiahnuť najnovšiu verziu git clienta zo stránky https://git-scm.com/downloads nainštalovať git clienta otvoriť terminál dostať sa do pracovného priečinka stiahnuť repozitár git clone git@code.xit.camp:upvii/dataset-importer/importer-web.git Linux / Mac OS X: zadať sudo apt-get install git dostať sa do pracovného priečinka stiahnuť repozitár git clone git@code.xit.camp:upvii/dataset-importer/importer-web.git Inštalácia lokalizačnej knižnice zadať npm install ng2-translate --save do app module importovať import {TranslateModule} from 'ng2-translate'; do app modulu pridať export export function createtranslateloader(http: Http) { } return new TranslateStaticLoader(http, './assets/i18n', '.json'); do app modulu pridať import TranslateModule.forRoot({ provide: TranslateLoader, usefactory: (createtranslateloader), deps: [Http] }) do app componentu importovať import {TranslateService} from 'ng2-translate'; do app componentu pridať konštruktor constructor(translate: TranslateService) { translate.setdefaultlang('sk'); translate.use('sk');

} definovanie suboru assets/i18n/sk.json { "home": { "hello": "Ahoj {{value}}" } } použite: <div>{{ 'home.hello' translate:{value: "World"} }}</div> Práca sa projektom Windows a Linux: dostať sa do nášho projektu zbuildovať náš projekt npm install spustiť vývojový server npm start otvoriť v prehliadači localhost na porte kde nám beží server(štandardne 4200) pre spustenie testov napíšeme npm test 4.3.2 Rozbehanie backendu Vývoj Pre vývoj je potrebný predpoklad mať stiahnutý maven, aby bolo možné zbuildovať projekt. Najskôr je nutné buď v príkazovom riadku napísať mvn clean install alebo to zadať priamo vo vývojovom prostredí. Ak budete mať stiahnutú EE verziu eclipse tak to funguje takto: klikneme na rozklikavaciu šípku pri zelenom tlačítku "play" hore v lište, následne klikneme na run configurations a tam vyberieme maven build, tam potom vyberieme cestu k projektu a do goals napiseme mvn clean install mvn clean install je potrebné spustiť vždy keď je potrebné nové buildovanie Odporúčané vývojové prostredie je Eclipse. Po spustení počúva projekt na localhost:8080 Rozdelenie a popis súborov

dockerfile - súbor pomocou ktorého sa vytvára dockerimage, presná konfigurácia dockerimage pom.xml - základný konfiguračný súbor mavenu. Maven je dependency manager - vždy ked bude niekto implementovať novú knižnicu, tak len cez maven target - priečinok, ktorý sa vytvorí po zbuildovaní, všetko potrebné na spustenie aplikácie debug.log - tu sa bude ukladať logovanie src - tu sú uložené zdrojové kódy, zdroje a aj zdrojové kódy testovania. Zároveň tu je aj konfigurák k loggeru. Docker Na vytvorenie docker image je potrebné mať nainštalovaný docker a maven vo svojom stroji. Na zbuildovanie projektu a vytvorenie obrazu je nutné zadať príkaz: mvn clean install -Pdocker. Na konci je nutné aby bolo napísané build succes. Ak chceme docker image pushnúť do centrálneho repozitára zadáme príkaz mvn clean deploy - Pdocker. Na spustenie obrazu je potrebné zadať príkaz: docker run -p 8080:8080 service. Následne bude projekt počúvať na localhost:8080 Je rozbehaný: Maven, Spring, logovanie a naimportovaný JUnit na testovanie 4.4 Metodika k deploymentu V prvom kroku je nutné vytvoriť si SSH kľuč. Potom si verejný kľúč skopírujeme do cloudu a následne môžeme pracovať s docker compose. Vytvorenie SSH kľúčov a následné pridanie verejného kľúča je na wiki: https://code.xit.camp/upvii/dataset-importer/docs/wikis/vytvaranie-cloudu-a-zadavanie-sshklucov https://code.xit.camp/upvii/dataset-importer/docs/wikis/vytvaranie-ssh-klucov Celý projekt je prepojený pomocou CI a pomocou docker compose. Po pripojenie na SSH server je potrebné spraviť nasledovné kroky: Náš projekt sa na serveri nachádza na adrese /home/importer

Pre spustenie docker composu je nutné zadať príkaz sudo `which docker-compose` up d. Tu sa vykoná pull z docker.xit.camp, kde mame uložené všetky docker images, ktoré sú už zbuildované a pripravené na pull. Docker compose zároveň spustí 3 obrazy súčasne. Prvý je frontend a ďalší je backend a tretí elasticsearch. sudo `which docker-compose` down vypne všetky docker-image. Pre odpojenie docker images bez pullovania je nutné zadať sudo `which docker-compose` stop Spúštanie docker-compose je nakonfigurované v súbore docker-compose.yml a jeho obsah je: version: '3' services: elastic: image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3 ports: - "9200:9200" - "9300:9300" web: image: docker.xit.camp/upvii/dataset-importer/web:0.0.1 ports: - "80:80" service: image: docker.xit.camp/upvii/dataset-importer/importer-services ports: - "8080:8080" Pre tunelovanie je potrebné zadať takýto príkaz: sudo ssh -i <cesta k privatnemu klucu> <meno>@104.199.83.28 -L9300:localhost:9300 - L9200:localhost:9200 -L80:localhost:80 -L8080:localhost:8080 V prípade problému odpájania elastic docker image je potrebné zadať do cloudovskej konzoly príkaz - sysctl -w vm.max_map_count=262144

Prípade nutnosti môžu pomôcť aj tieto príkazy k dockeru: sudo docker rm $(sudo docker ps -aq) - zmazanie všetkých kontajnerov docker ps -a - zobrazí všetky kontajnere docker images -a - vsetky obrazy docker rmi <id obrazu> - vymaže image docker rm <id kontajnera> - vymaže kontajner docker stop <id kontajnera> - zastaví kontajner sudo docker rmi -f $(sudo docker images -aq) -zmazanie všetkých obrazov docker info - informacie o dockeri 4.5 Metodika k správnemu zapisovaniu chybových hlášok V našom projekte sme si definovali tieto chybové hlášky, ktoré budeme používať v projekte: DB DBCONECTION_NOTCONNECTED -Nepodarilo sa pripojiť k databáze DBCONECTION_CLIENT_NOTBUILD -Pri vytváraní klienta môžu nastať chyby spojené so zlou verziou klienta, nesprávnym nastavením alebo pri nesprávnej inicializácii DBCONECTION_RESPONSE_ISNULL - Ak neprichádzajú odpovede po dopyte FILE FILE_NOTFOUND nesprávna (neexistujúca) cesta k súboru FILE_FORMATEXCEPTION nepodporovaný formát súboru FILE_ISEMPTY žiadny obsah súboru HTTP HTTP_NOCONTENT - server nemá čo poslať ako odpoveď (ale splnil požiadavku) HTTP_BADREQUEST - požiadavka, ktorá nebola správne vytvorená alebo nespĺňa určité pravidlá HTTP_UNAUTHORIZED - ak nejaká žiadosť požaduje autentifikáciu HTTP_FORBIDDEN - server odmieta vykonať požiadavku, aj keď ju môže vykonať HTTP_NOTFOUND - server nenašiel to, čo bolo požadované HTTP_REQUESTTIMEOUT - ak bolo spojenie nečinné, server ho chce vypnúť aj bez požiadavky

HTTP_NOTACCEPTABLE - odpoveď nespĺňa požiadavky, nedá sa zobraziť(accept-charset, Accept- Language) HTTP_METHODNOTALLOWED - metóda je síce definovaná na serveri ale nesmie byť použítá, nemalo by platiť pre metódy GET, HEAD HTTP_CONFLICT - požiadavka ešte nemôže byť splnená, pretože stav cieľového zdroja ešte nie je kompletný HTTP_URITOOLONG - server nie je schopný interpretovať takto dlhú URI HTTP_UNSUPORTEDTYPE - server nedokáže spracovať daný súbor, lebo má nepodporovaný formát HTTP_EXPECTATIONFAILED - nemožno splniť požiadavku HTTP_INTERVALSERVERERROR - prerušenie vykonávania požiadavky kvôli nesplneniu neočakávanej podmienky HTTP_NOTIMPLEMENTED - metóda požiadavky, ktorú sa snaží server vykonať nie je naimplementovaná HTTP_GATEWAYTIMEOUT - pokiaľ server pôsobí ako brána alebo proxy a nedokáže vykonať požiadavku v čase HTTP_VERSIONNOTSUPORTED - nie je podporovaná verzia HTTP, ktorá je použitá v požiadavke LOGIN LOGIN_WRONG_PASSWORD - nesprávne použité heslo pri prihlasovaní LOGIN_WRONG_USERNAME - neexistujúce používateľské meno v systéme OSTATNÉ MAIN_CLASSNOTFOUND - chýba trieda, súbor, ktoré by obsahovali main metódu MAIN_METHODNOTFOUND - chýba metóda, ktorá sa má vykonať MEMORY_OUTOFMEMORY - pri priraďovaní pamäte objektu, alebo pri načítavaní triedy MEMORY_STACKOVERFLOW - nie je možnosť vymedzenia ďalšej pamäte pri vykonávaní metódy SERVER_NOTRESPONDING - pri posielaní požiadavky na spracovanie server nemusí odpovedať

SERVER_CONNECTIONLOSS - pri komunikácii so serverom môže nastať stav, kedy sa pripojenie zrušilo SYSTEM_TIMEOUT - ak vykonávanie metódy presiahne povolený čas (zacyklenie) SYSTEM_ERROR - generická chybová hláška, ktorá môže byť použitá, ak chyba nezodpovedá ani jednej z uvedených chybových hlášok VARIABLE_WRONG_ASSIGN - nie je možné priradiť hodnotu premennej iného typu VARIABLE_WRONG_PARAMETER - generická chyba pre premenné VARIABLE_TYPEMISMATCH - pri konvertovaní môže nastať chyba, že hodnota premennej nespĺňa pravidlá pre nový typ premennej VARIABLE_INCONVERTIBLETYPE - nie je možné konvertovať určitý typ premennej na iný typ (napr. Boolean na int) VARIABLE_NULLPOINTEREXCEPTION - snažíme sa požadovať objekt, avšak návratová hodnota je null (volanie inštancie metódy, volanie dĺžky premennej, ako keby bola pole) VARIABLE_INDEXOUTOFRANGE - ak sa odkazujeme na index premennej, ktorý nie je definovaný VARIABLE_FORMATEXCEPTION - nepodporovaný formát premennej Použitie: Pre lepšiu orientáciu v chybových hláškach sme sa rozhodli implementovať chybové hlášky ako enum type. Každá chybová hláška bude uložená ako text, resp. slová oddelené bodkami. Takáto reprezentácia bude slúžiť ako kľúč, pod ktorým si na frontende v slovníku dokážeme vytiahnuť zodpovedajúci text. Na backende naopak bude intuitívnejšie použitie chybových hlášok pomocou textu, ako čísiel, keďže z textu sa dá vyčítať o aký okruh ide. Použitie je nasledovné: login.wrong.password login - hlavný okruh prihlasovanie používateľa wrong - používateľ zadal nesprávny údaj password - nesprávne heslo

5. Globálna retrospektíva

6. Motivačný dokument 6.1 Predstavenie tímu Sme mladý tím, ktorý sa zaujíma o informačné technológie a študuje na Fakulte informatiky a informačných technológií STU. Skladáme sa zo siedmych členov, ktorých si v tejto časti bližšie predstavíme. Všetci sme absolventi bakalárskeho štúdia na FIIT v odbore Informatika. Poznáme sa už niekoľko rokov a často sa aj stretávame v rámci voľného času pri pivku alebo spoločenských hrách. Celkovo ako tím ovládame slušné množstvo technológií a pár z nich aj spomenieme - Python, Java - viaceré frameworky (Hibernate, Spring), Flask, viacero frameworkov z JavaScriptu, SQL, niektoré NOSQL databázy ako je ElasticSearch alebo Redis, C, C#, C++, a niektoré frameworky PHP. Mnohí z nás radi pracujú na machine learningu. Spolu sa zúčastňujeme na viacerých školských konferenciách ako je napríklad - PYCON, Openslava a Night of Chances. Radi si plníme svoje povinnosti načas a len tak sa svojej práce nevzdávame. Baví nás programovanie, ale nie len to, bavia nás aj veci spojené s vývojom softvéru. Radi sa učíme nové veci a máme radi výzvy (keby sme ich nemali radi, neboli by sme na FIIT). Zaujímame sa o nové technológie a radi vyhľadávame novinky zo sveta IT. Na začiatku našej spolupráce na tímovom projekte sme si vytvorili tabuľku v Exceli, kde si každý obodoval jeho 12. preferovaných tém a na základe bodov, ktoré sa spočítali sme dosiahli náš spoločný zoznam preferovaných tém. Nakoniec sme všetko prekonzultovali pomocou spoločného konferenčného hovoru. Celkovo sa každý z nás tešíme na túto výzvu, ktorá nás čaká v nasledujúcich dvoch semestroch, ale aj celkovo počas inžinierskeho štúdia. 6.2 Motivácia pre každú z tém: 6.2.1 1. preferovaná téma - Inteligentný bazár [IBazar] Prečo chceme túto tému? V súčasnosti keď už drvivá väčšina ľudí nakupuje veci cez internet a väčšina kamenných predajní zažíva ťažké časy, sa naskytuje otázka prečo nie je také ľahké ako nakupovanie cez internet aj predávanie vecí cez internet. Existuje množstvo skupín na sociálnych sieťach, ktoré umožňujú používateľom ponúkať rôznorodý tovar, no väčšinou sa jedná o ťažko filtrovateľné a ľahko zabudnuteľné ponuky. V takých skupinách je veľmi ťažké vyhľadať staršie ponuky iným spôsobom ako pomocou náhodných kľúčových slov umiestených v ponuke. Samozrejme existujú aj webové stránky ktoré sa špecializujú na

ponúkanie tovaru a následné vyhľadávanie požadovaných ponúk podla základných parametrov ako napríklad typ tovaru, miesto ponuky poprípade cena. Väčšinu ľudí odrádza povinná registrácia, vypĺňanie komplikovaných formulárov a takisto minimálna podpora komunikácie predávajúceho a budúceho kupca. A práve preto nás táto téma zaujala a myslíme si, že je veľmi reálna možnosť vytvoriť aplikáciu, ktorá bude hromadne využívaná, a umožní používateľom veľmi rýchlo a jednoducho ponúknuť nepotrebný tovar ľudom, ktorý by mali o neho záujem. Ďalším dôvodom je náš záujem o mikroslužby, ktoré sú v súčasnosti veľmi populárne a predstavujú pre nás obrovskú výzvu ktorú by sme radi pokorili. Čo vieme poskytnúť v súvislosti s touto témou? Ako skupina mladých ľudí sa vieme vcítiť do kože používateľov a vieme čo náročný používateľ požaduje od modernej webovej aplikácie, poskytujúcej možnosť ponúknuť použité veci a naopak vieme, čo ľudí najčastejšie odrádza a demotivuje v používaní takejto aplikácie. Po technickej stránke by sme ako prvé spomenuli, že všetci sme študovali bakalársky stupeň na jednej z najťažších škôl na Slovensku. Väčšina z nás počas tohoto obdobia popri škole aj pracovala v IT firmách, kde si zdokonaľovala svoje školské skúsenosti a takisto aj získala mnohé ďalšie. Medzi frontendové technológie musíme spomenúť javascript s frameworkami AngularJS, Angular2(či 4), ReactJS alebo VueJS. Pri tvorbe samotnej aplikácie by sme mohli rozmýšľať nad rôznymi jazykmi, no podla skúsenosti by to mohla byť Java s populárnym frameworkom Springom alebo Python(Flask, Django), NodeJS(express) či PHP(Nette, Codeigniter). 6.2.2 2. preferovaná téma - Importér verejných datasetov [PubDatasets] Prečo chceme túto tému? Veľa projektov, na ktorých pracujeme počas štúdia, nie sú reálne využívané v praxi. Práve preto máme záujem o tento projekt, kde je možné zlepšiť naše doterajšie skúsenosti na reálnom projekte, ktorý bude v prípade úspešného konca aj nasadený. Zároveň máme chuť zlepšiť kvalitu štátnych projektov a pomôcť ľudom, ktorí budú tento softvér využívať. Samozrejme sa dozvieme niečo nové o sémantike, ktorá sa čoraz viac využíva v informačných technológiach. Aj keď zatiaľ nemáme so sémantickým spracovaním dát skúsenosti, radi do tejto problematiky nazrieme. Polovica z nás už pracovala na strojovom učení a chceli by sme sa v tomto odbore zdokonaľovať. Čo vieme poskytnúť v súvislosti s touto témou? Každý z nás vie niečo, čo by mohlo byť pre tému prospešné. Väčšina z nás už pracovala s Javou a práca s GIT-hubom sa u nás často vyskytuje. Jeden z tímu pracoval aj s frameworkom VueJS a aj

ostatní pracovali s Javascriptom, takže naučiť sa nový framework by mal byť len otázkou pár týždňov. Viacerí z nás sa stretli aj so strojovým učením, či už pri bakalárskej práci alebo z vlastnej zvedavosti. Absolvovali sme aj predmet v ktorom sme sa venovali UX dizajnu. Niektoré veci, ktoré boli opísané v zadaní, napr. firma a spoločnosť, by bolo možné sémanticky určiť pomocou synonymického slovníka, pomocou ktorého by bolo možné prepojenie. Samozrejme by bolo týchto nápadov viac po podrobnejšom oboznámení sa s problematikou. 6.2.3 3. preferovaná téma - Group de'cider [Group] Prečo chceme túto tému? Už pri organizovaní našej skupiny na tímový projekt sme si vyskúšali, aký problém je zladiť viacerých ľudí a dohodnúť sa na spoločnom termíne. Dohode na finálnom termíne zvyčajne predchádza Skype telefonát, anketa v skupine a prípadne Doodle kalendár, preto si hovoríme, nebolo by lepšie toto všetko spojiť a navyše spraviť takýto nástroj,,rozumný? Čo ak by plánovač prihliadal na to, koho prítomnosť je nevyhnutná alebo kto je len do počtu a nie je kľúčový pre tému stretnutia. Alebo poznal viacero druhov stretnutí, pričom napríklad pri doučovaní by dokázal navrhnúť rozdelenie do viacerých skupín podľa času doučovateľa a možností účastníkov. Čo vieme poskytnúť v súvislosti s touto témou? Členovia nášho tímu sú fanúšikovia jazyku python, väčšina z nás sa zúčastňuje konferencie pycon a nejaké projekty v pythone už máme za sebou. Ostatní máme radi výzvy a radi sa niečo nové naučíme. Rozdelenie úloh na tasky a verziovanie zdrojového kódu je pre nás samozrejmosťou. Jeden tím sme aj mimo školy takže poznáme svoje silné a slabé stránky a vieme sa navzájom podporiť.

6.3 Príloha A Zoradenie všetkých tém podľa priority 1. Inteligentný bazár [IBazar] 2. Importér verejných datasetov [PubDatasets] 3. Group de'cider [Group] 4. Pohlcujúci Web [iweb] 5. Vzdelávanie vo Virtuálnej realite [EduVirtual] 6. Behaviorálna biometria na mobilných zariadeniach [Behametrics] 7. Inteligentné parkovanie [SmartParking] 8. Podpora diagnostiky [Look-Inside-Me] 9. Databanka otázok a úloh [FIIT-DU] 10. Odporúčanie pre e-biznis (Recommendation for ecommerce) [recommers] 11. Artificial Intelligence: Voice Channel [VirtualAsist] 12. Kolaboratívne prototypovanie používateľských rozhraní [Collab-UI] 13. Vnorený systém monitorovania osôb [Breyslet 2.0] 14. Monitorovanie a vyhodnocovanie fyziologických procesov človeka [StresMonitor] 15. Analýza správania sa používateľa v mobilných aplikáciách [Mob-UX] 16. Otvorené zmluvy: Budovanie prepojení vo verejných dátach [Zmluvy] 17. DeepSearch, alebo nájdeme to, čo práve potrebujete [DeepSearch] 18. Vizualizácia informácií v rozšírenej realite [VizReal] 19. Investment Portal [Invest] 20. Internet vecí v našich životoch [IoT] 21. 3D UML, optimized version [3D-UML] 22. Softvérovo definované siete pre budúci Internet [SDN4FutI] 23. Rozpoznávanie cloudových služieb [OntoSEC] 24. 3D simulovaný robotický futbal [3D futbal] 25. Softvérovo riadené siete rozšírené o WiFi štandard [SDWN] 26. Návrh systému MOD [Future MOD]

6.4 Príloha B Rozvrh tímu 8.00-9.00 9.00-10.0 0 10.00-11.00 11.00-12.00 12.00-13.00 13.00-14.00 14.00-15.00 15.00-16.00 16.00-17.00 17.00-18.00 18.00-19.00 19.00-20.00 20.00-21.00 P O U T VIIS TP ST ZKGRA ASS MTS MTS VINF ŠT ASS VINF ZKGRA ASS PI ASS Prednášky ASS - Architektúra softvérových systémov Cvičeni a MTS - Manažment v tvorbe systému čas na tímový projekt TP - Tímový preferovaný čas na tímový projekt projekt VIIS - Výskum inteligentných softvérových systémov VINF - Vyhľadávanie informácií ZKGRA - Základy kryptografie Tabuľka 2: Rozvrh tímu Mailový kontakt na tím: timovy-projekt-14@googlegroups.com

7. Zápisnice 7.1 Zápisnica zo stretnutia č.1 Téma stretnutia: Zoznámenie členov tímu a ozrejmenie zadania projektu Dátum: 27.9.2017 Čas: 8:00 11:00 Miestnosť: FIIT STU, 4.26 Prítomní: Ing. Jakub Šimko, PhD. Ing. Marek Šurek Bc. Belaj Lukáš Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Hrutka Michal Bc. Šlesariková Tatiana Priebeh stretnutia: - Jednotliví členovia tímu sa stručne predstavili. - Jakub nás oboznámil so SCRUMOM, dostali sme za úlohu nainštalovať si aplikáciu na planning do mobilu. - Marek a Jakub nám priblížili tému zadania. - Vznikol nám prvý náčrt architektúry zadania. - Diskutovali sme, aké využívať technológie na vývoj systému: Java/Python ElasticSearch Angular/VueJS JUnit, Docker TODO do ďalšieho týždňa: 1. Definovať prvú verziu user stories zoznam funkcií, ktoré bude tetuška vykonávať, načrtnúť grafické rozhranie. 2. Rozbehať Scrumdesk a prihlásiť sa do GitLabu.

3. Preskúmať stránky data.gov.sk a data.gov.uk. 4. Pozrieť si centrálny model. 5. Pridať vedúcich do slacku, Scrumdesku a GitLabu. 6. Pracovať na stránke tímu. 7.2 Zápisnica zo stretnutia č.2 Téma stretnutia: Zoznámenie členov tímu a ozrejmenie zadania projektu Dátum: 4.10.2017 Čas: 8:00 11:00 Miestnosť: FIIT STU, 4.26 Prítomní: Ing. Jakub Šimko, PhD. Ing. Marek Šurek Bc. Belaj Lukáš Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Hrutka Michal Bc. Šlesariková Tatiana Priebeh stretnutia: - Na začiatku sme si dali kolečko, každý z nás zhrnul čo spravil za posledný týždeň a koľko úsilia na to vynaložil. Ako prvý SCRUM master bol zvolený Matúš. - Zadefinovali sme si svoje definition of done pre implementačné aj pre neimplementačné úlohy. - V ďalšej časti stretnutia nasledovalo plánovanie sprintu : Určili sme názov prvého sprintu AUDI. - Upravili sme backlog s úlohami, ktoré sme postupne rozobrali, prediskutovali a opísali. - Zvolili sme referenčnú úlohu (user stories) a hlasovali o jej náročnosti. - Následne sme hlasovali o náročnosti jednotlivých úloh. Ak sa vyskytli nejasnosti, diskutovali sme a doplnili popis úlohy.

TODO do ďalšieho týždňa: 1. Rozdeliť úlohy (user stories) na menšie časti (tasky) a poprideľovať ich jednotlivým členom tímu. 2. Pracovať na pridelených taskoch 7.3 Zápisnica zo stretnutia č.3 Dátum: 11.10.2017 Čas: 8:00 11:00 Miestnosť: FIIT STU, 4.26 Prítomní: Ing. Jakub Šimko, PhD. Ing. Marek Šurek Bc. Belaj Lukáš Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Hrutka Michal Bc. Šlesariková Tatiana Priebeh stretnutia: - Jakub nás oboznámil ako robiť vnútrošprintové stretnutie - Opäť sme si dali kolečko, každý z nás zhrnul čo spravil za posledný týždeň, koľko úsilia na to vynaložil a problémy, ak nejaké vznikli. - Po našom zhodnotení prevzal vedenie náš scrum master Matúš. - Pozreli sme, či sa už nejaký task nachádza v stave awaiting approval -> Priradiť tagy pre stories Lukáš vysvetlil metodiku ako pridelovať tagy potom sme task presunuli do stavu DONE.

- Každý z nás povedal o čom by chcel na stretnutí ešte diskutovať, prípadne ukázať výsledky svojej práce a následne sme si to predviedli a diskutovali o tom. Jednou z diskutovaných tém bol prototyp obrazoviek, pri ktorom vzniklo mnoho cenných poznámok. - Na záver stretnutia sme pozreli a zhodnotili, aké úlohy nás ešte do konca šprintu Audi čakajú. TODO do ďalšieho týždňa: 1. Pracovať naďalej na pridelených taskoch. 2. Zapracovať pripomienky, ktoré vznikli na našom stretnutí. 7.4 Zápisnica zo stretnutia č.4 Dátum: 18.10.2017 Čas: 8:00 11:00 Miestnosť: FIIT STU, 4.26 Prítomní: Ing. Jakub Šimko, PhD. Ing. Marek Šurek Bc. Belaj Lukáš Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Hrutka Michal Bc. Šlesariková Tatiana Priebeh stretnutia: - Nazačiatku sme si povedali, čo nás na dnešnom stretnutí čaká: o update, klasické rýchle kolečko o uzatvorenie prvého šprintu o otvorenie nového šprintu - Spravili sme RETROSPEKTÍVU úspešný šprint - Po retrospektíve sme definitívne ukončili náš prvý šprint AUDI - Následne sme založili druhý šprint, ktorý dostal názov BUGATTI

7.5 Zápisnica zo stretnutia č.5 Dátum: 25.10.2017 Čas: 8:00 11:00 Miestnosť: FIIT STU, 4.26 Prítomní: Ing. Jakub Šimko, PhD. Bc. Belaj Lukáš Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Hrutka Michal Bc. Šlesariková Tatiana Priebeh stretnutia: Nazačiatku stretnutia sme prešli naše tradičné kolečko, zhrnuli sme, čo sme spravili za posledný týždeň, problémy, ktoré nastali. Témy na diskusiu: tool na dokumentovanie API dohodli sme sa, že vyskúšame Postman interaktívny onboarding rôzne formy, treba si pozrieť existujúce riešenia next, take a tou, video chybové hlášky treba mať nachystanú infraštruktúru na zobrazovanie hlášok (chyby technické/chyby pre usera), štruktúra chýb by mohla byť reprezentovaná v JSONe zobrazovanie RDF Ďalej sme rozoberali, či budeme pri odporúčaní možností výberu atribútu zobrazovať pri jednotlivých itemoch percentá, alebo ich budeme len zoraďovať => v testovacej verzii budeme aj zobrazovať. TODO do ďalšieho týždňa: Zapracovať pripomienky, ktoré vznikli na našom stretnutí. Pracovať naďalej na pridelených taskoch.

7.6 Zápisnica zo stretnutia č.6 Téma stretnutia: Uzavretie šprintu, retrospektíva a otvorenie nového šprintu Dátum: 2.11.2017 Čas: 8:00-11:30 Miestnosť: FIIT STU, 4.26 Prítomní: Ing. Jakub Šimko Bc. Belaj Lukáš Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Hrutka Michal Bc. Šlesariková Tatiana Neprítomní: Ing. Marek Šurek Priebeh stretnutia: - Na začiatku sme si povedali, čo nás na dnešnom stretnutí čaká: Update, klasické rýchle kolečko Uzatvorenie druhého šprintu Otvorenie tretieho šprintu - Spravili sme retrospektívu - neúspešný šprint 7.7 Zápisnica zo stretnutia č.7 Dátum: 8.11.2017 Čas: 8:00 11:00 Miestnosť: FIIT STU, 4.26 Prítomní: Ing. Jakub Šimko, PhD. Bc. Belaj Lukáš

Neprítomní: Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Hrutka Michal Bc. Šlesariková Tatiana Ing. Marek Šurek Priebeh stretnutia: - Na začiatku stretnutia sme prešli naše tradičné kolečko, zhrnuli sme, čo sme spravili za posledný týždeň, problémy, ktoré nastali. - Témy na diskusiu: Vymyslieť doménu. Prejsť si indexovanie Miestnosť, utorok od 3 do 5 Pozrieť si dataset -> Miso Dokumentácia na odovzdanie Pozrieť postmana - Rozoberali sme párové programovanie. - Stop slová je potrebné odstrániť z analyzátora. Databáza bude primárne v sk, netreba zvlášť dávať en. - Search najskôr nad názvami, synonyma. Potom zistiť úspešnosť. Heslo nemusí byť v elasticu -> zrusiť autentifikáciu heslom. - Pozerali sme Mišovu dokumentáciu k Postmanovi. - Preberali sme dokumentáciu. Môžeme odovzdať do piatku. - Zadefinovali sme nový user stories. TODO do ďalšieho týždňa: pracovať na dokumentácii pracovať na zadefinovaných user stories

7.8 Zápisnica zo stretnutia č.8 Dátum: 15.11.2017 Čas: 8:00 11:00 Miestnosť: FIIT STU, 4.26 Prítomní: Ing. Jakub Šimko, PhD. Ing. Marek Šurek Bc. Belaj Lukáš Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Hrutka Michal Bc. Šlesariková Tatiana Priebeh stretnutia: - Na začiatku stretnutia sme prešli naše tradičné kolečko, zhrnuli sme, čo sme spravili za posledný týždeň, problémy, ktoré nastali. - Témy na diskusiu: Problémy s cloudom, a prepojením s elasticsearch Zobrazované chybové hlášky pre používateľa Robustnejšie určenie atribútu Čo zaradiť do nového šprintu Retrospektíva k predošlému - Problémy s cloudom spôsobili nemožnosť nasadiť naše riešenie a tým pádom nebolo možné prezentovať naše pokroky (na potreby ukážky sme použili localhost), avšak viaceré úlohy nemohli byť akceptované ako hotové - Diskutovali sme či je potrebné aby bola aplikačná vrstva a elasticsearch v separátnom kontajnery v cloude, pretože podľa doterajšej analýzy je problém v tom, že medzi sebou prestali komunikovať - Prezreli sme si na localhoste aktuálnu verziu aplikácie, odhalili sme miesto (edit tabuľka), kde sa nový dizajn neimplementoval a zozbierali pripomienky

- Nakoľko sme uzatvárali šprint, venovali sme sa aj retrospektíve, najviac kladnou vecou bolo párové programovanie, ktoré pomohlo viac vyrovnať sily a posunúť prácu ďalej (bolo navrhnuté aj párové nasadzovanie), pomohlo aj skoré rozdelenie taskov medzi členov tímu a operatívne pomáhanie tam kde sa nedarilo. - Negatívne bolo slabé opísanie taskov, príliš stručné návody, nedoriešené rozdeľovanie ľudí na code review a merge requesty - Následne sme zahájili nový šprint s predpripravenými stories, tie čo ešte neboli ohodnotené sme ohodnotili TODO do ďalšieho týždňa: Rozdeliť nové úlohy a začať na nich pracovať čo najskôr pracovať na zadefinovaných user stories opraviť cloud, komunikáciu s elasticsearch brzdí ostatné úlohy opraviť zobrazovanie chybových hlášok na FE vytvoriť testovací skript, ktorý otestuje odhady BE na názvy stĺpcov upraviť wireframe 7.9 Zápisnica zo stretnutia č.9 Dátum: 22.11.2017 Čas: 8:00 11:00 Miestnosť: FIIT STU, 4.26 Prítomní: Neprítomný: Ing. Jakub Šimko, PhD. Bc. Belaj Lukáš Bc. Božik Tomáš Bc. Brandajský Matúš Bc. Csollei Gabriel Bc. Fabušová Janka Bc. Šlesariková Tatiana Ing. Marek Šurek Bc. Hrutka Michal Priebeh stretnutia: