---
# System prepended metadata

title: Työharjoittelu_2

---

# Työharjoittelu_2

# 30.1.2023 Maanantai

Tapasin ohjaajani Jonin klo 12 ja kävimme läpi harjoitteluun liittyviä yksityiskohtia sekä harjoittelun aikana toteutettavaa projektia. Tämän lisäksi täytimme työharjoittelusopimuksen, jonka myös kaikki osapuolet allekirjoittivat maanantaina. 

Projektissa tulaan toteuttamaan opiskelijoiden hyvinvointia tukeva järjestelmä. Tavoitteena on myös saada hankkeelle rahoitus (ESR-kehittämishanke). 

Aluksi olisi tarkoitus toteuttaa järjestelmä, jonka avulla opiskelija pystyisi kirjautumaan Azureen ja lähettämään halutuille (esim kuraattori) henkilöille oman digitaalisen "tilannekuvan". Tarkoitus on luoda järjestelmästä selainversio. Järjestelmä tulee laajenemaan matkanvarrella (tullaan kehittämään yli 3 vuoden ajan tästä eteenpäin).

Järjestelmän luonnin lisäksi tärkeässä roolissa on myös dokumentinkirjoitus, jotta seuraavien kehittäjien olis helpompi astua mukaan projektintekoon.


Olen tänään tutustunut aiheeseen liittyviin dokumentteihin ja tutoriaaleihin, joista tällä hetkellä parhaimmiksi ovat osoittautuneet seuraavat:

- https://developer.microsoft.com/en-us/microsoft-365/dev-program (tarkista kuinka paljon ilmaisaikaa on jäljellä)
- https://learn.microsoft.com/en-us/office/developer-program/microsoft-365-developer-program 
- https://learn.microsoft.com/en-us/graph/toolkit/get-started/use-toolkit-with-react
- https://learn.microsoft.com/en-us/training/modules/msgraph-toolkit-intro/
**Sovelluksesi tiedot (Manage Azure Active Directory)**
- https://portal.azure.com/#home

**Tili maksuja:**
- https://learn.microsoft.com/fi-fi/windows/apps/publish/partner-center/account-types-locations-and-fees
**Opiskelijatili ilmainen?**
- https://azure.microsoft.com/en-us/free/students/
- https://learn.microsoft.com/en-us/shows/azure-in-information-systems/studentdeveloperaccount

**Opiskelijatili:**
- https://portal.azure.com/?Microsoft_Azure_Education_correlationId=35db26e356454f2790ce154926162465#view/Microsoft_Azure_Education/EducationMenuBlade/~/overview

**Hyvä ohjelmoinnin aloitus linkki**
- https://learn.microsoft.com/en-us/graph/toolkit/get-started/use-toolkit-with-react
 

Samalla ole kirjautunut **Microsoft 365 Developer Program**:iin ja asentanut **Microsoft 365 developer subcription**:in. Olen myöstestannut ohjelmointia ja luonut simppelin applikaation, jolla pystyy kirjautumaan Microsoft Azuren tilille.

# 6.2023 Maanantai

Viime viikolla tutustuin moniin dokumentteihin ja tutoriaaleihin. Testasin myös erilaisia  projekteja. Viimeisin projekti, jonka loin, sisältää käyttäjän kirjautumisen Microsoft:in tilille, jonka jälkeen hän näkee kaikki kansionsa, joiden sisältö hän voi myös tarkastella. Tämän lisäksi hän voi luoda kansion ja korjoittaa sinne haluamaansa tekstiä. Kun hän tallentaa tämän hän pystyy samalla jakamaan sen haluamalleen henkilölle. Tämä koodi on vieklä osittain kovakoodattua, enkä siksi ole vieny sitä vielä GitHub-tilen repoon. Tarkoitus olis tällä viikolla toteuttaa tämä osio.

Viime viikon parhaimmat dokumentit yllä mainittujen lisäksi:

**Esimerkkikäyttäjien hallinta:**
- https://admin.microsoft.com/Adminportal/Home?ref=/users
**Oma Microsoft tili (developer):**
- https://developer.microsoft.com/en-us/microsoft-365/profile
**Graph toolkit komponentit:**
- https://learn.microsoft.com/en-us/graph/toolkit/overview (components)
**Esimerkkejä:**
    - https://mgt.dev/?path=/story/components-mgt-file-list--open-folder-breadcrumbs&source=docs
**Graph oikeuksia (scopet):**
- https://learn.microsoft.com/en-us/graph/permissions-reference
**OneDriven oikeuksia:**
    - https://learn.microsoft.com/en-us/onedrive/developer/rest-api/concepts/permissions_reference?view=odsp-graph-online
**Postmanin kaltainen työkalu:**
- https://developer.microsoft.com/en-us/graph/graph-explorer?request=me/messages
**Omien Graph API -kutsujen luominen (esimerkki):**
- https://learn.microsoft.com/en-us/graph/toolkit/providers/providers (Otsikot: *Making your own calls to Microsoft Graph* ja *Getting an access token*)
**Hyviä kutsuesimerkkejä:**
    - https://learn.microsoft.com/en-us/graph/api/resources/driveitem?view=graph-rest-1.0
**Tiedoston jakaminen (esimerkki)**
    - https://learn.microsoft.com/en-us/graph/api/driveitem-createlink?view=graph-rest-1.0&tabs=javascript

# 14.2.2023 Tiistai


Viimeisen viikon aikana olen tutustunut Microsoft OCR:n käyttöön. Olen testannut erilaisia ratkaisuja Computer Visionilla ja Form Recognizerilla. Olen myös yrittänyt yhdistää ne, jotta lomakkeen tulostus olisi mahdollisimman täydellinen. Toistaiseksi en ole onnistunut yhdistämään niitä tyydyttävästi. Tällä hetkellä olenkin ottanut käyttöön Computer Visionillatulostetun lomakkeen.

Aikaisemmin selitettyjen toimintojen lisäksi ohjelma hakee käyttäjän koneelta halutun (pdf,jpeg, png -muotoiset) lomakkeen ja tulostaa sen seläimen näytölle. Käyttäjällä on tämän jälkeen mahdollisuus taäyttä se ja tallentaa omaan OneDriveen ja jakaa halutuille käyttäjille.

Tällä hetkellä checkboxit eivät otimi oikein. Ja seuraavaksi on tarkoitus korjata ne toimiviksi. Myös Microsoftin Computer Visionin käyttöön otto on tarkoitus lisätä README.md:hen.

Hyviä linkkejä:

**Computer Vision**
- https://learn.microsoft.com/en-us/azure/cognitive-services/computer-vision/overview
- https://learn.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts-sdk/client-library?tabs=visual-studio&pivots=programming-language-javascript

**Form Regocnizer**
- https://learn.microsoft.com/en-us/azure/applied-ai-services/form-recognizer/?view=form-recog-3.0.0
- https://westus.dev.cognitive.microsoft.com/docs/services/computer-vision-v3-2/operations/5d986960601faab4bf452005
- https://learn.microsoft.com/en-us/samples/azure/azure-sdk-for-js/ai-form-recognizer-javascript/?view=form-recog-3.0.0

** Form Regocnizerin koulutus:
- https://formrecognizer.appliedai.azure.com/studio/custommodel/projects/093ee0ba-5a25-4db9-ac50-add58acd340f/label 


** Ja käyttöohjeet siihen:**
- https://learn.microsoft.com/en-us/azure/applied-ai-services/form-recognizer/concept-custom?view=form-recog-3.0.0
- https://learn.microsoft.com/en-us/azure/applied-ai-services/form-recognizer/how-to-guides/build-a-custom-model?view=form-recog-3.0.0

** Sovellukselle Käyttöoikeudet PERUSTEET**
-https://learn.microsoft.com/en-us/graph/auth/
-https://learn.microsoft.com/en-us/graph/auth/auth-concepts
-https://learn.microsoft.com/en-us/graph/auth-v2-service

**VIRHE AADSTS50020 kirjautuessa**
-https://learn.microsoft.com/en-us/troubleshoot/azure/active-directory/error-code-aadsts50020-user-account-identity-provider-does-not-exist

```
HUOM! OLETETTAVASTI SOVELLUKSEN KÄYTTÖOIKEUDET KAIKILLE
KÄYTTÄJILLE TÄYTYY LISÄTÄ KARELIAN OMAN MICROSOFT
TILIN KAUTTA (ADMIN_KÄYTTÄJÄ), JOTTA SITÄ VOISI KÄYTTÄÄ KOULUN
HENKILÖKUNTA JA OPPILAAT

kts. seuraavat tiedot:
```
Kirjatumalla Azure portaliin ja katsomalla sovelluksen "Permissions & Consert" kohtaa, huomaat, ettei "User consert" sisällä mitään. Kts. seuraava katso linkki: 
 - https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/configure-user-consent?pivots=portal

# 3.3.2023 Perjantai

Tässä on kulunut jo jokin aika, kun viimeksi päivitin tekemisiäni tänne. Olen tehnyt tässä välissä seuraavia lisäyksiä sovellukseen. 

Mietin pitkään, mitä työkalua käyttäisin skannatun lomakkeen muokkauksessa sivustolle näkyvään muotoon ja siitä tallennukseen. Tutustuin moniin erilaisin vaihtoehtoisin ja kokeilin niitä myös. OLen testannut Microsoftin OCR Computer Visionia ja Form Recognizeria. Olen myös kokeillut voisiko niitä käyttää yhdessä. Form Recognizeristä olen kokeillut mm. key-value paria sekä kustomoinut itse työkalua kouluttamalla sitä. Kumpikaan näistä ei kuitenkaan toiminut odotetusti. Key-value pari toi esille vain lomakkeen sisällä olevat kentät ja tekstit ja kaikki sen ulkopuolelle jäävä jäi kokonaan pois. Koulutettu malli taas tulosti osan mielivaltaisesti ja jätti taas osan pois. Tässä kohtaa on kuitenkin todettava, että pidemmällä tai taitavammalla kouluttamisella olisi voinut tull parempia tuloksia. Kokeilin myös lib-pdf kirjastoa, mutta sekään ei käyttäytynyt odotetusti. Ongelmaksi näytti muodostuvan lomakkeiden erilaisuus. Pitkän harkinnan jälkeen päädyin lopulta Computer Visioniin. 

Koska lomake ei tulostu täysin alkuperäisessä muodossa on, olen lisännyt ohjelmaan työkaluja, joilla lomaketta pystyy muokkaamaan mieleisekseen. Tällä hetkellä Computer Visionin muokkaamasta lomakkeesta pystyy poistamaan riveja, lisäämään niitä, muuttamaan niitä ja lisäämään teksti, ruutu ja numerokenttiä itse valitulla arvovälillä. Muokkauksen jälkeen lomakkeen pystyy tallentamaan tietokantaan, muuttamaan sitä myöhemmin ja poistamaan sen kokonaan niin halutessaan tietokannasta. 

Tallennetut lomakkeet näkyvät nyt sivustolla automaattisesti. Haluttua lomakepainiketta painettaessa muokattu lomake aukeaa ja sen pystyy täyttämään (tämä on vielä vähän kesken), jonka jälkeen lomake voidaan tallentaa OneDriveen. Kaikissa ominaisuuksissa on vielä testaus hieman kesken sekä koodin "siistimen". Lähtökohtaisesti yritän tietysti jo etukäteen tehdä mahdollisimman puhdasta koodia, mutta esimerkiksi tilankäsittelyn tulen muuttaman Reduksin vastuulle, johtuen sivuston laajuudesta. Tämä muutos tulee siistimään automaattisesti koodia.

# 16.3.2022 Torstai

- Sovelluksen oikeuksia koskeva linkki: https://learn.microsoft.com/en-us/graph/auth-v2-service

- Miksi tiedoston tallennus ei onnistu?
https://learn.microsoft.com/en-us/answers/questions/1166465/upload-a-file-on-one-drive-using-microsoft-graph-a

- miksi tallennus onnistuu, mutta .docx muotoisen tiedoston avaaminen ei?
https://learn.microsoft.com/en-us/answers/questions/801713/graph-api-small-file-upload-success-but-docx-wont

- Vielä linkki tiedoston tallentamisesta:
https://learn.microsoft.com/en-us/graph/api/driveitem-put-content?view=graph-rest-1.0&tabs=javascript

# Perjantai 17.3.2023

Sivuston rakentaminen on edennyt suunnitelmien mukaisesti, tosin viimeisinä päivinä on ollut pientä jumia tiedoston tallentamisen kanssa .docx muotoisena. Tällä hetkellä tiedoston pystyy kyllä tallentamaan .docx muodossa, mutta sen avaaminen ei onnistu, mutta jos tiedoston tallentaa tyhjänä avaaminen onnistuu. Tämä tulee korjata tulevaisuudessa.

Tähän mennessä olen luonut sivustolle aikaisemmin mainittujen toimintojen lisäksi lisää lomakkeen muokkaustoimintoja. Lomakkeeseen pystyy lisäämään nyt myös valintaruutuja, joihin pystyy kirjoittamaan haluamiaan vaihtoehtoja. Lomakkeeseen, joka sisältää numeroarvoja, pystyy nyt lisäämään toiminnon, joka laskee yhteensä kaikki lomakkeen numeroarvot. 

Kun opiskelija tallentaa lomakkeen, tallentuu opiskelijan OneDriveen koko lomake lomakkeen nimellä sekä yhteenveto lomakkeen yhteispisteistä tiedosto.txt tiedostoon. Tiedosto.txt päivittyy joka kerta, kun opiskelija täyttää lomakkeita. Kyseisen tiedoston pystyy jakamaan halutuille henkilöille (myös niille, joilla ei ole Microsoft tiliä). Tiedosto.txt on tosiaan vielä .txt muodossa eli tämä tulee muuttaa.

Kun ylläpitäjä tallentaa lomakkeen, jonka on hakenut omalta koneelta (esim. pdf muotoisena) ja muokkaa sen, tallentuu se muokattuna json muotoisena datana. Minun tulee tarkistaa vielä halutaanko lomake tallentaa alkuperaisessä muodossa, jolloin sen voisi tallentaa vaikka Azuren tietokantaan blob muotoisena vai onko tämä tallennusmuoto riittävä.


# Perjantai 31.3.2023

Taas on kulunut tovi, kun viimeksi kirjoittelin tänne työharjoitteluni etenemisestä. Sain vajaa kaksi viikkoa sitten kaverin (Niilo) tähän projektiin. Ja tästä syystä siistin koodia taas hieman ja kirjoitin dokumentin koodista. Nyt uusien käyttäjien on helpompi perehtyä koodiin, kun jokaisesta tiedostosta on luotu oma dokumenttinsa. Dokumentti löytyy samasta Github-tilin reposta, mistä koodikin löytyy. 

Näiden lisäksi olen korjannut bukeja koodista ja tehnyt pieniä lisäyksiä koodiin muutenkin. Olen myös tehnyt uuden videon tämänhetkisestä tilanteesta ja lähettänyt sen ohjaajalleni Jonille. Videon pohjalta sain seuraavia vinkkejä projektin etenemisestä:

- lomakkeen yhteenlaskettavien pisteiden lisäksi tulisi näkyä myös kokonaispistemäärä tilasto.txt-lomakkeessa
- lomaketta luotaessa pitäisi löytyä myös tekstikenttä, johon admin-käyttäjä voisi kirjoittaa tilasto.txt tallennettavan yhteenvedon. Tämä tulostuisi tilasto.txt lomakkeeseen aina kun käyttäjä on täyttänyt lomakkeen (ja olisi tietysti erilainen jokaisessa lomakkeessa)
- tulisi keksiä tapa, miten muut kuin numeeriset pisteet/arvot lasketaan yhteensä

Näistä kaksi ensimmäistä olen jo toteuttanut. Ja kolmas voisi olla sellainen, jota mietitään yhdessä Niilon kanssa. 

Sovimme Niilon kanssa, että kommunikoimme keskenään Discord kanavalla ja tämän lisäksi tapaamme viikottain. Sovimme myös, että autamme toisiamme aina tarvittaessa. Tämä on tuntunut hyvältä järjestelyltä ja toiminut muutenkin hyvin.

Näiden lisäksi olen miettinyt löytyisikö toimivampi tapa tallentaa ja muokata lomakkeita sekä jatkanut Typescriptin opiskelua. Nyt kun sain kaverin tähän projektiin, niin täytyy miettiä yhdessä tullaanko koodi muuttamaan sittenkään kokonaisuudessa Typescriptiksi ja siirretäänkö tilankäsittely Reduksin vastuulle. Olen kuitenkin erittäin tyytyväinen Typescriptin opiskelusta. Koen, että siitä on varmasti tulevaisuudessa hyötyä, jos näitä hommia tulen tekemään.

# 3.4.2023 Maanantai

Tässä mietteitä siitä, miten lomakkeita voisi pisteyttää:

### Lomake 1: -> VALMIS

- tähän lomakkeeseen sopii hyvin jo luotu pisteiden yhteenlasku toiminto

### Lomake 2: -> KESKEN!

- tähän lomakkeeseen sopisi ominaisuus, joka hakisi kaikki rastitetut rivit ja tallentaisi ne tilasto.txt-lomakkeeseen
    - jos checkbox on valittu, tallennetaan arvo listaan ja vielään lopuksi tilasto.txt:ään


### Lomake 3: -> KESKEN! -> mieti miten toteutetaan

- laskee yhteen jo valmiiksi määritellyt pisteet, jotka on valittu, ja tallentaa ne tilasto.txt:ään
    - esim. painikkeilla -> jos painike on valittu, tallennetaan arvot listaan ja lasketaan ne lopuksi yhteen ja näytetään tilasto.txt:ssä
    - kts. katso esimerkki: https://stackoverflow.com/questions/68777175/how-to-make-several-buttons-simultaneously-active-but-with-some-conditions

### Lomake 4: -> KESKEN! -> mieti miten toteutetaan

- miten olisi, jos tilasto.txt:ssä näytettäisiin kaikki valintalistan sisältövät rivit ja valinnat?

### Lomake 5: -> KESKEN! -> mieti miten toteutetaan

- voisiko tämän lomakkeen toteuttaa numerovalintakentillä samalla tavalla kuin lomakkeen yksi?

### Lomake 6: -> KESKEN! -> mieti miten toteutetaan

- tähän sopisi ensin lomake 2:sen ruutuvalinta ominaisuus, jonak jälkeen valitut kohdat voisi vielä pisteyttää lomakkeen yksi mukaisesti. Tämän jälkeen viimeksi valitut kohdat palautettaisiin pisteineen
    - miten toteutettaisiin?
    - riittäsikö sittenkin vain sam ratkaisu kuin lomakkeessa 2?

### Lomake 7: -> VALMIS

- tähän sopii hyvin numeroarvojen yhteenlasku toiminto

### Lomake 8: -> VALMIS

- tähän sopii hyvin numeroarvojen yhteenlasku toiminto

### Lomake 9: -> EI TOTEUTETA?

- en keksi tähän ratkaisua. 


# Keskiviikko 26.4.2023

Taas on vierähtänyt tovi, kun viimeksi päivitin tänne tekemisiäni. Saimme Niilon kanssa jokin aika sitten uuden työkaverin Tuomon. Tuomo olikin minulle jo entuudestaan tuttu ryhmätyöstä muutaman vuoden takaa. Silloin ryhmätyömme sujui erinomaisesti ja olinkin iloinen siitä, että uusi tiimiläisemme oli juuri Tuomo. 

Tämän jälkeen me jaoimme Niilon ja Tuomon kanssa kaikille omat tehtävät. Itselleni jäi ratkaistavaksi edellä mainittujen lomakkeiden toiminnallisuuden lisääminen. Tähään mennessä olen toteuttanut kaikkien muiden lomakkeiden pisteiden yhteenlaskun paitsi lomake 6:sen ja 9:sin. Näitä minun tulee vielä miettiä.

Tämän lisäksi mieltä ni pon jo pitkään painanut lomakkeen luonti toiminnallisuus yleisesti. Se kun on ollut todella monimutkainen ja sisältänyt aivan liikaa painikkeita. Pitkän pohdinnan jälkeen keksin ratkaisiun, joka on jonkin verran yksinkertaisempi. Vielläkään tosin en ole täysin tyytyväinen siihen. Kerroin ideastani muille ja hekin peukuttivat ajatustani. Tämän jälkeen ryhduin toimeen ja muokkasin lomakkeen luonnin sellaiseksi, että kaikki muokkauspainikkeet ovat nyt lomakkeen yläpuolella ja itse muokkaus tapahtuu riviä painettaessa. Yksi askel kerrallaan parempaan suuntaan. :)

Seuraavaksi korjaan pienen bugin, joka löytyy "Pistekenttä"-painikkeessa. Uskoisin saavani korjattua sen tänään. Tämän jälkeen tarkoitukseni on käydä edellä luomaani koodia läpi ja refaktoroida sitä siistimmäksi niin, että toisteiset koodit poistuisivat.

# Maanantai 8.6.2023

Työharjoittelu on edennyt jo loppusuoralle (enää 1kk jäljellä). Viimeisten viikkojen aikana olen keskittynyt pääasiassa tiedosto rakenteiden refaktorointiin. Viimeksi kun yksinkertaistin lomakkeiden luomispainikkeiden toimintaa, muokkasin samalla koodiin kansion, jonkasisälle loin tiedosto jokaisen painikkeen toiminnalle. Kuitenkin jo silloin huomasin, että kyseisten tiedostojen sisällä oli paljon toistoa. Viime viikolla keskityinkin pääasiassa siihen, että sain toiston minimiin (vieläkin löytyy hiukan toistoa) ja lopputuloksena muutin kaikki yhdeksän kansiota yhdeksi kansioksi. Samalla siistin FormCreation.js tiedostoa. Matkan varrelta korjasin myös joitakin bugeja. Muokkasin myös kahteen painikkeeseen animaatio toiminnon, joka kertoo, että toimenpide on parhaillaan käynnissä. 

Edelleenkin mietin, miten kaikkien yhteenlaskettavien lomakkeiden pisteet tulisi laskea. Lähes kaikkiin on jo löytynyt jonkinlainen ratkaisu, mutta kahteen sellainen vielä uupuu. Ajattelin ottaa aiheen puheeksi tiistain palaverissa Tuomon ja Niilon kanssa.

# Ti 16.6.2023

Viime viikon tiistaina sovittiin, että alan toteuttamaan saavutettavuutta koodiin. Aloitin sillä, että tabulaattori toimisi oikein. Tämän myötä löysin bugeja, jotka estivät tabulaattorin toimimisen täysin oikein. Korjasin bugit ja mielestäni tabulaattori toimii nyt oikein. Muutin tämän johdosta myös Boostarin ToggleButtonGroupin painikeryhmän Material UI:n vastaavaan, koska omasta mielestä se oli saavutettavampi. Loppuviikosta sain kuulla Tuomolta, että hän todennäköisesti tekee opinnäytetyön tämän koodin saavutettavuudesta. Tämän kuultuani jätin saavutettavuuden toteuttamisen ainakin toistaiseksi, jotta Tuomo voi jatkaa tarvittaessa siitä. 

Loppu viikon opiskelin lisää Javascriptiä ja tein joitakin kokeiluja sillä. Opiskelin myös testausta Jest-kirjastolla. Olen toteuttanut kahteen omaan projektiin kyseisellä kirjastolla testit ja olisi kiva, jos saisin toteuttaa tähänkin koodiin Jestin testit. Tosin koin, että testaus oli aika vaikeaa ja juuri tästä syystä kertasin vanhoja oppeja ja opiskelin Jestiä lisää. Lisäksi korjasin vielä yhden bugin koodista.

Mielestäni ohjelma on alkanut näyttämään jo melko hienolta ja toiminnallisuudetkin ovat asettuneet kivasti paikoilleen. Edelleenkin mietinnässä on, miten loppujen lomakkeiden pisteet lasketaan yhteen. Sovittiin viime palaverissa, että jokainen miettisi siihen ratkaisua. Tänään on palaveripäivä, joten saa nähdä onko jonkinlainen ratkaisu keksitty (itse en valitettavasti ole keksinyt mitään järin hienoa vielä).

# To 2.6.2023

Viimeisestä kirjoituskerrasta on taas jonkin verran aikaa, mutta yritän muistaa tärkeimmät jutut joita olen tällä välillä tehnyt. Alussa on sanottava, että Niilo ja Tuomo keksivät koodin, joka tallentaa tiedostot nyt docx-muodossa. Koen, että tämän on hieno läpimurto. Itse tappelin jossain vaiheessa saman aiheen kanssa, enkä ratkaissut sitä. Kuitenkin tämän jälkeen terästäydyin ja tartuin aiheeseen uudestaan. Oma läpimurtoni ole jo luodun docx-tiedoston sisällön hakeminen ja muuttaminen luettavaan muotoon. toteutin tämän seuraavasti: Asussa haetan Onedrivestä "tilasto.docx" tiedoston sisältä "arrayBuffer"-tyyppisenä, jonka jälkeen se lähettää studentapp.js:n kautta backendiin. Backendissä muutetaan docx-tiedoston sisällön tekstimuotoon ja palauttaa sen JSON-muodossa. Apuna käytin multer- ja  mammoth -kirjastoja. 

Tämän lisäksi olen muuttanut server-puolen koodin kansio- ja tiedostorakenteen parempaan muotoon. Nyt ne on eroteltu asian mukaisiin kansioihin ja tiedostoihin. Tämän lisäksi päivitin koko dokumantaation. Tämä oli aika iso homma, kun viimeisestä päivityksestiä oli jonkin verran aikaa ja kansio ja tiedosto rakenteita oli muutettu jo aiemmin  frontin puolella. 

Lisäksi olen korjannut joitakin bugeja ja tehnyt lopuksi docx tiedostoon rivinvaihdon (tein tämän ainostaan OneDriven tilasto.docx:iin). Olen myös auttanut Outia Microsoftin tilien luonnissa. 

Minulla on harjoittelua jäljellä enää vajaa viikko ja olen ajatellut käyttää sen pääasiassa loppuraportin kirjoittamiseen ja uusien kehittäjien (Outi ja Vesa) auttamiseen, jotta he saisivat ohjelman toimimaan omalla koneella. Samalla voin tarvittaessa perehdyttää heidät omalta osaltani ohjelman koodiin. Näiden lisäksi korjaan vastaan tulevia bugeja. Itseasiassa korjasin juuri Chrome selaimelle tyypillisen bugin. Kun Chrome selaimen laittaa mobiilitilaan, ei numerokentän nuolia näy. Korjasin kyseisen bugin luomalla input kentän perään kaksi painiketta, jotka tein css-tyylittelyllä saman näköisiksi kuin alkuperäiset nuolet. Tämän jälkeen asetin ne alkuperäisten nuolien päälle.

# Ke 7.6.2023

Tämä viikko on mennyt auttaessa ja perehdyttäessä Outia ja Visaa koodiin. Ollaan myös porukalla mietitty jatkokehistysideoita. MS Developer tilien luonnissa oli ongelmia ja tänään selvisi syy: Microsoftilla on ollut teknisiä ongelmia 31.5-5.6 välillä ja siksi tilin tilauksen luonti ei ole onnistunut. Tänään näyttäisi siltä, että Outi ja Visa saisivat luotua omat App-tunnukset, jolloin sovelluksen pitäisi toimia kokonaisuudessaan. Tämä oli itselle iso juttu. Koska olin projektissa ensimmäinen kehittäjä ja otin käyttöön MS:n riippuvuudet, halusin nähdä, että kaikki saivat sovelluksen toimimaan omalla koneellaan. Nyt tuntuu oikealta hetkelät jättäytyä projektisa pois. 

Minulla on jäljellä vielä noin 14h ja ajattelin käyttää tämän ajan edelleenkin bugien etsimiseen ja mahdollisiin yhteispalavereihin. Samalla voin päivystää ja auttaa aina tarvittaessa uusia kehittäjiä.

# To 8.6.2023

Työharjoitteluni on nyt tullut päätökseensä. Projekti oli kaikin puolin todella mukava. Olin todella onnekas kun sain aloittaa sen, jolloin sain itse vaikuttaa työkaluihin ja käytettäviin kieliin. Oli mukavaa myös työskennällä porukassa, joka oli täynnä todella kivoja tyyppejä. Projektin jatkajat vaikuttavat myös taitavilta koodareilta ja uskon, että projekti vain paranee tästä eteenpäin. 
