Preskočiť na obsah Preskočiť na pätu (NCP VaT)
VEDA NA DOSAH – váš zdroj informácií o slovenskej vede

Aby zákazníci dlho nečakali, je tu Martians: SmartStore

VEDA NA DOSAH

tím projektu

Dlhé dodacie doby pre zákazníkov? Núti ich chýbajúci tovar prejsť ku konkurencii? Jednoduchým riešením je Martians SmartStore! Tento unikátny projekt študentov Fakulty informatiky a informačných technológií Slovenskej technickej univerzity v Bratislave napovie, čo, kedy, koľko a dokonca aj kde uložiť, aby obchod ušetril čas a jeho zákazníci nemuseli dlho čakať.

Projekt je riešený v spolupráci so spoločnosťou Martinus. Primárny problém, ktorý sa snažil študentský tím odstrániť, bolo vymyslieť inteligentné riešenie, ktoré by uľahčilo skladovanie zásob vo väčšom sklade. Projekt Martians SmartStore bol prezentovaný na finále najlepších tohtoročných projektov, ktoré sa uskutočnilo začiatkom júna 2017 na Fakulte informatiky a informačných technológií Slovenskej technickej univerzity (STU) v Bratislave. Išlo o TOP aktuálne aplikácie a IT projekty, z ktorých niektoré sa v minulé roky podarilo premeniť na start-upy. Riešia ich každoročne študenti STU v Bratislave v rámci predmetu Tímové projekty.  

Tím 03 – Martians bol v zložení: Majka Dragúňová, Matej Červenka, Ondrej Kudláč, Matúš Salát, Martin Šidlo, Lukáš Šimek. Vedúcim tímu sa stal Peter Krátky a externým konzultantom za spoločnosť Martinus Ján Súkeník.

Ako uvádzajú realizátori projektu, už samotný názov trochu napovedá, ktorým smerom sa ich zadanie bude uberať. „Vymyslieť inteligentné riešenie, ktoré by uľahčilo skladovanie zásob.“ Konkrétne sa zaoberali uskladňovaním kníh v spoločnosti Martinus.

„Predajnosť a dopyt po rôznych knihách raz klesá, inokedy stúpa. Hlavnou myšlienkou je preto prísť na spôsob, ktorý by podľa údajov o predajoch a aktuálnom počte kusov na sklade, dokázal rozumným riešením systematicky usporiadať zásoby počas naskladňovania a vyskladňovania. Docieli sa tým efektívne využitie skladovacích priestorov a v neposlednom rade ušetrenie času a úsilia pracovníkov skladu, ktoré musia vynaložiť pri vybavovaní objednávok,“ uvádzajú autori v popise svojho projektu.

Ako sa Konštatuje v Projektovej dokumentácii k inžinierskemu dielu tímu 03 – SmartStore, aplikácia SmartStore využíva architektúru klient – server. „Klientska časť poskytuje používateľovi grafické rozhranie, ktoré je implementované ako tenký klient – ide teda o webovú aplikáciu dostupnú pomocou webového prehliadača. Pomocou tohto rozhrania (Rozhranie aplikácie SmartStore) k aplikácii pristupuje Používateľ, ktorý má možnosť čítať zobrazovaný obsah alebo zasielať požiadavky na server. Serverovú časť (SmartStore – backend) tvorí aplikačná logika s databázou.“

V rámci serverovej časti sú nasadené moduly: 

  • SmartOrder – modul na predikciu objednávok;
  • SmartCollect – modul na výpočet najefektívnejšej trasy pre pracovníka skladu a optimálne rozloženie skladu.

Tieto moduly na výpočet používajú dáta zasielané z Matinusu (Martinus – backend).

SmartStore – backend, teda serverová časť aplikácie je implementovaná s dodržaním konvencií architektúry MVC (Model – View – Controller), ktorú prirodzene podporuje použitý framework Ruby on Rails. „Okrem aplikačnej logiky je dôležitou súčasťou backendu aj modul na predikciu objednávok. Serverová časť komunikuje s klientom pomocou REST API. Jednotlivé požiadavky sú priradené ku kontrolerom, ktoré vykonávajú operácie nad modelmi, ktoré pracujú s dátami. Na uchovanie dát je použitá databáza PostgreSQL. Uskutočnené objednávky sú posielané z kníhkupectva každodenne. Ich pravidelné spracovanie je zabezpečené modulom Sidekiq, v rámci ktorého sú plánované procesy (napr. spracovanie dát, predikcia), ktoré sú vykonané na pozadí (angl. backgroud processing),“ píše sa v Projektovej dokumentácii k tomuto inžinierskemu dielu.  

Pri predstavovaní riešenia Martians SmartStore jeho autori uvádzajú, že ústrednú časť dátového modelu vytvorili na základe informácií od vlastníka produktu podľa existujúceho dátového modelu používaného kníhkupectvom. „Táto ústredná časť je tvorená triedami Distributor, Product, Sale a Stock. Každý produkt má špecifikovaný aktuálny stav skladu, ktorý je uchovaný v samostatnej triede sklad – Stock a má referenciu na distribútora. Predaj Sale sa viaže k určitému produktu a tiež uchováva stav počtu kusov, ktoré boli na sklade v čase predaja, aby bola uchovaná história stavu skladu. Jednotliví zamestnanci Employees skladu majú na starosti určitý počet distribútorov, od ktorých objednávajú produkty. Používateľ User nie je viazaný k zamestnancovi skladu, ale je ním akákoľvek osoba používajúca aplikáciu SmartStore, ktorá chce zobraziť predikcie Predictions k jednotlivým produktom.“

Pre modul SmartCollect je podľa realizačného tímu potrebné ukladať grafovú reprezentáciu skladu, na čo slúžia modely Node a Edge, na uloženie spolu predávaných produktov slúži model Basket. „Optimálne rozloženie skladu je riešené ukladaním potrebných atribútov v modeli Product. Všetky triedy dedia funkcionalitu na vytváranie a upravovanie biznis objektov od triedy ActiveRecord poskytovanej frameworkom Rails.“ 

Náčrt architektúry produktu

Ako moduly systému boli využívané nasledovné:

  1. Modul robotníci na pozadí: Tento modul slúži na spracovanie prác (angl. jobs) na pozadí aplikácie. Na pozadí spracúvajú napríklad výpočty predikcií.
  2. Modul predikcie: V module predikcie prebieha výpočet predikcie objednávok na základe predajov zaslaných z kníhkupectva. Tento modul je implementovaný v jazyku R. Na vstupe pre tento modul je súbor s exportom z databázy SmartStore a na výstupe súbor obsahujúci predikcie pre jednotlivé tovary.
  3. Modul grafického rozhrania: Modul grafického rozhrania slúži na zobrazovanie výsledkov produktu SmartOrder – teda pomocou tohto modulu prehľadne zobrazujú predikcie objednávok pre jednotlivé produkty.
  4. Modul autorizácie používateľa: Tento modul slúži na autorizáciu používateľa kvôli chráneniu aplikácie pred nepovolanými osobami, ktoré nemajú právo používať aplikáciu a nemajú prihlasovacie údaje. Modul tiež zahŕňa autorizáciu API, aby sa na ňu mohli prihlasovať len používatelia, ktorí majú prihlasovacie tokeny.  
  5. Modul na hľadanie cesty v sklade: Modul patrí k produktu SmartCollect, cieľom ktorého je vyhľadať (vypočítať) najefektívnejšiu trasu pre pracovníka skladu pri vybavovaní objednávky, keďže objednávka môže zahŕňať viacero produktov, ktoré sa v sklade nachádzajú na rôznych miestach.
  6. Modul na analýzu nákupného košíka: Modul patrí k produktu SmartCollect, kde slúži na pravidelný výpočet produktov, ktoré sa predávajú spolu. Na základe toho je potom možné zahrnúť informáciu o spolu predávaných produktoch do výpočtu optimálneho rozloženia skladu.
  7. Modul na výpočet optimálneho rozloženia skladu: Modul patrí k produktu SmartCollect, kde slúži na každodenný výpočet optimálneho rozloženia skladu podľa aktuálnej popularity jednotlivých produktov a podľa produktov predávaných spolu. Výsledkom je potom zobrazenie najnevhodnejšie umiestnených produktov.

V Projektovej dokumentácii k tomuto inžinierskemu dielu sa ešte spresňuje, že dátová analýza je realizovaná na informáciách o predajoch, ktoré autori projektu nadobúdajú od Martinusu. „Je vykonávaná v programovacom jazyku R, určenom na štatistické analýzy. Vstupnou hodnotou do skriptu v tomto jazyku je CSV súbor, obsahujúci všetky potrebné informácie k predikcii. Dáta, ktoré sa v súbore nachádzajú, sú v prvej fázy prefiltrované, a pracuje sa len s relevantnými údajmi. Následne sú pomocou nami vytvorených funkcií a metód predikované dátumy o vypredaní, o objednaní a počte potrebných kusov. Výstupným artefaktom z dátovej analýzy je nový CSV súbor, ktorý obsahuje všetky spomenuté informácie ku každému produktu,“ poznamenali realizátori projektu s tým, že dátová analýza tu končí a všetky nové údaje sú uložené do databázy.

 

Viac informácií o projekte

 

Informácie a foto poskytla: Andrea Settey Hajdúchová, manažérka pre komunikáciu, Slovenská technická univerzita v Bratislave

Spracovala: Slávka Habrmanová, NCP VaT pri CVTI SR

Uverejnila: VČ

CENTRUM VEDECKO-TECHNICKÝCH INFORMÁCIÍ SR Ministerstvo školstva, výskumu, vývoja a mládeže Slovenskej republiky