NFCtron zkrotí sebevětší akci a naservíruje data ceny zlata

(Microsoft TechNet) NFCtron je systém, který dokáže online analyzovat jakoukoli akci s mnoha návštěvníky. Využívá platformy Microsoft Azure.

Představte si akci, na které nejenže proudí davy spokojených návštěvníků, ale úsměv na rtech lze spatřit i v řadách organizátorů. Ještě aby ne. Po první hodině se podívali na real-time data a věděli, že už vydělali na zaplacení nájmu. Po druhé hodině zjistili, že se již dostali z červených čísel, a před koncem akce už mohli plánovat dovolenou. Třeba na Azurovém pobřeží. Proč právě tam? Systém NFCtron, který dokáže daleko víc než jen tyto zmíněné divy, totiž plně využívá výhod platformy Microsoft Azure.

Na počátku systému NFCtron byl problém. Vlastně hned několik problémů. Chtěli jsme uspořádat akci řádově pro tisícovky lidí, ale rozhodně jsme nehodlali trpět zdržování a fronty kvůli počítání útraty, vracení drobných a ťukání PINů platebních karet. Také jsme neměli v úmyslu vybírat od prodejců klasický poplatek za pronájem místa, ale výši poplatku jsme dohodli na určitých procentech z obratu. Jenže jak ho spolehlivě a co nejrychleji zjistit? A do třetice jsme toužili po tom, abychom se dostali k marketingově a ekonomicky zajímavým a užitečným datům.

S těmito třemi hlavními požadavky jsme se samozřejmě nejprve vrhli do zkoumání internetových vod. Neúspěšně. žádné řešení ani aplikace nám nemohly poskytnout přesně to, co jsme potřebovali. Vzali jsme to jako hozenou rukavici a rozhodli se stvořit vlastní systém.

Symfonie pro čipy a čtečky

Základem všeho se staly NFC čipy. Práci s touto technologií jsme už měli oťukanou z našeho dalšího projektu čerstvá sváča. Nicméně pro jednorázový event, který jsme připravovali, bylo potřeba vytvořit zbrusu nové řešení.

Naše představa byla taková, že po příchodu na akci dostane návštěvník NFC čip s unikátním ID. Na čip si v několika speciálních stanech s pokladnami nabije kredit platební kartou nebo za hotové. Veškeré platby na prodejních místech pak už probíhají pouhým přiložením čipu ke čtečce, která je přes USB připojena k dotykovým zařízením (např. tablet nebo konvertibilní notebook), na nichž běží aplikace v módu pro příjem objednávek. Po přiložení čipu obsluha jedním ťuknutím vybere objednané zboží a potvrdí prodej. K zařízením může být připojen navíc i monitor pro zákazníky, na němž se zobrazuje aktuální stav objednávky a dostupný kredit. Zákazníci tak mohou kontrolovat proces objednávky a také vidí, kolik kreditu jim na čipu ještě zbývá.

Hledají se optimální technologie

Zadání bylo tedy jasné. Co se týče technologické stránky, rozhodli jsme se aplikaci postavit na multiplatformním řešení Electron.js, což je framework, který umožňuje tvorbu nativních desktopových aplikací za pomoci webových technologií, JavaScriptu (Node.js), HTML a CSS. Pro vykreslování UI jsme použili React.js. Aplikace využívá Redux architekturu.

Jednou z nejtěžších věcí bylo zajistit komunikaci aplikace s připojenou čtečkou přes USB. Naštěstí tento problém vyřešila technologie Node Native Modules, která umožňuje přidat do aplikace C/C++ rozšíření, které může využívat nativní systémové knihovny pro komunikaci se čtečkou.

Díky tomuto řešení je aplikace multiplatformní a umožňuje sestavení pro všechny běžné desktopové operační systémy (Windows, Linux, OS X). V případě naší pilotní akce jsme se rozhodli využít dotyková zařízení se systémem Windows 10.

Abychom mohli jednoduše vytvářet nové buildy aplikace, nasadili jsme průběžnou integraci. Po každém commitu dojde na CI serveru automaticky k sestavení a otestování aplikace. Výsledná spustitelná aplikace je poté přesunuta do cloudového úložiště Azure Storage, odkud je možné ji stáhnout a následně spustit na koncových zařízení.

Jako CI server jsme využili řešení AppVeyor, protože na něm běží OS Windows, a je tedy možné sestavit aplikaci pro chod na Windows. Do budoucna zvažujeme použití Visual Studio Team Services, které kromě průběžných sestavení aplikace nabízejí i nástroje pro řízení vývoje a hostování kódu.

Po dokončení aplikace jsme narazili na problém, jak ji jednoduše distribuovat do koncových zařízení. Pro pilotní akci jsme se spokojili s ručním stahováním a instalací, ale do budoucna přemýšlíme o distribuci přes Windows Store, což by celý proces značně usnadnilo a urychlilo.

Aplikace komunikovala se serverem pomocí REST API a WebSockets. Serverovou aplikaci jsme napsali v node.js. Využili jsme Express.js a Socket.io. Data jsme se rozhodli ukládat v MongoDB. Po dokončení backendu vyvstala otázka, kam aplikaci nasadíme, abychom ji mohli jednoduše monitorovat, aktualizovat a škálovat. Nechtěli jsme se soustředit na správu serveru, nýbrž na aplikaci samotnou. Proto jsme se rozhodli využít některé z cloudových řešení typu PaaS. Po vyhodnocení funkcí, které jednotlivé cloudy nabízejí, jsme vsadili na Azure Web Apps na platformě Microsoft Azure.

Azure Web Apps mimo jiné nabízejí automatické škálování, deploy přes Git, podporu pro node.js nebo monitorování aplikace. Vzhledem k tomu jsme se rozhodli hostovat databázi také na platformě Microsoft Azure. Využili jsme MongoLab, který nabízí nasazení MongoDB do Microsoft Azure. Do budoucna přemýšlíme o migraci na databázi Azure DocumentDB, která je nativně podporována v cloudu Azure, nabízí škálování, replikace, nízkou latenci, vysokou dostupnost i jednoduchou správu. Navíc Microsoft nyní uvolnil podporu protokolu MongoDB pro DocumentDB, takže je možné přejít na DocumentDB bez nutnosti přepisovat aplikaci, která byla původně napsaná pro MongoDB.

Klepněte pro větší obrázek

Data s cenou zlata

Takto tedy vznikl systém NFCtron. Celé řešení se povedlo úspěšně otestovat v provozu na akci Slavnosti růžového vína Třebíč. Kromě už zmíněných funkcionalit jsme si vyzkoušeli také průběžné sledování dat. Systém totiž poskytuje real-time monitoring, takže je možné živě sledovat například počty objednávek na jednotlivých prodejních místech, sumy nabitých kreditů a utracených peněz.

Data dále ukazují nákupní aktivity a preference jednotlivých zákazníků, dobu strávenou na akci, utracenou sumu atd. Analyzovat lze také nabízený sortiment. Díky tomu, že vidíte prodávanost jednotlivých položek, můžete předvídat vývoj a po porovnání se skladovými zásobami operativně jednat a případně zajistit dodání nejžádanějšího zboží, u něhož hrozí vyprodání. Dále lze na základně analýzy optimalizovat rozložení stánků, přidat nákupní místa nebo upravit nabídku.

Oproti konkurenčním řešením představuje NFCtron komplexní a škálovatelné řešení, které je vždy přizpůsobeno klientovi na míru přesně podle potřeb jeho akce. Rovněž real-time monitoring a následné poradenství na základě získaných dat je unikátní.

Systém NFCtron nadále průběžně vylepšujeme. Z nově plánovaných funkcionalit zmiňme alespoň ticket systém, možnost nabíjení kreditu dopředu před akcí přes web nebo mobilní aplikaci, platbu mobilem nebo tisk účtenek. Kupa práce, že? Víme. A proto hledáme další zapálené vývojáře. Chtěli byste ukázat genialitu vašeho vývojářského mozku a podílet se na udávání směru NFCtronu? Podívejte se na to, jakým způsobem pracujeme, a pokud hrajeme podle podobných not, budeme rádi, když se ozvete.

Články ze série Microsoft TechNet nevytváří redakce Živě.cz, ale partneři programu Microsoft TechNet. Jsou publikovány v rámci mediálního partnerství Živě.cz a společnosti Microsoft.

Témata článku: Microsoft

13 komentářů

Nejnovější komentáře

  • snejdy 8. 9. 2016 11:49:14
    No, kdysi byl v aquaparku v Liberci taky systém že si člověk nejdřív musel...
  • Jiří Částka 8. 9. 2016 0:20:38
    Akce a podniky, kde si musíte peníze někam nabít, abyste si mohli koupit...
  • Radek Matous 7. 9. 2016 18:46:29
    zajímavé

Určitě si přečtěte


Nejlepší programy pro střih videa na doma: 10 video editorů, ze kterých si vyberete

Nejlepší programy pro střih videa na doma: 10 video editorů, ze kterých si vyberete

** Adobe Premiere Pro ani Final Cut se pro běžné uživatele příliš nehodí ** Programy na domácí střih většinou stojí do dvou tisíc ** V desítce nejzajímavějších najdete i 3 videoeditory dostupné zdarma

19.  9.  2016 | Stanislav Janů | 37

Deset tipů, jak ovládnout Google: Vyhledávejte jako mistři

Deset tipů, jak ovládnout Google: Vyhledávejte jako mistři

** Vyhledávače jsou natolik dobré, že si poradí i s frází v běžné češtině ** Pokud to ale nebude stačit, můžete vyzkoušet pokročilé funkce ** Vybrali jsme ty nejzajímavější

Dnes | Jakub Čížek | 9

Pojďme programovat elektroniku: Vyzkoušíme IR, ovládneme světýlko přes Bluetooth a vyšleme zprávu na sto metrů

Pojďme programovat elektroniku: Vyzkoušíme IR, ovládneme světýlko přes Bluetooth a vyšleme zprávu na sto metrů

** Budeme odposlouchávat IR ovladač klimatizace ** Vyrobíme laciný rádiový vysílač ** Vyzkoušíme komunikaci pomocí Bluetooth a v pásmu 433 MHz

21.  9.  2016 | Jakub Čížek | 18

Vymazat se z internetu není možné, velkou část osobního obsahu však odstranit můžete

Vymazat se z internetu není možné, velkou část osobního obsahu však odstranit můžete

** Online stopy i se svým jménem zanechá většina uživatelů internetu ** Jejich smazání nikdy nebude stoprocentní ** Poradíme, jak odstranit jejich větší část

20.  9.  2016 | Stanislav Janů | 21

Zoner Photo Studio X: Umí vrstvy, vyrobí fotoknihu a získáte jej za roční paušál

Zoner Photo Studio X: Umí vrstvy, vyrobí fotoknihu a získáte jej za roční paušál

** Je to největší aktualizace za poslední roky ** Konečně umí vrstvy, vyrobí fotoknihu i obraz ** Nově pouze jako předplatné s průběžnými upgrady

19.  9.  2016 | Jakub Čížek | 67


Aktuální číslo časopisu Computer

Srovnání výhodných 27" monitorů

Velký test levných rychlých routerů

Jak nastavit Android, aby vás nesledoval

45 podrobných testů a recenzí