Ajanvarausjärjestelmä MERN-pinoa hyödyntäen
Paananen, Henna (2023)
Paananen, Henna
2023
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023060521261
https://urn.fi/URN:NBN:fi:amk-2023060521261
Tiivistelmä
Web-sovelluskehitykseen on tarjolla monia erilaisia teknologioita ja työkaluja, joita voidaan hyödyntää ohjelmistoprojektien kehityksessä. Näitä ovat muun muassa erilaiset ohjelmointikielet, sovelluskehykset ja tietokannat, joista voidaan muodostaa erilaisia teknologiapinoja.
Tämä opinnäytetyö keskittyy tutkimaan MERN-teknologiapinoa ja sen käyttömahdollisuuksia web-sovelluskehityksessä. Työssä käsitellään sen neljää avoimen lähdekoodin teknologiaa: MongoDB-tietokantaa, Express.js-sovelluskehystä, React-käyttöliittymäkirjastoa ja Node.js-ajoympäristöä. Opinnäytetyössä toteutetaan prototyyppisovellus käyttäen näitä teknologioita. Lisäksi käydään läpi sovelluskehityksen eri vaiheita, jotka ovat tässä projektissa määrittely, suunnittelu, toteutus, testaus ja julkaisu. Tässä opinnäytetyössä keskitytään erityisesti toteutusvaiheeseen, mutta myös muihin vaiheisiin tehdään tarkastelua projektin laajuuden mukaisesti.
MERN-pino on kokonaisuudessaan JavaScript-pohjainen teknologiapino. Sen tietokanta poikkeaa perinteisistä SQL-tietokannoista, sillä se on dokumenttiorientoitunut. Käyttöliittymäpuoli on kirjastopohjainen ja sen avulla on mahdollista rakentaa käyttöliittymä pienistä, itsenäisistä komponenteista. Taustapalveluna toimii Node.js ja sen päällä toimiva Express.js, joka hoitaa muun muassa HTTP-pyyntöjen käsittelyn ja virheiden hallinnan. Node.js mahdollistaa asynkronisten pyyntöjen käsittelyn, jolloin koodin ei tarvitse odottaa vastausta, vaan se voi jatkaa suoritustaan samanaikaisesti.
Opinnäytetyö toteutetaan sovelluskehityksen vaiheiden mukaisesti ja määrittelyssä esitetyt vaatimukset otetaan huomioon eri vaiheissa esimerkiksi koodiesimerkkien, testitulosten ja käyttöliittymäkuvien avulla. Toteutusvaiheessa käytiin läpi, kuinka pinon eri teknologioita ja niiden lisäosia voidaan hyödyntää ajanvarausjärjestelmää kehitettäessä.
Tuotoksena syntyi vaatimukset täyttävä, suunnittelun mukainen, toimiva ja testattu prototyyppisovellus, joka julkaistiin Oraclen pilvipalveluun. Opinnäytetyön eri vaiheissa syvennettiin ymmärrystä teknologiapinosta sekä kehitettiin JavaScript-osaamista.
Tämä opinnäytetyö keskittyy tutkimaan MERN-teknologiapinoa ja sen käyttömahdollisuuksia web-sovelluskehityksessä. Työssä käsitellään sen neljää avoimen lähdekoodin teknologiaa: MongoDB-tietokantaa, Express.js-sovelluskehystä, React-käyttöliittymäkirjastoa ja Node.js-ajoympäristöä. Opinnäytetyössä toteutetaan prototyyppisovellus käyttäen näitä teknologioita. Lisäksi käydään läpi sovelluskehityksen eri vaiheita, jotka ovat tässä projektissa määrittely, suunnittelu, toteutus, testaus ja julkaisu. Tässä opinnäytetyössä keskitytään erityisesti toteutusvaiheeseen, mutta myös muihin vaiheisiin tehdään tarkastelua projektin laajuuden mukaisesti.
MERN-pino on kokonaisuudessaan JavaScript-pohjainen teknologiapino. Sen tietokanta poikkeaa perinteisistä SQL-tietokannoista, sillä se on dokumenttiorientoitunut. Käyttöliittymäpuoli on kirjastopohjainen ja sen avulla on mahdollista rakentaa käyttöliittymä pienistä, itsenäisistä komponenteista. Taustapalveluna toimii Node.js ja sen päällä toimiva Express.js, joka hoitaa muun muassa HTTP-pyyntöjen käsittelyn ja virheiden hallinnan. Node.js mahdollistaa asynkronisten pyyntöjen käsittelyn, jolloin koodin ei tarvitse odottaa vastausta, vaan se voi jatkaa suoritustaan samanaikaisesti.
Opinnäytetyö toteutetaan sovelluskehityksen vaiheiden mukaisesti ja määrittelyssä esitetyt vaatimukset otetaan huomioon eri vaiheissa esimerkiksi koodiesimerkkien, testitulosten ja käyttöliittymäkuvien avulla. Toteutusvaiheessa käytiin läpi, kuinka pinon eri teknologioita ja niiden lisäosia voidaan hyödyntää ajanvarausjärjestelmää kehitettäessä.
Tuotoksena syntyi vaatimukset täyttävä, suunnittelun mukainen, toimiva ja testattu prototyyppisovellus, joka julkaistiin Oraclen pilvipalveluun. Opinnäytetyön eri vaiheissa syvennettiin ymmärrystä teknologiapinosta sekä kehitettiin JavaScript-osaamista.