Second meeting minutes - stacc-dasso/woocommerce-extension GitHub Wiki

Second meeting (21.09.2018)

Kohalolijad

Martin Jürgel, Stiivo Siider, Lauri Leiten, Hannes Saariste, Karl-Oskar Masing

Notes

Testimine

  • Selenium - "nice to have"
  • Olulised on unit testid
  • unit testid kirjutab igaüks ise oma koodile

Töö kulg

  • "done" kohta ei ole rangeid nõudeid
  • sobib "good effort" või see, et lahendusele lähedale liigub
  • masterisse mergimisel mitme pea kontroll
  • valideerimine demodel

Kuidas klient teab, mis toimub

  • VM, WordPress+WooCommerce jooksma ning seal ka demod lisaks
  • nädalas korra anda review kliendile, mis tehtud on, feedback

Dokumentatsioon

  • dokumentatsiooni tegemisel järgida wordpressi standardeid
  • magentol koodistandardi php testid ja laiendus, kas kood vastab magento standardile - wordpressile analoog?

Veel töö kulgu

  • task on "done" siis, kui ta jõuab developmenti
  • oluline teada saada, mis keerulised kohad. panna wikissse kirja

Süsteemi üldidee

  • veebi frontend ja api vaheliides
  • süsteem ja api
  • tarvis soovitused saada kliendile nähtavaks
  • vaja saada kliendi (e-poe) poolest teatud andmeid
  • woocommerce laiendus võimaldab saada oma soovitud mudelite treenimiseks sündmuseid, mida kasutajad teevad, vaatavad, huvituvad
  • samuti on vaja saada e-poelt nende tooteid.

Süsteemi kasutajad

  • veebipood
  • veebipoe ostlejad
  • STACC

Kasutajate väärtused

  • Veebipoest ostleja:
    • saab soovitusi toodete kohta
    • võib leida asju, mida tal vaja on arvestades varasemast käitumist ning seda, mis tooteid vaadanud on.
  • Veebipood:
    • upsell - müü androidi asemel iphone
    • cross-sell - ostad selle toote, aga koos selle tootega ostetakse tihti ka see toode (stacc vaatab ostumustreid ja soovitab seotud asju)
    • nende kliendid jõuavad toodeteni, kuhu muidu ei oleks jõudnud (rohkem tooteid müüa)
  • STACC:
    • backend kasutab süsteemi, treenib selle abil oma mudelit,
    • saab sisendiks tooteid, evente ja analüüsib kliendi käitumist
    • lõppeesmärk analüüsida ja ennustada kliendi käitumist, genereerida parimaid soovitusi.
    • samas on süsteemi vaja ka selleks, et ilma süsteemita ei saa soovitusi viia klientideni, kes kasutavad woocommerce ja wordpressi.
    • seega vaja selleks, et teha turustatavaks.

Süsteemi funktsionaalsus

  • süsteem peab suutma kuvada apist tulnud soovitusi
  • süsteem peab saatma meie APIle veebipoe ostlejate sündmusi
    • valik magento baasil, vaadata, mida saab woocommercest kätte
  • user evendiga kaasas meta andmed -
    • tootega kaasa item id, stacc id (kasutaja id), veebisait, properties (catalog, color)
  • logimine:
    • infot ja debugi pole vaja
    • logimine konfigureeritav sellemaani, et testkeskkonnas veebipoes problemaatilisema olukorra puhul saab klient aktiveerida "debug mode"
    • logid saadetakse staccile (errorid, criticalid)
    • logisse panna syncimise algus ja lõpp
    • logide üleviimine öösiti, peale syncimist.
  • get info - integratsioonitest, kas saab ligi poele
  • peab suutma saata tooteid, tahavad panna mingi arvutamise et leida kui toode otsa saab
  • toodete laoseisu (kogustega) syncimine, peab üle vaatama, hea teha batchidena mitte korraga, atm teeb 250 toote kaupa
  • suudab kuvada peale eventide kättesaamist recommendationid.
    • mudelit treenitakse iga öö kasutajatelt saadud eventide põhjal
    • parameetrina võetakse ainult auth, muu kõik kehas
    • vaja teada, mis toode, kellele soovitada
    • block_id = ühel veebipoel saab olla mitu kohta kus soovitusi kuvada, seda soovituse asja võiks lihtsalt saada võtta ja paigutada igalepoole
  • peab saatma kiirelt logisid kui läheb süsteemil on väga suured rikked

NFR

  • kood woocommerce ja wordpressi standarditega kooskõlas
  • kui extension katki, ei tõmba maha veebipoodi
  • suhtlus APIga asünkroonne, vb laadida alles siis kui leht laetud
  • extension ei tohiks klientidele tekitada ajakulu
  • kui soovitusi pole kuvada, siis mitte mingit katkist asja kuvada
  • turvalisus - jsoni asjad bodys krüpteeritakse ära, api key + salasõna - mitte postitada public repodesse
  • customization css baasil
  • install nii lihtne kui võimalik, ideaalis saaks kasutada ilma arendajapoolse sekkumiseta - seni pole selleni jõutud
  • süsteem peab olema logitud - kui midagi kriitilist hakkab juhtuma, peab teada olema, samuti peab teada olema, kuidas süsteemi kasutatakse - seda saab eventide kaudu
  • dokumentatsioon, tööprotsessi kirjeldus, kuidas probleemid on lahendatud
  • kui soovitusi ei saa kätte, ei kuva mitte midagi, kui mingi muu error, siis ei oodata minut aega enne kui klient edasi lastakse, vaid tehakse asju asünkroonselt
  • skaleeruvus - kui ostukorv liiga suureks, ei tohi kuluda pool tundi, et lahti parseda, mis ostukorvis on.
  • IE väiksem 9 = ei pea töötama

Tulevased iteratsioonid

  • esimene iteratsioon - keskkondade seadistamine, requirementid
  • teine iteratsioon - arenduskeskkonna püstipanek, CI, lokaalselt mockupid, lokaalselt woocommerce wordpressi baaslahendus