Tapahtumapalvelun taustajärjestelmän toteuttaminen
Petrow, Mikael (2020)
Petrow, Mikael
2020
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-2020112724709
https://urn.fi/URN:NBN:fi:amk-2020112724709
Tiivistelmä
Opinnäytetyössä toteutettiin taustajärjestelmä sovelluskokonaisuudelle, joka koostui
tapahtumien tiedonkulkua parantavasta mobiilisovelluksesta, sekä sen hallintaan tarkoitetusta web-sovelluksesta. Kokonaisuuden tilaajana oli itsenäisen sahateollisuuden etujärjestö Sahateollisuus RY.
Taustajärjestelmä toteutettiin Node.js web-teknologialla ja palvelin Express.js sovelluskehyksellä. Ohjelmointi suoritettiin JavaScript ohjelmointikielellä. Taustajärjestelmän ominaisuuksiin kuuluu mobiilisovelluksessa esitettävien tapahtumien tietojen haku tietokannasta, tämän tiedon luominen, muokkaaminen ja poistaminen web-sovelluksella, sekä molempien käyttöliittymien autentikointi. Tiedonkulku taustajärjestelmän ja käyttöliittymien välillä tehtiin REST-arkkitehtuurimallin mukaisesti HTTP-pyynnöillä ja vastauksilla käyttäen Expressin reititintä. Taustajärjestelmän tietovarastona käytettiin MongoDB tietokantaa. Tietokannan tietojen mallintaminen ja validointi sekä tietokantakyselyt tehtiin käyttämällä NPM pakettienhallintajärjestelmän tarjoamaa mongoose moduulia. Autentikointi ja istunnon rajallisuus toteutettiin käyttämällä jsonwebtoken moduulin tarjoamia tunnuksia ja salasanojen salauksessa käytettiin bcrypt moduulia.
Työn tuloksena toteutettiin asiakasvaatimusten mukainen taustajärjestelmä mahdollistamaan sovelluskokonaisuuden käyttöliittymien toiminnallisuutta tiedon luomisen, hakemisen, päivittämisen ja poistamisen osalta, sekä autentikointi molemmille käyttöliittymille. Taustajärjestelmästä löytyy parannettavaa, mutta toteutusta voidaan sanoa onnistuneeksi, koska asiakasvaatimukset täytettiin ja asiakaspalaute on ollut positiivista. The goal of this thesis was to implement a backend for an event service. The service
consists of a mobile application designed to improve accessibility of information in
events and a web application used as an administrator panel for managing the data
accessed in the mobile application. The project was commissioned by Sahateollisuus
RY, an interest group of sawmill industry.
The backend was implemented using Node.js web technology and its server with Express.js. Code for the backend was written with JavaScript programming language.
Features of the backend include creation, reading, updating and deletion of data and
authentication for both frontends. Communication between the backend and the
frontends was implemented according to REST architectural constraints using HTTP
requests and responses and Express router. Modeling for the data stored in the
backends database was done with mongoose module provided by NPM package
manager. The database used was MongoDB. Authentication was implemented with
jsonwebtoken module to log in and limit session duration and bcrypt module to hash
passwords.
As a result, a backend was implemented for the service including features for data
management and authentication as client requested. What comes to the backend
there is room for improvement in many fields, but the implementation can be regarded
as successful as requirements were met and feedback from the client was positive.
tapahtumien tiedonkulkua parantavasta mobiilisovelluksesta, sekä sen hallintaan tarkoitetusta web-sovelluksesta. Kokonaisuuden tilaajana oli itsenäisen sahateollisuuden etujärjestö Sahateollisuus RY.
Taustajärjestelmä toteutettiin Node.js web-teknologialla ja palvelin Express.js sovelluskehyksellä. Ohjelmointi suoritettiin JavaScript ohjelmointikielellä. Taustajärjestelmän ominaisuuksiin kuuluu mobiilisovelluksessa esitettävien tapahtumien tietojen haku tietokannasta, tämän tiedon luominen, muokkaaminen ja poistaminen web-sovelluksella, sekä molempien käyttöliittymien autentikointi. Tiedonkulku taustajärjestelmän ja käyttöliittymien välillä tehtiin REST-arkkitehtuurimallin mukaisesti HTTP-pyynnöillä ja vastauksilla käyttäen Expressin reititintä. Taustajärjestelmän tietovarastona käytettiin MongoDB tietokantaa. Tietokannan tietojen mallintaminen ja validointi sekä tietokantakyselyt tehtiin käyttämällä NPM pakettienhallintajärjestelmän tarjoamaa mongoose moduulia. Autentikointi ja istunnon rajallisuus toteutettiin käyttämällä jsonwebtoken moduulin tarjoamia tunnuksia ja salasanojen salauksessa käytettiin bcrypt moduulia.
Työn tuloksena toteutettiin asiakasvaatimusten mukainen taustajärjestelmä mahdollistamaan sovelluskokonaisuuden käyttöliittymien toiminnallisuutta tiedon luomisen, hakemisen, päivittämisen ja poistamisen osalta, sekä autentikointi molemmille käyttöliittymille. Taustajärjestelmästä löytyy parannettavaa, mutta toteutusta voidaan sanoa onnistuneeksi, koska asiakasvaatimukset täytettiin ja asiakaspalaute on ollut positiivista.
consists of a mobile application designed to improve accessibility of information in
events and a web application used as an administrator panel for managing the data
accessed in the mobile application. The project was commissioned by Sahateollisuus
RY, an interest group of sawmill industry.
The backend was implemented using Node.js web technology and its server with Express.js. Code for the backend was written with JavaScript programming language.
Features of the backend include creation, reading, updating and deletion of data and
authentication for both frontends. Communication between the backend and the
frontends was implemented according to REST architectural constraints using HTTP
requests and responses and Express router. Modeling for the data stored in the
backends database was done with mongoose module provided by NPM package
manager. The database used was MongoDB. Authentication was implemented with
jsonwebtoken module to log in and limit session duration and bcrypt module to hash
passwords.
As a result, a backend was implemented for the service including features for data
management and authentication as client requested. What comes to the backend
there is room for improvement in many fields, but the implementation can be regarded
as successful as requirements were met and feedback from the client was positive.
