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