TLUHK-RIF21 / HK-Ainekursus

http://ainekursus.hk.tlu.ee
0 stars 0 forks source link

Kaius Karon - Praktikapäevik #10

Open kaiusk opened 1 year ago

kaiusk commented 1 year ago

Sprint#1

Kõige keerulisem osa oli koodi struktuurist aru saamine. Veel on segane, kuidas täpsemalt kursuste infot git's hoitakse ja kuidas seda sealt kätte saadakse - üldisemalt siis kuidas töötab git'i API

Ajakulu ~20h

kaiusk commented 11 months ago

Sprint#2

octokit'i uurimine (~5h) mermaidi uurimine (~2h) readme kirjutamiseks leidsin sellise asja: https://jefago.github.io/tiny-markdown-editor/

repo loomise testimisel ilmnes huvitav probleem:

uue repo loomine (~8h)

päris palju aega (~5h) kulus sellise probleemi lahendamiseks - kui kurususe sai lisatud, siis ei ilmunud see esilehele. Selgus, et probleem selles, et get-repos käsk võtab vaikimisi 30 repot, kuna aga tluhk all on neid juba rohkem, siis osad jäid selle pärast välja. Nüüd on viga parandatud...

kaiusk commented 11 months ago

Sprint#3

kaiusk commented 10 months ago

Sprint #4

Kasutajate testidest lähtudes tegime kursuse lisamise nii, et kasutaja peab andma vaid aine koodi või siis ÕIS'i lingi. Backend'i osa oli minu jaoks üsnagi keeruline - st palju oli asju, millega pole varem otseselt kokku puutunud. Näiteks kuidas express.js võtaks vastu json POST' jms. Backend poole tegin nii, et kasutaja saaks tagasisidet, kui midagi läheb viltu - näiteks ei saa luua kahte sama ÕIS'i koodiga kursust. ~4h

Alustasin uue ühisele api'le (http://users.hk.tlu.ee/) üleminkut. See tähendab kahjuks ka juba varem tehtud osa ümbertegemist, aga asi on seda väärt, sest minu meelest on rakenduse esmane laadimine JUBE aeglane ja see kindlasti ei kutsu uut asja kasutama. Esimese asjana muutsin kasutajate õiguste määramise uue api peale. Järgmiseks hakkasin ringi tegema seda, kuidas reposid näidatakse. Esmalt tõmmatakse uue api abil kõikide kursuste repo lingid ja siis küsitakse github'st nende repode config.json failid ja ÕIS'st sisu. Siin on veel ruumi paremaks tegemisel - ehk saab teha nii, et githubi ei minda ennem, kui konkreetne avatakse õppejõu või õpilase poolt. Ilmselt peaks siis uuele apile veel andmeid juurde lisama.. ~8h

kaiusk commented 10 months ago

Sprint#5

Koosolek kliendiga ~1h, Loeng ~3h Issuete loomine ~1

Nii nagu kokku sai lepitud, siis tõeallikas ainekursuste ja kasutajate kohta saab olema user.hk.tlu.ee api. See tähendab, et ümber tuli teha väga palju asju. Alustasin õpilase avalehest - api käest küsin kasutaja kursused. Siin oli toredaks üllatuseks see, et sama /groups/user/:id andis mulle ka õppejõu kursused :) Iga saadud kasutaja kuruse kohta küsin github'st config.json faili - kui faili ei leita, siis rakendus kursust näidata ei saa. Kuna andmete struktuur on teine, siis tuli pisut muuta vaadete faile - pigem just väljade nimetused jms.

Järgmiseks sammuks oli õpetaja avaleht - siin oli suurem eeltöö juba õpilase vaatega ära tehtud. Õpetaja avalehelt korjasin ära "teiste õpetajate kursused" sektsiooni - see on plaanis panna eraldi menüü punkti alla.

Järgmine samm - ühe kursuse vaade. Jällegi suured muutused andmete küsimisel ja saatmisel vaatesse. Positiivne oli see, et kood on läinud palju lühemaks ja rakendus kiiremaks. Kuna mul oli vaja pidevalt testida kord õpilase, kord õpetaja vaadet, siis tõmbasin omale HK-Users-Service repo ja panin selle käima kohaliku DB'ga.

Mihkli käest sain ligipääsu http://ainekursus.hk.tlu.ee/ serverile, kuhu panin tööle varasema versiooni, mis veel ei suhtle uue API'ga (tol hetkel oli uus API maas ka). Ülespanemine ei läinud valutult - nimelt oli probleem .env failis githubi muutujatega. Õnneks ledsin serverist eelmise aasta versiooni ja sain sealt õiged .env faili muutujad.

Hetkel oleme umbes täpselt tagasi alguses, ainult et rakendus kasutab uut API't. Kokku tööd vähemalt 10h

kaiusk commented 9 months ago

Sprint#6

Jätkasin uuele apile üleminekuga. Eelmisest korrast jäid teha progressi ülevaate leht ja teiste õppejõudude kursuste leht. Progressi backend osa alustasin nullist - nii oli lihtsam. Parandasin ära tudengi vaates kursuse materjalis liikumiseks "järgmine" ja "eelmine" nupud, samuti parandasin "märgi tehtuks" nupud ja loogika. Sellega seoses komistasin ka enda jaoks uudse probleemi otsa - JSON salvestamine DB'sse. Probleem tekkis sellest, et JSON võtme väärtuseks peab olema kursuse materjali UUID väärtus, see väärtus aga sisaldab "-" märke ja need omakorda ei töötanud JSON_KEYS funktsioonis. Muutsin andmebaasi mariadb'st -> mysql ja siis sain ka JSON_KEYS tööle.

Uue asjana tegime ära kasutaja rolli valiku. juhul kui kasutajal on mitu rolli, siis nüüd saab ta valida, millises rollis soovib vaateid näha.

Samuti uue asjana alustasin "poolikule kursusele" config.json faili loomist - juhul kui api kaudu antakse kursuse repo link, millel puudub config.json fail. siis rakendus ei ole võimeline seda kursuse näitama (avalehel on näha, aga edasi minna ei saa). Hetkel suudab skript luua faili põhilise struktuuri, puudu on veel teemade nimede lugemine failist. Näide - kui kausta nimi on "lessons/loeng_01" siis selle nime peaks lugema "lessons/loeng_01/about.md" failist...

Aega kulus kokku vähemalt 10h

kaiusk commented 9 months ago

Sprint#7

Aega kulus: ∞h