Päivystyskalenterisovellus Metatavu Oy:lle
Nykänen, Petri (2024)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202404267945
https://urn.fi/URN:NBN:fi:amk-202404267945
Tiivistelmä
Päivystyskalenteri on mikkeliläisen Metatavu-ohjelmointiyrityksen verkkosovellustoimeksianto. Sovelluksella seurataan Metatavun päivystävän henkilökunnan ajankohtia sekä päivystysvuoron palkanmaksun tilaa kalenterinäkymässä.
Metatavulla oli sovellusta edeltävä toteutus, joka oli listausnäkymä päivystysviikkonumeroista ja -henkilöistä.
Kyseistä sovellusta käytettiin pohjana uuden päivystyskalenterin toteutuksessa. Uusi toteutus lisättiin osaksi vastikään perustettua Metatavu Home -työajan seuranta-alustaa. Päivystyskalenterisovellus toteutettiin web-kehityksessä standardisoituneita teknologioita käyttäen, kuten TypeScript-ohjelmointikieltä sekä tämän React-kirjastoa ja Serverless-sovelluskehystä. Kokonaisuudessa hyödynnetään myös Amazon Web Services -pilvipalvelualustaa (AWS). AWS S3 -palvelua käytetään päivystystietoja sisältävien JSON-tiedostojen säilyttämiseen sekä AWS Lambda -funktioita näiden käsittelemiseen ja
lähettämiseen käyttöliittymään esitettäväksi.
Työssä käydään läpi kyseisiä teknologioita. TypeScriptia verrataan JavaScriptiin, josta TypeScript on staattiset tyypitykset sisältävä laajennus. JavaScript dynaamisena ja heikosti tyypitettynä kielenä ei vaadi tietotyyppien määrittämistä funktioiden parametreille tai muuttujille. Se mahdollistaa muuttujien arvojen uudelleenmäärittämisen mihin tahansa tietotyyppiin, mikä vähentää tarvittavaa syntaksia, mutta voi altistaa sovelluksen tyyppivirheille.
Työn toteutusvaiheessa esitellään projektin alustava suunnitelma, vanhan toteutuksen kehittämiskohteet ja uuden toteutuksen rautalankamalli. Palvelinpuolen toteutuksessa rakennettiin kolme AWS Lambda -funktiota. Yksi päivystystietojen hakemiseen, joka aktivoidaan kalenterinäkymään navigoidessa. Yksi päivystysvuoron palkanmaksun tilanpäivitykseen, joka aktivoidaan käyttöliittymän kautta. Yksi funktio päivystystietoja sisältävien tiedostojen luomiseen AWS S3 -palveluun, jonka aktivointi ajastetaan viikon välein. Funktiot määritettiin Serverless-sovellukseen, joka puolestaan tekee tarvittavat määritykset AWS-pilvialustalle.
Käyttöliittymä toteutettiin Metatavu Home -kehitysympäristöön käyttäen React-kirjastoa ja tämän Material UI -alikirjaston komponentteja. Komponentit määritettiin esittämään AWS Lambda -funktioista vastaanotettu data. Työn lopputulos vastasi toteutusvaiheen alussa tehtyä suunnitelmaa ja rautalankamallia.
Metatavulla oli sovellusta edeltävä toteutus, joka oli listausnäkymä päivystysviikkonumeroista ja -henkilöistä.
Kyseistä sovellusta käytettiin pohjana uuden päivystyskalenterin toteutuksessa. Uusi toteutus lisättiin osaksi vastikään perustettua Metatavu Home -työajan seuranta-alustaa. Päivystyskalenterisovellus toteutettiin web-kehityksessä standardisoituneita teknologioita käyttäen, kuten TypeScript-ohjelmointikieltä sekä tämän React-kirjastoa ja Serverless-sovelluskehystä. Kokonaisuudessa hyödynnetään myös Amazon Web Services -pilvipalvelualustaa (AWS). AWS S3 -palvelua käytetään päivystystietoja sisältävien JSON-tiedostojen säilyttämiseen sekä AWS Lambda -funktioita näiden käsittelemiseen ja
lähettämiseen käyttöliittymään esitettäväksi.
Työssä käydään läpi kyseisiä teknologioita. TypeScriptia verrataan JavaScriptiin, josta TypeScript on staattiset tyypitykset sisältävä laajennus. JavaScript dynaamisena ja heikosti tyypitettynä kielenä ei vaadi tietotyyppien määrittämistä funktioiden parametreille tai muuttujille. Se mahdollistaa muuttujien arvojen uudelleenmäärittämisen mihin tahansa tietotyyppiin, mikä vähentää tarvittavaa syntaksia, mutta voi altistaa sovelluksen tyyppivirheille.
Työn toteutusvaiheessa esitellään projektin alustava suunnitelma, vanhan toteutuksen kehittämiskohteet ja uuden toteutuksen rautalankamalli. Palvelinpuolen toteutuksessa rakennettiin kolme AWS Lambda -funktiota. Yksi päivystystietojen hakemiseen, joka aktivoidaan kalenterinäkymään navigoidessa. Yksi päivystysvuoron palkanmaksun tilanpäivitykseen, joka aktivoidaan käyttöliittymän kautta. Yksi funktio päivystystietoja sisältävien tiedostojen luomiseen AWS S3 -palveluun, jonka aktivointi ajastetaan viikon välein. Funktiot määritettiin Serverless-sovellukseen, joka puolestaan tekee tarvittavat määritykset AWS-pilvialustalle.
Käyttöliittymä toteutettiin Metatavu Home -kehitysympäristöön käyttäen React-kirjastoa ja tämän Material UI -alikirjaston komponentteja. Komponentit määritettiin esittämään AWS Lambda -funktioista vastaanotettu data. Työn lopputulos vastasi toteutusvaiheen alussa tehtyä suunnitelmaa ja rautalankamallia.