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.
NFCtron zkrotí sebevětší akci a naservíruje data ceny zlata

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.

Diskuze (13) Další článek: „Hackerem“ může být opravdu každý, tahle služba za poplatek generuje phishingové stránky

Témata článku: Microsoft, NFC, C++, Tuk, Cena nájmů, Cloudové úložiště, Replikace, Jednotlivá místa, Poradenství, Notebooky bez os, Pokladna, Kupa, Čerstvé sestavení, Cena, NFC čip, WebSocket, Plánované zboží, Unikátní id, Hozená rukavice, Rest, Dotyková čtečka, OS Windows, Třebíč, Třetice, Azure


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

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 28

Sonda Dawn prolétá jen 35 km od trpasličí planety Ceres a posílá úchvatné fotografie!

Sonda Dawn prolétá jen 35 km od trpasličí planety Ceres a posílá úchvatné fotografie!

** Sonda Dawn zkoumá trpasličí planetu Ceres od března 2015 ** Sonda nyní přešla na novou dráhu, nejblíže se dostává k povrchu na vzdálenost jen 35 km ** Ceres je největší planetkou hlavního pásu mezi Marsem a Jupiterem

Petr Kubala | 4

USB-C už mělo být všude, ale není. Tak kde to vázne?

USB-C už mělo být všude, ale není. Tak kde to vázne?

** Konektor USB-C byl představen už před čtyřmi roky ** Praktické univesrzální rozhraní však stále není rozšířeno ** Výrobcům hardwaru se do změny moc nechce

David Polesný, Vladislav Kluska | 87

Xiaomi Yeelight: Wi-Fi LED žárovka za pár stovek, kterou můžete ovládat i hlasem

Xiaomi Yeelight: Wi-Fi LED žárovka za pár stovek, kterou můžete ovládat i hlasem

** Na eBayi aspol. ji koupíte za čtyři stovky ** Má Wi-Fi a povedenou appku ** Spojíte ji s Googlem, Amazonem, IFTTT i vlastním systémem

Jakub Čížek | 42

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

** Portál občana už funguje, vyřídíte na něm první požadavky ** Funkce se budou postupně rozšiřovat ** Web je docela moderní a přehledný

David Polesný | 66

Jak John Kemeny a Thomas Kurtz stvořili BASIC, základ novodobého programování

Jak John Kemeny a Thomas Kurtz stvořili BASIC, základ novodobého programování

** Programovací jazyk BASIC tvořil základ osobních počítačů ** Původně byl určen vysokoškolským studentům, aby vůbec byli schopni využívat univerzitní počítač ** Jeden ze spoluautorů dělal výpočtáře Einsteinovi

Pavel Tronner | 78

Tesla je stále ve ztrátě, ale elektromobily Model 3 se prodávají neuvěřitelně dobře

Tesla je stále ve ztrátě, ale elektromobily Model 3 se prodávají neuvěřitelně dobře

** Tesla má rekordní příjem, je ale ve ztrátě ** Objem výroby se zvyšuje, dochází ale baterie ** Pomoci mají nové továrny Gigafactory

Karel Javůrek | 91


Aktuální číslo časopisu Computer

Jak mobily určují svoji polohu?

Velký test notebooků pro studenty

Nejlepší reproduktory na párty

Služby a aplikace pro výuku angličtiny