Miro Mariapori

Valitut työt

Projektit

Neljä projektia, jotka näyttävät tapani ottaa teknistä vastuuta, rakentaa reaaliaikaisia ja dataintensiivisiä järjestelmiä sekä toimittaa full-stack-kokonaisuuksia.

Gamified Joint Rehabilitation, Analysis and Training (GameRAT)

Aikajana: 1/2024 – 3/2025

15 kuukauden tutkimushanke fysioterapiaharjoitteiden pelillistämiseen, seurantaan ja liikedatan analysointiin. Työskentelin neljän hengen monialaisessa tiimissä ja vastasin kokonaan projektin web-puolen ohjelmoinnista.

Oma roolini

Työskentelin neljän hengen monialaisessa tiimissä ja vastasin 100-prosenttisesti projektin web-puolen ohjelmoinnista, neuroverkon toteutuksesta sekä sen koulutusdataa vastaanottavasta backendistä.

Teknologiat
  • TypeScript
  • React
  • Vite
  • Three.js
  • GraphQL
  • Node.js
  • MongoDB
  • JWT
  • AES-salaus
  • .NET
  • Unity-integraatio
  • Machine Learning
Tärkeimmät toteutukset
  • Suunnittelin ja toteutin React-web-alustan ja Node.js/GraphQL-backendin alusta asti sekä MongoDB-datamallin, autentikoinnin ja palvelininfrastruktuurin.
  • Rakensin fysioterapeutin työkalut potilashallintaan, harjoitteiden määräämiseen, 3D-esikatseluun, suoritusten tarkasteluun, viestintään ja kipuasteikkopalautteeseen.
  • Toteutin Three.js-pohjaisen 3D-harjoite-editorin ja liikedataputken, joka muunsi Quest 3 -käsienseurantadatan selaimessa toistettavaksi animaatiodataksi.
Lisää teknisiä yksityiskohtia
  • Toteutin Unity-sovelluksen käyttämät backend-rajapinnat autentikointiin, harjoitedatan vaihtoon ja liikedatan vastaanottamiseen.
  • Suunnittelin ja toteutin neuroverkon alusta asti proof-of-conceptia varten, jossa tutkittiin fysioterapialiikkeen virheellisen suorituksen tunnistamista liikedatasta.
  • Suunnittelin neuroverkon koulutusdatan: yhdestä fysioterapialiikkeestä kerättiin noin 1 000 suoritusta, joista noin puolet tehtiin oikein ja puolet tarkoituksella virheellisesti.
  • Rakensin backendin, joka vastaanotti Quest-laitteelta kerätyn liikedatan neuroverkon koulutusta varten. Quest-laitteen datankeruusovellus oli toisen tiimin jäsenen toteuttama.
  • Toteutin roolipohjaiset käyttöoikeudet, backendin kautta rajatun tietokantayhteyden sekä AES-salauksen potilaaseen viittaavalle tallennetulle datalle. Testauksessa ei käytetty oikeaa potilasdataa.
  • Fysioterapeuttien käyttäjätestauksessa web-järjestelmä todettiin toimivaksi ja riittävän helposti opittavaksi.

Autonomisen telakuorma-auton reitinhallintajärjestelmä

TypeScriptillä toteutettu insinöörityöjärjestelmä autonomisen telakuorma-auton visuaaliseen reittien luontiin, ajoneuvokohtaiseen komentojen välitykseen ja reaaliaikaiseen simulaatioseurantaan.

Oma roolini

Ainoa kehittäjä, joka vastasi frontendistä, backendistä, WebSocket-protokollasta, simulaattorista, dokumentaatiosta ja järjestelmäarkkitehtuurista.

Teknologiat
  • TypeScript
  • React
  • Vite
  • Leaflet
  • Node.js
  • WebSocket
  • JSON
Tärkeimmät toteutukset
  • Rakensin järjestelmän insinöörityönä autonomisen telakuorma-auton reittien visuaaliseen luontiin ja hallintaan.
  • Järjestelmän tavoitteena oli siirtyä suorasta kauko-ohjauksesta kohti reittipohjaista autonomista hallintaa, kun taas täysi esteiden väistöön perustuva autonomia rajattiin työn ulkopuolelle.
  • Rakensin React- ja Leaflet-karttakäyttöliittymän, jossa käyttäjä voi lisätä, siirtää ja poistaa reittimerkkejä, ja reitti piirtyy automaattisesti GPS-pisteiden välille.
Lisää teknisiä yksityiskohtia
  • Mallinsin reitit GeoJSONilla sekä reittimetadatalla, kuten reitin nimellä ja pisteiden tyypeillä: alku-, väli- ja loppupiste.
  • Toteutin TypeScriptillä Node.js WebSocket -palvelimen reaaliaikaiseen kommunikaatioon, ajoneuvokohtaisiin tunnisteisiin, komentojen välitykseen ja tilapäivityksiin.
  • Rakensin ajoneuvosimulaattorin, joka ylläpitää omaa GPS-sijaintia ja suuntaa muistissa, reagoi komentoihin kuten oikea ajoneuvo ja seuraa reittikomentoja yksinkertaistettuna GPS-linjaseuraajana.
  • Lisäsin turvallisuustoiminnon, jossa yhteyden katkeaminen lähettää pysäytyssignaalin kaikille yhdistetyille ajoneuvoille.
  • Varmensin järjestelmän usealla samanaikaisella simuloidulla ajoneuvolla ja dokumentoin toteutuksen jatkokehitystä varten.
  • Järjestelmän kommunikaatio saatiin yhdistettyä ajoneuvon tietokoneeseen asti. Koko reitinhallintajärjestelmää ei insinöörityön aikana vielä otettu end-to-end-käyttöön varsinaisessa ajoneuvossa.

TKIO-Finder

Aikajana: 1/2026 – 5/2026

Metropolialle tilaajaprojektina toteutettu full-stack-demo TKI-projektipaikkojen löydettävyyden sekä opiskelijoiden ja projektien välisen yhteyden parantamiseen.

Oma roolini

Vastasin pääosin backend-kehityksestä, tietokantasuunnittelusta, autentikoinnista, julkaisusta ja infrastruktuurista.

Teknologiat
  • TypeScript
  • React
  • Vite
  • Google OAuth2
  • PostgreSQL
  • Node.js
Tärkeimmät toteutukset
  • Metropolia toimi projektin oikeana tilaajana. Toteutus rakennettiin toimivaksi demoksi järjestelmäkonseptista, jota voitaisiin myöhemmin jatkokehittää varsinaiseen käyttöön.
  • Toteutin kevyen matchmaking-työnkulun, jossa opiskelija voi tykätä projektipaikasta, liittää mukaan lyhyen viestin ja muodostaa matchin projektin omistajan kanssa, jos molemmat osoittavat kiinnostusta.
  • Suunnittelin PostgreSQL-tietokantamallin käyttäjille, työ-/projektipaikoille, hakemuksille ja matcheille.
Lisää teknisiä yksityiskohtia
  • Toteutin full-text-haun ja suodattimet, kuten sijainnin ja paikan tyypin, jotta projektimahdollisuuksia olisi helpompi selata.
  • Lisäsin Google OAuth2 -autentikoinnin ja rajasin käytön Metropolian hallinnoimiin sähköpostitileihin, erillisillä opiskelija-, henkilökunta- ja ylläpitäjärooleilla.
  • Toteutin profiili- ja ilmoituskohtaiset CRUD-ominaisuudet opiskelijoille ja henkilökunnalle.
  • Julkaisin projektin omalle palvelimelle käyttäen Nginxiä, PM2:ta, reverse proxy -konfiguraatiota, HTTPS:ää, domain-asetuksia, palvelinprosessien hallintaa ja CI/CD-putkea.
  • Sain projektista korkeimman arvosanan.

Muut projektit

Portfolio

Next.js:llä toteutettu monikielinen portfolio, jonka tarkoitus on esittää projektit, tekninen vastuu, CV ja yhteystiedot selkeästi rekrytoijille ja teknisille arvioijille.

Teknologiat
  • TypeScript
  • Next.js
  • next-intl
  • CSS Modules
  • Vercel
Tärkeimmät toteutukset
  • Suunnittelin ja toteutin monikielisen portfoliosivuston projektieni, osaamiseni, CV:ni ja yhteystietojeni esittelyyn.
  • Rakensin responsiivisen käyttöliittymän CSS-moduleilla ja pidin rakenteen selkeänä sekä ylläpidettävänä.
  • Lisäsin sivukohtaiset metatiedot, kieliversioiden canonical- ja alternate-linkit sekä JSON-LD-rakenteista dataa hakukonenäkyvyyttä varten.
Lisää teknisiä yksityiskohtia
  • Julkaisin sivuston Vercelissä ja hyödynsin Vercel Analyticsia kävijäseurannan tueksi.