# Új user story logger modul Egy új modul fejlesztésére lenne szükségünk, amely az alábbiaknak megfelelően nézne ki: ## Feladat: Egy modulra lenne szükségünk, amely a látogatók munkafolyamatait loggolja. Erre azért van szükségünk, mert látni szeretnénk, hogy egy látogató mit csinál a weboldalon, tehát: - hogyan halad végig az egyes menüpontokon - milyen adatokat küld be az API felé - hova kattint az oldalon - mikor lép ki az oldalról (mondjuk simplepay fizetéskor) és mikor tér vissza (a fizetést követően). Közben milyen válaszokat kap a backend oldalról, illetve milyen adatokat küldd el a backend felé. Ezeket a felhasználói lépéseket illetve ezek láncolatát nevezzük user story-nak. Ez lényegében egy későbbi folyamatábrához kell majd. ## Megvalósítás A user story lépéseit külön-külön kell beküldeni az API-nak (ami még ugyan nincs kész, de a végpont neve az lesz, hogy "/userEvent"). A beküldendő adatok szerkezetét rádbízom, de ami biztosan kelleni fog azok az alábbiak: - A "uuid" ez a látogató egyedi azonosítója. - A "hotel" ez a szálloda ID-ja (ha ez megvan). - Az "orderID" (ha van ilyen adat). - "cart" object, ha ez is van. (Ezeket mint a localstorage-ből tudod kinyerni!) ## Elvárt működés 1. Bejön egy látogató a weboldalra: itt már beküldessz egy "Főoldal megnyitása" eseményt (user story item). 2. Például rákattint a "Hop-On" menüpontra: ez is egye user story item beküldéssel járó esemény. 3. Kiválaszt egy jegyet: itt is event generálódik. 4. Kosárba teszi: ez is event. 5. A megrendelési felületre lép: ez is event. 6. A fizetési gombbra kattin: ez is event és itt már egy komplett form kitöltésre kerül, így itt is minden adatot el kell küldeni. 7. A fizetési linkre történő kattintást követően a felhasználó átirányításra kerül a simplepay oldalára, ez is egy event lesz. 8. Fizetés után (akár sikeres, akár nem) visszairányításra kerül a weboldalunkra: ez is egy fontos event adatokkal. !!!FONTOS!!! Minden kattintást vagy ajax hívás (akár POST, akár GET) eventként kell kezelni és az alap adatokkal illetve az adott ponton képződött adatokkal együtt be kell küldeni az API végpontnak, hogy loggolja azokat. Az AJAX hívások válaszait vagy a kattintások utáni oldalbetöltődések megtörténtét is eseményként be kell küldeni. Így egyfajta szendvics hívások jönnek létre, például: 1. Gomb kattintás: esemény beküldés az alap adatokkal és ami még szükséges. 3. Ebből jön egy POST ajax hívás: beküldöm az eseményt az alap és a generálódott vagy user által megadott adatokkal. 2. Megjön a hívásra a válasz: újabb esemény, ami tartalmazza a szerver válaszát és az alap adatokat. Tehát a felhasználó bármilyen eseményt okoz az oldalon, azt be kell küldeni! Ami még fontos, hogy a simplepay_redirect-nél elveszítjük egy időre a user-t, viszont, amint visszatér, újra loggolni kell a dolgait. Amikor új "uuid"-t kap valamilyen okból, akkor ezt is követni kell! Ez talán a legnehezebb része, mivel az régi és az új "uuid" is kelleni fog. Talán a legegyszerűbb, ha erre is van egy event, ami logger enginnek leküldi az uuid változás tényét, amit a backend oldal már le tud kezelni. Első körben végezz egy tervezést a feladatra. Ha ezzel megvagy, egyeztessünk. Lépésről lépésre nézzük végig a tervet, hogy ahol kell korrigálni tudjunk! Bármilyen kérdésed van, tedd fel nekem! Közösen megnézzük, hogy megfelelő döntést hozhassunk. Ezt követően kezdődhet az implementációs szakasz, de erre külön kérdezz rá!