Building a custom timesheet service using LAMP stack
Tammelin, Carita (2020)
Tammelin, Carita
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-2020060216140
https://urn.fi/URN:NBN:fi:amk-2020060216140
Tiivistelmä
Opinnäytetyön toimeksianto oli kehittää tuntikirjausjärjestelmä pienyritykselle. Työn tavoitteena oli kehittää yrityksen tuntikirjausta, sekä parantaa työtehtävien seurantaa. Tutkimuksessa selvitettiin, onko mahdollista kehittää tuntikirjausjärjestelmä käyttäen Ubuntu-, Apache-, MySQL- ja PHP-teknologioita, siirtäen järjestelmän paperilta web-sivuille. Palvelun tavoitteena oli mahdollistaa työn tietojen siirtämisen tietokantaan käyttäen web-lomakkeita. Sen tuli myös yhdistää työtehtävät tehtyihin työtunteihin, sekä seurata työtehtävien tilaa. Lomakkeiden oli käsiteltävä sujuvasti erilaisia datatyyppejä.
Opinnäytetyön lopputavoite oli kehittää pienin toimiva tuote, joka suorittaisi kaikista tärkeimmät toiminnot. Päätavoite oli tallentaa tietoa ja päästä siihen käsiksi web-sivujen kautta. Tärkeää oli myös näyttää tietojen suhde toisiinsa. Ubuntu-käyttöjärjestelmä toimi palvelimen alustana ja muistina. Apache HTTP-palvelin siirsi tietoa käyttöjärjestelmän ja web-selaimen välillä. MySQL-relaatiotietokantapalvelin tallensi saadun tiedon tauluihin. Se myös tarjosi alustan, jolla tietokantataulujen suhteet määriteltiin. PHP ja Laravel mahdollistivat tietokantakyselyt web-sivuilla. Niiden avulla kerättiin, etsittiin ja esitettiin dataa selaimessa. Järjestelmän oli myös tärkeää erottaa käyttäjät toisistaan. Tämä toteutettiin Laravelin sisäänrakennetun todennusjärjestelmän kautta.
Opinnäytetyön päätavoitteet saavutettiin, mutta se ei riittänyt käyttöönotettavaksi järjestelmäksi. Tehdyn työn avulla tarvittavat parannukset kyseisellä järjestelmällä todettiin mahdolliseksi. Työllä todistettiin, että käyttäen LAMP-teknologioita ja Laravelia on mahdollista kerätä monenlaista dataa web-lomakkeilla. Mahdollista on myös yhdistää dataa ja tuoda sitä esille. The task the thesis addresses was assigned by EV-metalli Ky to improve the bookkeeping of the employees’ working hours, and better track the progress of work tasks. The research was made to find out if a timesheet service could be developed using a stack of Ubuntu, Apache, MySQL, and PHP. A virtual system was utilized to replace the use of paper. The objectives of the service were to add work data into the database via web forms, to connect the work tasks with the working hours spent on them and to track whether the task in question was performed. The web forms were to handle string, integer, float, date, Boolean, and file data.
The end goal of the thesis was to develop a minimum viable product that would perform the most essential functions. The main goal was the data insertion, being able to access the data through web pages and showing data in connection to each other. The Ubuntu operating system served as the server machine and memory. Apache HTTP server transferred data from Ubuntu to a web browser. The MySQL database server stored the acquired data. MySQL also provided a base for table relationships to connect different data tables. PHP and Laravel were used to store data using the web forms as well as to find data and present it on a web page. It was necessary for the service to be able to differentiate data based on the user. Timesheet data entered through a web form would be connected only to the current user. Laravel provided a built-in authentication system to handle user data.
The primary goals of the thesis assignment were achieved. However, it was not yet enough for the service being deployed; yet, with the research made during the development of the minimum viable product, the needed improvements were considered possible in the future. It proved that using the LAMP stack and Laravel collecting data via web forms, adding relations to them, and storing them into database was possible and suitable for such use.
Opinnäytetyön lopputavoite oli kehittää pienin toimiva tuote, joka suorittaisi kaikista tärkeimmät toiminnot. Päätavoite oli tallentaa tietoa ja päästä siihen käsiksi web-sivujen kautta. Tärkeää oli myös näyttää tietojen suhde toisiinsa. Ubuntu-käyttöjärjestelmä toimi palvelimen alustana ja muistina. Apache HTTP-palvelin siirsi tietoa käyttöjärjestelmän ja web-selaimen välillä. MySQL-relaatiotietokantapalvelin tallensi saadun tiedon tauluihin. Se myös tarjosi alustan, jolla tietokantataulujen suhteet määriteltiin. PHP ja Laravel mahdollistivat tietokantakyselyt web-sivuilla. Niiden avulla kerättiin, etsittiin ja esitettiin dataa selaimessa. Järjestelmän oli myös tärkeää erottaa käyttäjät toisistaan. Tämä toteutettiin Laravelin sisäänrakennetun todennusjärjestelmän kautta.
Opinnäytetyön päätavoitteet saavutettiin, mutta se ei riittänyt käyttöönotettavaksi järjestelmäksi. Tehdyn työn avulla tarvittavat parannukset kyseisellä järjestelmällä todettiin mahdolliseksi. Työllä todistettiin, että käyttäen LAMP-teknologioita ja Laravelia on mahdollista kerätä monenlaista dataa web-lomakkeilla. Mahdollista on myös yhdistää dataa ja tuoda sitä esille.
The end goal of the thesis was to develop a minimum viable product that would perform the most essential functions. The main goal was the data insertion, being able to access the data through web pages and showing data in connection to each other. The Ubuntu operating system served as the server machine and memory. Apache HTTP server transferred data from Ubuntu to a web browser. The MySQL database server stored the acquired data. MySQL also provided a base for table relationships to connect different data tables. PHP and Laravel were used to store data using the web forms as well as to find data and present it on a web page. It was necessary for the service to be able to differentiate data based on the user. Timesheet data entered through a web form would be connected only to the current user. Laravel provided a built-in authentication system to handle user data.
The primary goals of the thesis assignment were achieved. However, it was not yet enough for the service being deployed; yet, with the research made during the development of the minimum viable product, the needed improvements were considered possible in the future. It proved that using the LAMP stack and Laravel collecting data via web forms, adding relations to them, and storing them into database was possible and suitable for such use.