Ansioluettelo ja portfolio

Ansioluettelo ja portfolio sivusto

Mistä kyse?

Next.js:llä tehty ansioluettelo ja portfolio sivusto. Sivuston projektien ja esittely/kuvaus teksti sisältö renderöidään markdown tiedostoista. Sivuston muu "data" tulee javascript oliosta. Sivustolta saa myös tarvittaessa renderöityä ja ladattua PDF tiedosto muodossa olevan CV:n.

Eri Sivut

Etusivulta löytyvät tiedot henkilöstä kuvan kera, sekä työpaikat, koulutukset kuin projektit/portfolio osio jossa on viimeisimmät 3 uusinta projektia.

Kaikki projektit sivulle on nimensä mukaisesti listattu kaikki projektit

Ongelmia kehitystyössä?

Arkkitehtuuri

Alkuperäinen idea konseptista, jossa ns. raaka data olisi ollut privaatti repositoryssa ja data olisi ollut Git submodulena käytössä, ei toiminu sen takia kun käyttämäni sivuston hostaus palvelu Vercel ei tue git submoduleita ja tässä kohtaa ei ollut vielä CI/CD putki täysissä sielunvoimissa.

Seuraava yritys, että softasta ja lähdekoodista olisi ollut ns. kaksi eri versiota julkinen ja kaikkien nähtävä repository sekä toinen privaati joka olisi ollut saman sisältöinen kuin tämä julkinen, mutta se olisi myös sisältänyt tämän raakadatan. Tämä yritys kaatui oikeastaan Gitin commit viesteihin jotka näytti aivan mitä sattuu yleisölle näkyvässä versiossa.

Tämä lopullinen versio jossa on pelkkä raaka data privaatti repossa ja kaikki muu on julkisessa, näyttäisi nyt ihan toimivalta ratkaisulta tai ainakin toistaiseksi.

CV:n pdf versio

CV:n PDF versio on siis toteutettu react-pdf/renderer kirjastolla/moduulilla ja joka ei siis toimi ollenkaan palvelin puolen renderöinnin (SSR) kanssa yhteen ja käytännössä kaikki data on sille kuljetettava propseina tai jotenkin muuten SSR:n yli. tai toinen vaihtoehto on fetchata data react hookeilla.

Ikonit

Kehityksen aikana oli pitkään käytössä react-icons kirjasto. Sen tarjoamat react komponentit eivät olleet react-pdf/rerenderin kanssa yhteensopivia, joten purin ikoneista svg datan pihalle ja tarjosin ne tälle rerenderille. Tämä toimi muutoin mutta aiheutti kaiken näköisiä preload varoituksia selaimen konsoliin. Lopullisessa versiossa päädyin Iconifyn ikonien tarjontaan ja kirjoittamillani skripteillä muunnetaan Iconifyn tarjoama SVG data JSON tiedostoista sovelluksessa käytössä olevista ikoneista ja SVG sekä siitä sharpilla PNG:ksi.

Tekoäly

Lähes kaikki 241 yksikkö testistä on generoitu paikallisella Qwen3.5 9B mallilla. Samaa mallia on käytetty myös JSDocsien generoimiseen. README.md tiedosto on generoitu ChatGPT:llä.