Harjoitteluportaali : Oppilaitoksen työharjoitteluprosessin hallinta hajautetulla arkkitehtuurilla
Rouvinen, Olli (2019)
Rouvinen, Olli
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201905149718
https://urn.fi/URN:NBN:fi:amk-201905149718
Tiivistelmä
Työn tavoitteena oli kehittää järjestelmä Lahden Ammattikorkeakoulun opiskelijoiden työharjoitteluprosessin hallintaan. Aiemmin käytössä ollut järjestelmä oli korvattava uudella, sillä se alkoi olla vanhentunut eikä enää toiminut uudemmilla selaimilla kunnolla. Työn aikana määriteltiin järjestelmän vaatimukset käyttötapausten perusteella ja suunniteltiin näiden pohjalta toimiva kokonaisuus. Järjestelmä toteutettiin hajautetun arkkitehtuurin järjestelmänä, jossa järjestelmän datan tarjoileva palvelinsovellus toteuttaa REST-rajapinnan asiakassovelluksen käytettäväksi. Työssä toteutettiin sekä palvelinsovellus että selaimessa toimiva asiakassovellus. Palvelinsovellus rakennettiin Node.js-JavaScript-suoritusympäristön päälle käyttäen Express-sovelluskehystä. Asiakassovellus ohjelmoitiin React-käyttöliittymäkirjastolla. Molempien sovellusten toteutuskielenä oli JavaScript. Työn toteutuksessa haasteiksi nousivat autentikaation ja erityisesti autorisoinnin toteutus. Palvelinsovelluksen autentikaatio kehitetiin yleisiä käytäntöjä noudattavana JWT-toteutuksena. Autorisointia varten kehitettiin Express-sovelluskehyksen middleware-ketjua hyödyntävä menetelmä API-polkujen suojaamiseen käyttäjän roolin perusteella sekä menetelmä yksittäisen käyttäjän pyyntöjen autorisointiin. Asiakassovellukseen kehitettiin vastaavanlainen menetelmä näkymien suojaukseen käyttäjän roolin perusteella. Työn tavoitteet saavutettiin: järjestelmällä voidaan hoitaa harjoitteluprosessi alusta loppuun jokaisen käyttäjäroolin kohdalla. Työn lopputuloksena huomattiin, että projektin koodi olisi ollut helpommin testattavaa ja ylläpidettävää, jos palvelinsovellukseen olisi lisätty erillinen DAL-kerros datan haun tehtäviä varten sekä käytetty kielenä TypeScriptiä tai muuta kieltä, jossa on staattinen tyyppijärjestelmä.