• Rezultati Niso Bili Najdeni

Razvojspletneaplikacijezaupravljanjeletalskeˇsole ˇZigaBenko

N/A
N/A
Protected

Academic year: 2022

Share "Razvojspletneaplikacijezaupravljanjeletalskeˇsole ˇZigaBenko"

Copied!
54
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za raˇ cunalniˇ stvo in informatiko

Ziga Benko ˇ

Razvoj spletne aplikacije za upravljanje letalske ˇ sole

DIPLOMSKO DELO

VISOKOˇSOLSKI STROKOVNI ˇSTUDIJSKI PROGRAM PRVE STOPNJE

RA ˇCUNALNIˇSTVO IN INFORMATIKA

Mentor : doc. dr. Rok Rupnik

Ljubljana, 2021

(2)

COPYRIGHT. Rezultati diplomske naloge so intelektualna lastnina avtorja in Fakultete za raˇcunalniˇstvo in informatiko Univerze v Ljubljani. Za objavo in koriˇsˇcenje rezultatov diplomske naloge je potrebno pisno privoljenje avtorja, Fa- kultete za raˇcunalniˇstvo in informatiko ter mentorja.

Besedilo je oblikovano z urejevalnikom besedil LATEX.

(3)

Kandidat: Ziga Benkoˇ

Naslov: Razvoj spletne aplikacije za upravljanje letalske ˇsole

Vrsta naloge: Diplomska naloga na visokoˇsolskem programu prve stopnje Raˇcunalniˇstvo in informatika

Mentor: doc. dr. Rok Rupnik

Opis:

Analizirajte informacijske potrebe letalske ˇsole s poudarkom na upravljanje le-te. Prouˇcite tudi ogrodje Laravel. Nato na podlagi tega ogrodja in drugih iz vaˇse strani izbranih tehnologij razvijte spletno aplikacijo za upravljanje letalske ˇsole.

Title: Development of an online flight school management system Description:

Analyse the information needs of flight school, with a focus on it’s manage- ment. Do a research on framework Laravel. Then based on that framework and others of your choice, develop an online flight school management system.

(4)
(5)

Zahvalil bi se mentorju doc. dr. Roku Rupniku, za vse smernice in pomoˇc pri diplomskem delu. Posebna zahvala gre moji druˇzini za vso izkazano pod- poro tekom moje izobraˇzevalne poti. Najveˇcjo zahvalo pa posveˇcam svoji par- tnerici Neji za vso potrpeˇzljivost in motivacijo.

(6)
(7)

Kazalo

Povzetek Abstract

1 Uvod 1

1.1 Cilj diplome . . . 1

1.2 Pregled sorodnih primerov . . . 2

1.3 Struktura diplome . . . 2

2 Orodja in tehnologije 3 2.1 Zaledni del spletne aplikacije . . . 3

2.2 Predstavitveni del spletne aplikacije . . . 4

2.3 Orodje za konsistentno razvijanje aplikacije na razliˇcnih na- pravah . . . 4

3 Ogrodje Laravel 9 3.1 MVC arhitektura . . . 10

3.2 Eloquent . . . 13

3.3 Blade . . . 15

4 Razvoj spletne aplikacije 17 4.1 Analiza . . . 17

4.2 Naˇcrtovanje . . . 19

4.3 Vodenje projekta . . . 20

4.4 Razvoj spletne aplikacije . . . 21

(8)

4.5 Vmesno testiranje . . . 22

4.6 Optimizacija . . . 22

4.7 Objava spletne aplikacije . . . 23

5 Predstavitev spletne aplikacije 27 5.1 Upravljanje z uporabniki . . . 28

5.2 Rezervacijski sistem . . . 29

5.3 Beleˇzenje letov . . . 33

5.4 Souporaba gradiva in datotek . . . 34

6 Sklep 37 6.1 Ugotovitve . . . 37

6.2 Vizija projekta . . . 37

6.3 Naˇcrtovane posodobitve . . . 38

Literatura 39

(9)

Seznam uporabljenih kratic

kratica angleˇsko slovensko HTML hypertext markup language oznaˇcevalni jezik API application programming in-

terface

aplikacijski programski vme- snik

MVC model view controller model pogled kontroler SQL structured query language strukturiran poizvedbeni jezik ORM object-relational mapping objektno-relacijsko preslika-

vanje

NPM node package manager orodje za upravljenje s paketi AJAX asynchronous JavaScript and

XML

asinhron JavaScript in XML XML Extensible markup language razˇsirljiv oznaˇcevalni jezik

IP internet protocol spletni protokol

(10)
(11)

Povzetek

Naslov: Razvoj spletne aplikacije za upravljanje letalske ˇsole Avtor: Ziga Benkoˇ

V okviru diplomske naloge so predstavljene prednosti uporabe naprednega ogrodja za razvoj kompleksnih, sodobnih in predvsem varnih spletnih apli- kacij - Laravel. Moderne metode razvoja, ki omogoˇcajo tako celovit, kot tudi konsistenten potek snovanja projekta, so uprizorjene v spletni aplika- ciji za vodenje letalske ˇsole. Spletna aplikacija je bila razvita po modulih (med seboj neodvisnimi deli), ki informacijsko podpirajo ˇstevilne procese v letalski ˇsoli. Natanˇcneje je predstavljena logika rezervacije letov, ki podpira ˇstevilne robne pogoje, ki niso redki v letalski ˇsoli. Poleg tehniˇcne realizacije, je predstavljeno tudi vodenje samega projekta, komunikacija z naroˇcnikom ter metode testiranja na resniˇcnih uporanikih. Ker projekti, kot je slednji nikoli niso povsem zakluˇceni, je v zakljuˇcnem delu diplomskega dela pred- stavljena tudi vizija in naˇcrti za nadgradnjo sistema, ki se bodo ˇcez ˇcas ˇse ˇsirili.

Kljuˇcne besede: spletna aplikacija, Laravel, testiranje na uporabnikih, le- talska ˇsola, vodenje projektov.

(12)
(13)

Abstract

Title: Development of an online flight school management system Author: Ziga Benkoˇ

In the scope of this bachelor’s thesis, advantages were described of using advanced framework for development of modern, complex and safe web ap- plicaitons - Laravel. Modern aspects of complex full-stack development are presented in creation of flight school management system. Web application was developed in modules (mutually independent parts) which supports most of the processes in flight school. The flight booking logic is presented in more detail, supporting a number of edge cases that are often in flight school. In addition to technical realization, project management, communication with client and testing on real users are also presented. Because projects like the latter are never completely finished, vision and future plans for improving the system are described at the end of the thesis.

Keywords: web application, Laravel, testing on users, flight school, project management.

(14)
(15)

Poglavje 1 Uvod

S problematiko vodenja letalske ˇsole sem se seznanil, ko smo v domaˇcem podjetju ustanovili letalsko ˇsolo za enomotorna letala pred pribliˇzno tremi leti. Ker je pri letalstvu ˇse posebej pomembna natanˇcnost, menim, da bi spletna aplikacija, ki informacijsko podpira ˇstevilna opravila, priˇsla ˇse kako prav letalskim ˇsolam v Sloveniji in drugje po svetu. Za razvoj aplikacije, je nujno potrebno izbrati tudi primerno orodje in tehnologije, da bo potek razvoja ˇcimbolj nemoten in celovit.

1.1 Cilj diplome

V letalstvu je avtomatizacija kompleksnih opravil kljuˇcnega pomena za celo- vito in varno upravljanje z letali, piloti in ostalimi udeleˇzenci, ki so vkljuˇceni v procese letalske ˇsole. Kot prvi cilj diplome smo si zastavili implementacijo rezervacij in kontrole letov. Za beleˇzenje letov obstaja z zakonom predpisana vsebina in oblika, ki ju je moˇzno voditi tudi v elektronski obliki. Poleg imple- mentacije kompleksnejˇsih modulov, pa v poˇstev pridejo prav tako osnovne komponente vsakega sistema za upravljanje, kot so pregled in vzdrˇzevanje podatkov o uporabnikih, obveˇsˇcanje uporabnikov, deljenje datotek in gra- diva, itd. Poleg omenjenih programskih reˇsitev, je cilj tudi predstaviti me- tode snovanja, testiranja, vodenja projekta ter nenazadnje tudi sodelovanja

1

(16)

2 Ziga Benkoˇ z naroˇcnikom, ki je v veˇcini projektov kljuˇcen, a pogosto precej zanemarjen del razvoja programske opreme.

1.2 Pregled sorodnih primerov

Na temo spletnih aplikacij za vodenje razliˇcnih opravil, je diplomskih nalog kar nekaj [7, 11, 14]. Kljub temu, da je to zelo priljubljena tematika, je ideja o vodenju letalske ˇsole in njenih problematik precej specifiˇcna. V koli- kor pa gledamo na aplikacijo, kot na posamezne module, pa lahko najdemo podobne naloge. Nekaj diplomskih nalog je bilo napisanih na temo rezerva- cijskega sistema, ki bo eden kljuˇcnih modulov moje diplomske naloge, vendar v obstojeˇcih, se le-ta uporablja za drugaˇcne namene [16, 15].

1.3 Struktura diplome

Diplomsko delo je razdeljeno na pet glavnih poglavji, Orodja in tehnologije, Ogrodje Laravel, Razvoj spletne aplikacije, Predstavitev spletne aplikacije in Sklep. V prvem so predstavljeni principi in ogrodja uporabljena med samim razvojem in struktura sistema v okolju vsebovalnikov (ang. containers). V drugem poglavju se poglobimo v ogrodje Laravel in napredne metodologije, ki jih uporablja za olajˇsan in konsistenten razvoj naprednih spletnih aplika- cij. V glavnem delu oz. tretjem poglavju je opisan razvoj aplikacije ter vse operacije, ki so bile potrebne za uspeˇsno izvedbo. V poglavju predstavitev aplikacije, so predstavljeni posamezni segmenti skupaj s slikovnim gradivom za laˇzjo vizualizacijo. V zadnjem poglavju je predstavljena vizija in naˇcrti za nadaljni razvoj ter ˇsirjenje aplikacije.

(17)

Poglavje 2

Orodja in tehnologije

To poglavje je razdeljeno glede na vsebinski pomen posameznega orodja. Sle- dnja so na kratko opisana v podpoglavjih, kjer je razloˇzena njihova uporaba in prednosti.

2.1 Zaledni del spletne aplikacije

Ceprav zaledni del velja za tistega, ki ni viden ciljnim uporabnikom, staˇ struktura in uporabljena orodja za dobro izvedbo nadvse pomembna. Res je, da se morda napake v zalednem delu navzven nebodo takoj videle, vendar lahko zaradi ˇsirokega razpona pravic in dostopa do podatkov, naredijo ogro- mno ˇskode, kakor je ˇze znano iz slabih izkuˇsnej veˇcjih korporacij po svetu.

2.1.1 PHP

Res je, da programski jezik PHP v danaˇsnji moderni dobi spletnih razvi- jalcev ne slovi kot najboljˇsa izbira, pa vendar ga uporablja velika veˇcina spletnih strani (kar 80%)[13]. Izbira jezika PHP za ta projekt, ne temelji na ˇcrednemu nagonu, ampak na moˇcni bazi zvestih uporabnikov, ki si preko spletnih forumov redno pomagajo in svetujejo med seboj.

Veliko uporabnikov ˇse ne naredi neko orodje tudi kvalitetno za upo- rabo. Slednje nam omogoˇcajo napredna ogrodja, ki odpravijo veˇcino slabosti

3

(18)

4 Ziga Benkoˇ ˇsibkejˇsih jezikov, kot jePHP. Najbolj popularen je Laravel, ki konkurira tudi sodobnejˇsim ogrodjem z zaneslivejˇsimi jeziki, kot so Python-ov Django itd.

Laravel je v tretjem poglavju predstavljen nekoliko podrobneje. Tam so opisane metodologije in arhitektura, ki ga naredijo enega najvarnejˇsih in najpriljubljenih ogrodij v svetu spletnega razvijanja.

2.1.2 Mysql in Phpmyadmin

Za manevriranje s podatki se v konjunkciji s programskim jezikom PHP, uporablja MySql z uporabniˇskim vmesnikom Phpmyadmin. Zato ima tudi Laravel za slednjega privzeto podporo, kljub temu, da podpira ˇse mnoge druge.

2.2 Predstavitveni del spletne aplikacije

Na uporabniku vidnemu delu spletne aplikacije, je prav tako zelo pomembna izbira tehnologij, saj te neposredno vplivajo na prvi vtis konˇcnega produkta.

Sama struktura je, kot velika veˇcina spleta, zgrajena v jezikuHTMLz ogrod- jemBootstrap, ki zagotavlja modernejˇsi izgled uporabljenih komponent. Ker je zasnova sistema za upravljanje precej zahtevna, smo uporabili spletno pre- dlogo poimenovanoAdminLTE, ki prinese ˇze oblikovane komponente, pregle- dne menije in enostavne a strukturirane strani. [1]

2.3 Orodje za konsistentno razvijanje aplika- cije na razliˇ cnih napravah

Ker se streˇzniˇsko okolje pogosto razlikuje od razvijalskega, je vedno do- bro izbrati neko obliko virtualizacije, katera nam omogoˇci konsistenco med razliˇcnimi napravami uporabljenimi tekom razvoja in kasneje med testira- njem in v produkciji.

(19)

Diplomska naloga 5

2.3.1 Docker

Docker je najpopularnejˇsa oblika virtualizacije za spletne aplikacije. Poleg konsistence med razliˇcnimi starˇsevskimi sistemi prinese tudi organizacijsko strukturo, ki veˇca robustnost in skalabilnost samega sistema. Docker temelji na vsebovalnikih (ang. containers), ki predstavljajo virtualizacijo okolja, ki ga naˇsa aplikacija potrebuje. Pogosto se pri razvijanju sreˇcamo z okoljem, ki ima veˇc vsebovalnikov, ki med seboj komunicirajo in delijo vire. Za takˇsno obliko virtualizacije potrebujemo orodje docker compose, ki na podlagi kon- figuracisjke datoteke docker-compose.yml ustvari potrebne vsebovalnike za delovanje aplikacije (Slika 2.1) [3][4].

Slika 2.1: Primer datoteke docker-compose.yml.

(20)

6 Ziga Benkoˇ

2.3.2 Sail

Sail je Laravelov paket, ki za veˇcino kompleksen Docker poenostavi v en sam ukaz v ukazni vrstici. Ker je paket Sail razvit iz strani uporabnikov in razvijalcev Laravela, je slika simuliranega operacijskega sistema pripravljena za takojˇsnjo uporabo. Edina posodobitev, ki smo jo naredili v predpripra- vljeni docker-compose.yml datoteki, je uvedba Phpmyadmin orodja, za laˇzje upravljanje s podatkovnimi bazami (Slika 2.2).

Slika 2.2: Implementacija modula phpmyadmin v docker-compose.yml dato- teki.

Za vkljuˇcitev orodja Sail v naˇs projekt smo uporabili orodje Composer, ki prenese paket iz uradnega skladiˇsˇca PHP modulov.

composer require laravel/sail --dev

Ko je Sail vkljuˇcen v projekt aplikacije, je orodje potrebno ˇse namestiti.

Za namestitev uporabimo Laravelov Artisan, ki doda ustrezno konfiguracij- sko datoteko v naˇs projekt.

php artisan sail:install

Zadnja stvar, ki jo je potrebno storiti za uspeˇsno vzpostavitev Docker virtualizacije v naˇsem projektu, je pognati vse vsebovalnike. To storimo z ukazom sail up.

(21)

Diplomska naloga 7 ./vendor/bin/sail up

Naˇs projekt je tako dostopen na lokalnem omreˇzju loclahost oz. na IP naslovu 127.0.0.1. Za dostop do podatkovne baze smo namestili vmesnik Phpmyadmin, ki je prav tako dostopen na lokalnem naslovu na vratih (ang.

port) 8081, ki so nastavljena v konfiguracijski datoteki docker-compose.yml (Slika 2.2).

(22)

8 Ziga Benkoˇ

(23)

Poglavje 3

Ogrodje Laravel

Laravel je odprtokodno ogrodje enega najpopularnejˇsih jezikov za razvoj sple- tnih aplikacij - PHP. Kljub slabemu glasu, po katerem je jezik PHP zelo prepoznaven v sodobni dobi razvijalcev, Laravel z zdruˇzevanjem naprednih funkcionalnosti razliˇcnih obstojeˇcih ogrodji, prinaˇsa varen, razˇsirljiv in eno- staven naˇcin grajenja tako osnovnih kot kompleksnejˇsih spletnih aplikacij.

Temelji na arhitekturi MVC (Model View Controller), ki poleg zanesljive varnosti omogoˇca tudi konsistentno strukturo samega sistema, zaradi ˇcesar je enostavno razˇsirljiv. Poleg omenjenih prednosti v sami zasnovi, Laravel prav tako vkljuˇcuje mnogo ostalih uporabnih gradnikov. Eden najpomemb- nejˇsih je zagotovo Composer, ki omogoˇca enostavno prikljuˇcitev paketov iz spleta. Takoj za njim je posebej potrebno omeniti orodje Artisan, ki preko komandne vrstice opravi veˇcino trdega dela namesto razvijalca. Sledijo ˇse ORM orodje Eloquent, ki omogoˇca varno in strukturirano gradnjo SQL po- izvedb ter predlogno ogrodje Blade, ki v navidez enostavne HTML predloge vkljuˇcuje logiko s katero prikazujemo v kontrolerju zgenerirane objekte. Poleg omenjenih prednosti in orodji se v Laravelu skriva ˇse mnogo funkcionalnosti, ki niso zajete v spektru te diplomske naloge, a so vseeno kljuˇcne za spletne aplikacije drugaˇcne narave. [10]

9

(24)

10 Ziga Benkoˇ

3.1 MVC arhitektura

MVC arhitektura v svoji zrelosti presega tudi sam splet, saj so jo programerji zaˇceli uporabljati ˇze v osemdesetih za grajenje uporabniˇskih vmesnikov s programskim jezikom Smalltalk-80. Arhitektura je zasnovana na principu, da mora biti programska logika loˇcena od prezentacijske. Predstavitev ter manipulacija informacije v omenjeni arhitekturi, je abstraktno prikazana na sliki 3.1. [6]

Slika 3.1: Abstrakcija MVC arhitekture.

3.1.1 Model

Prvi gradnik arhitekture MVC je Model, ki predstavlja sloj za manipulacijo podatkov. Pogosto je predstavljen kot sloj, ki sprejme podatke iz drugih slojev in jih spremeni v bolj logiˇcno obliko, ki je nato lahko sprocesirana s preostalimi sloji arhitekture. Model je pogosto predstavljen tudi kot poslovni ali domenski sloj.

V bolj praktiˇcni razlagi je model uporabljen kot posrednik med podat- kovno bazo in kontrolnim delom, ki po konˇcanem procesiranju podatkov zno- traj modela, prikaˇze smiselno oblikovan rezultat v pogledu (ang. View) (Slika

(25)

Diplomska naloga 11 3.2). [6]

Slika 3.2: Abstrakcija poslovnega sloja.

Glavne naloge sloja Model v Laravel-u so:

• Pridobivanje podatkov iz podatkovne baze

• Validacija podatkov

• Shranjevanje podatkov

• Posodabljanje podatkov

• Brisanje podatkov

3.1.2 View

Pogled (ang. View) je sloj, ki upravlja s predstavitveno logiko v arhitekturi MVC. Pod predstavitveno logiko vmeˇsˇcamo vse, kar je prikazano konˇcnemu uporabniku. V fazi predstavitve podatkov, kontrolni del posreduje podatke vsakemu pogledu, ki potem na podlagi teh podatkov ustvari dokument in ga prikaˇze uporabniku (Slika 3.3). V modernem svetu vsa ogrodja uporabljajo predlogovne jezike, ki poleg prikaza standardnih HTML objektov, omogoˇcajo tudi enostavne koncepte programskih jezikov, kot so: zanke, pogojni stavki,

(26)

12 Ziga Benkoˇ sklicovanje na zunanje datoteke itd. Podrobnejˇse funkcije sloja pogled in predlogovnih jezikov so predstavljene v poglavju Blade, ki je predlogovni jezik ogrodja Laravel. [6]

Slika 3.3: Abstrakcija sloja pogled.

3.1.3 Controller

Ceprav je arhitektura MVC zgrajena, da deluje kot celota, je vseeno kontrolniˇ del tisti, ki naredi najveˇc. V Kontrolerju (ang. Controller) se izvede glavna logika spletne aplikacije. Veˇcina opravil, ki se dogajajo v tipiˇcni spletni aplikaciji se zgodi v kotrolnem delu arhitekture. Obdela se zahteva poslana iz pogleda, glede na pridobljeno zahtevo se naredi poizvedba na podatkovni nivo, nato se ti podatki obdelajo ter poˇsljejo nazaj v pogled, kjer so prikazani konˇcnemu uporabniku (Slika 3.4).[6]

(27)

Diplomska naloga 13

Slika 3.4: Abstrakcija kontrolnega sloja.

3.2 Eloquent

Ker velika veˇcina spletnih aplikacij, razvitih v jeziku PHP uporablja relacij- ske podatkovne baze, se poizvedbe piˇsejo v jeziku SQL. Eden veˇcjih proble- mov SQL-a je, da je zelo enostavno spremeniti ali celo izbrisati vnose kar preko obrazca prikazanega na spletni aplikaciji (SQL injection napad). Za prepreˇcitev takˇsnih spletnih napadov, je potrebno vsak parameter poslan v zaledni del obdelati z ustreznim orodjem za preverjanje podatkov (ang. va- lidator). Poleg same varnosti, pa je pri SQL-u problem tudi slaba ponovna uporabnost rezultatov poizvedbe. Oba omenjena problema reˇsi ORM prin- cip, ki ne le preverja vse parametre, temveˇc rezultat poizvedbe spremeni v objekt, ki je nato enostavneje in hitreje dostopan iz zaledne strani aplikacije.

Laravel uporablja ORM Eloquent, ki je ˇze integriran v ogrodje ob inicializa- ciji projekta (Slika 3.5).

(28)

14 Ziga Benkoˇ

Slika 3.5: Primer Eloquent poizvedbe.

Eloquent pravtako omogoˇca migracije s katerimi je naˇcrtovanje, gradnja, posodabljanje in prenos podatkovne baze v produkcijo konsistentno in eno- stavno (Slika 3.6).[5]

Slika 3.6: Primer Eloquent migracije za tabelo rezervacije.

(29)

Diplomska naloga 15

3.3 Blade

Laravel je ogrodje primerno tako za manjˇse kot za veˇcje spletne aplikacije.

Pri slednjih pogosto naletimo na ponavljajoˇce se vzorce pri implementaciji uporabniˇskih vmesnikov. Ena izmed pomembnejˇsih funkcionalnosti, ki jo do- prinesejo predlogovni vmesniki kot je Laravel-ov Blade, je soupuraba istega uporabniˇskega vmesnika v razliˇcnih delih aplikacije. Poleg moˇznosti soupo- rabe, pa Blade omogoˇca tudi uporabo osnovne logike iz programskih jezikov, kot so pogojni stavki, zanke, manevriranje z nizi itd. Tako je prikaz podat- kov poslanih iz kontrolnega sloja, veliko enostavnejˇsi, kot bi bil sicer (Slika 3.7).[2]

Slika 3.7: Primer uporabe Blade zanke in souporabe datotek.

(30)

16 Ziga Benkoˇ

(31)

Poglavje 4

Razvoj spletne aplikacije

4.1 Analiza

Prvi faza razvoja je analiza, torej ugotoviti kako reˇsiti probleme, ki se po- javljajo v letalski ˇsoli oz. najti probleme na katere udeleˇzenci sploh ˇse niso naleteli, ter za te ponuditi reˇsitev v obliki spletne aplikacije. Zaˇcelo se je z opisom dejavnosti in dogodkov, ki jih izvaja lastnik letalske ˇsole. Na zaˇcetku je bilo takoj razvidno, da si lastnik veliko pomaga s programsko opremo Mi- crosoft Excel, kjer si je naredil razpredelnice za laˇzje vodenje. Vse obstojeˇce razpredelnice smo skupaj pregledali, nato nam je lastnik pri vsaki obrazloˇzil, kakˇsen je namen le teh.

Ob pregledu dokumentov je obrazloˇzil tudi teˇzave na katere je naletel med uporabo programske opreme Microsoft Excel. Te smo brez problema reˇsili s spletno aplikacijio.

Cilj je bil, da ˇcim veˇc funkcionalnosti, ki so do sedaj bile podprte z Exce- lovimi tabelami, prenesemo v bodoˇci sistem. Najoˇcitnejˇsi modul je bil seveda rezervacijski, ki je lastniku povzroˇcal tudi najveˇc teˇzav (Slika 4.1). Poskusil je tudi ˇstevilne obstojeˇce alternative, vendar so bile vse preveˇc kompleksne ali pa preprosto niso nudile vseh funkcionalnosti, ki si jih je lastnik ˇzelel.

Za laˇzjo vizualizacijo kompleksnejˇsih modulov smo si pomagali z diagrami uporabe (Slika 4.2).

17

(32)

18 Ziga Benkoˇ

Slika 4.1: Naroˇcnikova verzija beleˇzenja rezervacij v Excel-u.

Slika 4.2: Diagram uporabe modula za upravljanje z rezervacijami in leti.

(33)

Diplomska naloga 19

4.2 Naˇ crtovanje

Zaradi ˇstevilnih neuspelih projektov iz preteklosti, katerih obseˇznost smo podcenjevali, smo se pri tem projektu zelo dobro zavedali, kako pomembne so faze razvoja, in da prostora za povrˇsnost ni. Projekt smo okvirno ˇze naˇcrtovali kar nekaj ˇcasa pred samim zaˇcetkom, a veˇcinoma le v mislih in brez prave strukturiranosti. Poznavanje problematike letalske ˇsole, nam je kljub slabi zaˇcetni organizaciji, zelo olajˇsalo prve faze razvoja. Poleg ideje po dobri organiziranosti, smo se zavedali, da brez sodelovanja z lastnikom letalske ˇsole, projekta ne bo moˇzno izvesti tako kvalitetno in celovito kakor sicer.

4.2.1 Naˇ crtovanje podatkovne baze

Kljub natanˇcnim analizam na zaˇcetku projekta, ˇse vedno nismo bili povsem prepriˇcani, kakˇsen bo dejanski obseg spletne aplikacije. Naˇcrtovanja podat- kovne baze smo se zato lotili postopno. Najprej smo poskuˇsali kategorizirati posamezne podatkovne zahteve in jih logiˇcno razdeliti v podkategorije. Tako smo dobili osnovne tabele, za katere smo vedeli, da se bodo kasneje ˇse precej razˇsirile - tako v smislu atributov, kot tudi ˇstevilu tabel in njihovih relacij (Slika 4.3).

(34)

20 Ziga Benkoˇ

Slika 4.3: Osnovne tabele in njihove relacije.

4.3 Vodenje projekta

4.3.1 Sodelovanje z naroˇ cnikom

Sodelovanje z naroˇcnikom (lastnikom letalske ˇsole) je bilo, kljub temu da se zelo dobro poznamo, sprva nekoliko oteˇzeno. Na zaˇcetku smo se pogovarjali o aplikaciji brez kakrˇsnekoli strukturiranosti, kar ni prineslo dobrih rezul- tatov. Za poveˇcanje efektivnosti naˇse komunikacije in pospeˇsitev izvedbe projekta smo se odloˇcili za uvodni sestanek, kjer smo natanˇco pregledali in analizirali domeno, ter se dogovorili za nadaljne enotedenske sestanke, kjer smo pozorno spremljali napredek projekta in odpravili morebitne nespora- zume. Poleg fiziˇcnih sestankov, smo za komunikacijo uporabljali platformo Trello, ki je nudila moˇznost porazdeljevanja in dodajanja opravil, popravkov in morebitnih ˇzelj naroˇcnika (Slika 4.4).

(35)

Diplomska naloga 21

Slika 4.4: Platforma Trello z opravili razdeljenimi v kategorije.

4.4 Razvoj spletne aplikacije

4.4.1 Vzpostavitev projekta

V tej fazi so bili naˇcrti pripravljeni za izvedbo v praktiˇcnem okolju in temu primerna orodja. Prvi del razvojne faze je bila vzpostavitev novega repozito- rija na portalu GitLab. GitLab nam za strukturiran razvoj omogoˇca uporabo vej, ki odraˇzajo doloˇceno stanje projekta. V naˇsem projektu smo uporabili tri glavne veje,master, ki predstavlja produkcijsko vejo, staging, ki se uporablja za zdruˇzevanje razliˇcnih segmentov in za testiranje vseh kot celoto, in vejo development, ki je uporabljena za projekt v razvijalski fazi, ki lahko vsebuje tudi napake ali nedokonˇcane segmente. Nato je sledila vzpostavitev Lara- vel projekta in namestitev orodja Sail, ki je olajˇsalo virtualizacijo projekta.

Sledilo je uresniˇcenje ˇze premiˇsljene podatkovne baze. Ker Laravel ponuja napreden naˇcin pisanja migracij, je bila vzpostavitev baze hitra. Razvoj se je nadaljeval pri dodajanju predlog za predstavitveni del, kontrolnih datotek za implementacijo logike v zalednem delu in konfiguracija poti (ang. routes).

(36)

22 Ziga Benkoˇ

4.5 Vmesno testiranje

Med razvijanjem aplikacije je bilo zelo pomembno, da je bil lastnik letalske ˇsole na tekoˇcem z napredovanjem razvoja. Tako bi lahko pravoˇcasno ugotovili napaˇcno razumevanje iz naˇse strani in poslediˇcno napaˇcno implementacijo.

V zaˇcetni fazi je sistem deloval le na naˇsem lokalnem okolju. Tako je lastnik letalske ˇsole aplikacijo testiral le na naˇsem raˇcunalniku, vsaj prve funkcionalnosti.

Kasneje smo aplikacijo naloˇzili na privatni streˇznik in dostop omogoˇcili le lastniku. Ob vsaki veˇcji posodobitvi smo lastnika obvestili, da je popravke lahko pregledal in nam ob morebitnih nesporazumih podal konstruktiven predlog kaj in kako izboljˇsati.

4.6 Optimizacija

V tej toˇcki je bilo za nami ˇze nekaj iteracij testiranja, kjer smo zaznali tudi teˇzave z zmogljivostjo (ang. performance). Glavna ˇsibkost sistema, je bila nalaganje vseh rezervacij naenkrat, kljub temu, da so bile vidne le za trenutni pogled (dan, teden, mesec). Ta teˇzava se je s ˇstevilom vnesenih rezervacij veˇcala, zato je bilo potrebno spremeniti pristop k poizvedovanju podatkov za ta segment. Namesto nalaganja vseh rezervacij v kontrolnem delu, smo v pogledu naredili AJAX zahtevo v zaledni del, kjer se je naredila poizvedba le za rezervacije, ki morajo biti prikazane za trenutno izbrani pogled.

Nepotrebne poizvedbe so se dogajale tudi na drugih delih sistema. Za laˇzje iskanje takˇsnih primerov, smo si pomagali z orodjemLaravel Debugbar, ki v razvojni fazi pripomore z uporabnimi informacijami o zmogljivosti strani, ˇstevilu izvedenih poizvedb, strukturiranimi sporoˇcili o morebitnih napakah, velikosti pogledov itd. (Slika 4.5) [8]

(37)

Diplomska naloga 23

Slika 4.5: Orodje Laravel Debugbar.

4.7 Objava spletne aplikacije

4.7.1 Postopek

Sam postopek prenosa projekta v produkcijsko okolje je bil zelo enostaven.

Ker smo uporabljali orodje Git, smo imeli na voljo veje, ki so ponazarjale trenutno stanje projekta. Kot prvo objavo aplikacije smo projekt prenesli na naˇs testni streˇznik, ki je javno dostopen le avtoriziranim upoabnikom.

Na streˇzniku smo najprej izvedli ukaz clone, ki naredi kopijo repozitorija na mestu, kjer je ta ukaz poklican.

git clone <povezava do projekta na GitLab-u>

Ker imamo zaklenjen repozitorij, je bilo potrebno izvesti tudi avtentikacijo.

Zatem smo izvedli ukaz za spremembo veje na staging.

git checkout staging

Kadar so se v razvojni fazi naredile spremembe je bilo potrebno razvijal- sko vejo najprej zdruˇziti v staging. GitLab ima ˇze vnaprej pripravljen vme- snik za laˇzji nadzor nad spremembami pripravljenih vej za zdruˇzitev (Slika 4.6).

Ko so vse posodobitve v veji za testiranje (staging) smo izvedli ˇse Git ukazpull, ki je posodobitve osveˇzil ˇse na streˇzniˇskem delu.

git pull

(38)

24 Ziga Benkoˇ

Slika 4.6: GitLab uporabniˇski vmesnik za zdruˇzitev vej (ang. Merge request).

Kljub temu, da so v tej toˇcki vse posodobitve projekta na ciljnem streˇzniku, sama aplikacija ˇse ne deluje. Ob vsaki posodobitvi se najprej zaˇzene ukaz artisan down, ki naˇso aplikacijo zaˇcasno ustavi. Nato je potrebno posodobiti oz. namestiti morebitne nove module z orodjem Composer. Ukazu dodamo tudi dodatne parametre, ki orodju Composer sporoˇcijo, da nameˇsˇca pakete za produkcijsko okolje.

composer install --no-interaction --no-dev --prefer-dist

Ko so vsi paketi nameˇsˇceni, je potrebno pognati ˇse morebitne nove ali po- sodobljene migracije. Tudi ˇce v naˇsi posodobitvi nismo spreminjali migracij, Laravelova dokumentacija predlaga, da v vsakem primeru poˇzenemo Artisan ukaz za izvedbo migracij.

php artisan migrate

Nazadnje je potrebno ponovno omogoˇciti naˇso aplikacijo z ukazomartisan up.

(39)

Diplomska naloga 25 Takˇsna oblika posodabljanja streˇzniˇskega sistema povzroˇci ˇcas nedose- gljivosti aplikacije (ang. down time) [9], ki v nekaterih primerih resniˇcno ni zaˇzeljen. Reˇsitev za ta problem je, da ob posodobitvi naˇs projekt prenesemo v novo mapo na streˇzniku, poˇzenemo vse zgoraj opisane korake in na koncu le spremenimo povezavo (symlink) do projekta na novo ustvarjeno mapo. Ta metoda nam omogoˇca, da se naˇsa aplikacija posodobi brez kakrˇsnega koli sledu o izpadu ali nedosegljivosti aplikacije [17].

Za objavo na produkcijski streˇznik, je postopek skoraj identiˇcen. Razlika je le v tem, da je potrebno zdruˇziti vejo staging in master, kar smo storili le v primeru, da je veja staging dobro potestirana in brez napak ali ne dokonˇcanih segmentov (Slika 4.7).

Slika 4.7: Ukazno okno produkcijskega streˇznika, kjer so izvedeni vsi ukazi.

4.7.2 Objava prve razliˇ cice

Prva razliˇcica aplikacije je bila objavljena, takoj ko so delovale rezervacije (ˇse v zelo okorni obliki). Zaˇcetne razliˇcice so bile namenjene temu, da smo se lahko seznanili s streˇznikom lastnika in preizkusili ali sistem deluje identiˇcno kot v lokalnem okolju. V tej toˇcki smo pravtako prilagodili lokalne nastavi- tve orodja Docker, da so se ujemale s konfiguracijami novo vzpostavljenega streˇznika.

(40)

26 Ziga Benkoˇ V prvih raliˇcicah je dostop do objavljene aplikacije ˇse vedno imel le la- stnik, tako da se je lahko bolje seznanil z aplikacijo in se jo navadil upora- bljati. Skupaj smo izvedli tudi nekaj simulacij razliˇcnih dogodkov, ki bi se lahko kasneje v produkciji pojavili.

Prva javna razliˇcica je bila objavljena, ko smo skupaj z lastnikom le- talske ˇsole dobro potestirali aplikacijo. Najprej smo dostop omogoˇcili le inˇstruktorjem, saj je njihova uporaba nekoliko bolj zahtevna od uˇcencev in najemnikov. Nazadnje pa ˇse preostalim uporabnikom.

(41)

Poglavje 5

Predstavitev spletne aplikacije

V tem poglavju je aplikacija natanˇcneje opisana po posameznih modulih, ki jo sestavljajo. Moduli so v zaporedju, kot so nastajali. Pri vsakem je najprej predstavljeno naˇcrtovanje in raziskava, kjer obrazloˇzimo iz kje so izhajale prve ideje za omenjen segment in kako smo se lotili naˇcrtovanja za razvoj le tega. Nato sledi opis podrobnejˇse logike segmenta, kjer so opisane vse omejitve in natanˇcna navodila, kako ta deluje in kdo ima dostop do njega.

Nenazadnje je predstavljena ˇse implementacija, kjer je okvirno razloˇzeno s kakˇsnimi metodami je bil modul implementiran. Na koncu, je tudi nekaj slikovnega gradiva za laˇzjo vizualizacijo posameznega segmenta (Slika 5.1).

Slika 5.1: Posnetek zaslona nadzorne ploˇsˇce spletne aplikacije.

27

(42)

28 Ziga Benkoˇ

5.1 Upravljanje z uporabniki

Ker je aplikacija prvotno namenjena uporabnikom, je upravljanje le-teh kljuˇcnega pomena. Tako smo kot prvo implementirali vmesnik za upravljanje z upo- rabniki, ki so tako ali drugaˇce vpleteni v procese letalske ˇsole. ˇZe iz zaˇcetka razvoja je bilo razvidno, da bodo razliˇcni uporabniki imeli dostop do posame- znih segmentov sistema. To dejstvo je napeljalo k uvedbi sistema ”uporabik - vloga - dovoljenje”, ki preverja dostop uporabnikov za posamezen segment.

Vsakemu uporabniku je dodeljena vsaj ena vloga, ki je povezana na mnoga dovoljenja. Dovoljenja pa so v zalednem delu uporabljena kot avto- rizacija za posamezne segment informacijskega sistema. Trenutno v sistemu obstaja pet razliˇcnih nivojev uporabnikov oz. vlog: Administrator, Superu- porabnik, Inˇstruktor, Uˇcenec in Najemnik. ˇStevilo vlog je dinamiˇcno in se na ˇzeljo naroˇcnika lahko poljubno tudi spreminja (Slika 5.2). [12]

Slika 5.2: Posnetek zaslona vmesnika za upravljanje z uporabniki.

5.1.1 Implementacija

Poleg glavne tabele uporabnikov sta tukaj pomoˇzni tabeli vlog ter dovoljenj.

Te tabele so med seboj povezane z relacijami 1 proti mnogo (1:n). V Laravelu

(43)

Diplomska naloga 29 se za preverjanje dovoljenj uporablja vmesnik (Middleware), ki ob vstopu na katerokoli pot v sistemu, preveri ali ima prijavljen uporabnik ustrezna dovo- ljenja. Sama implementacija za preverjanje dovoljenj je enostavna pravtako v zalednem (Slika 5.4) kot predstavitvenem delu (Slika 5.3).[12]

Slika 5.3: Primer preverjanja dovoljenj v predstavitvenem delu.

Slika 5.4: Primer preverjanja dovoljenj v zalednem delu.

5.2 Rezervacijski sistem

Takoj za implementacijo sistema za upravljanje z uporabniki je sledil razvoj rezervacijskega segmenta. Organizacija rezervacij letal je ˇze sama po sebi zelo kompleksna, zato je bila tukaj ˇse posebej pomembna dobro premiˇsljena stra- tegija implementacije. Na zaˇcetku, smo poskuˇsali implementirati enostavno verzijo koledarja, ki bi omogoˇcala strukturiran pregled nad rezervacijami.

Kljub nenajslabˇsim zaˇcetkom, smo se kasneje vseeno odloˇcili za ˇzeobstojeˇco reˇsitev, ki je kljub svoji brezplaˇcni razliˇcici omogoˇcala ˇstevilne enostavne in kompleksnejˇse operacije, potrebne pri razvoju omenjenega segmenta.

Segment je predstavljen v obliki koledarja, katerega pogled je mogoˇce spreminjati med tedenskim, meseˇcnim in dnevnim pogledom dogodkov. Naj-

(44)

30 Ziga Benkoˇ bolj uporaben in tudi privzet je tedenski pogled, ki dogodke posameznega dneva izriˇse vertikalno. Dogodek je predstavljen s kratkim povzetkom infor- macij rezervacije, ter velikostjo (viˇsino), ki nakazuje na dolˇzino leta. Dolˇzino leta je moˇzno razbrati iz ˇcasovnega traka na levi strani koledarja (Slika 5.6).

Dodajanje nove rezervacije je moˇzno doseˇci s klikom na ˇzeljen termin.

Uporabniku se odpre pojavno okno, kamor lahko vpiˇse podrobnosti rezer- vacije. V kolikor omenjen termin ni na voljo, se uporabniku interaktivno obarvajo izbirna polja za ˇcas rezervacije (Slika 5.5).

Slika 5.5: Posnetek zaslona vmesnika za dodajanje rezervacije.

Kljuˇcno je bilo tudi oblikovanje samega dogodka. Dodana sta bila dela za pripravo in ˇciˇsˇcenje letala (obarvana sivo), ki naj bi vsakemu udeleˇzencu vzela vnaprej doloˇcen ˇcas. Tako je ob rezervaciji potrebno poleg trajanja leta upoˇstevati tudi pripravo na let in ˇciˇsˇcenje letala. Ker ima letalska ˇsola veˇc letal, je moˇzno menjati poglede rezervaciji, glede na izbrano letalo. Za enostavnejˇso vizualizacijo imajo rezervacije razliˇcnih letal tudi razliˇcno barvo rezervacij. Rezervacije pa se znotraj enega letala razlikujejo tudi po prosoj- nosti, kar nakazuje katera rezervacija pripada trenutno prijavljenemu upo- rabniku.

(45)

Diplomska naloga 31

Slika 5.6: Posnetek zaslona vmesnika za upravljanje z rezervacijami.

5.2.1 Implementacija

Kot ˇze omenjeno v prvem delu poglavja, smo najprej poizkuˇsali z lastno im- plementacijo koledarja dogodkov, kar se je kaj kmalu izkazlo kot nesmiselno zaradi preobseˇznih potreb po naprednih funkcionalnostih. Tako smo po ne- kajdnevnih raziskavah obstojeˇcih orodji priˇsli do zakljuˇcka da je Java Script orodje FullCalendar najboljˇsa izbira. Vzpostavitev modula je bila enostavna, saj ga je moˇzno vkljuˇciti kar preko paketnega orodja NPM. Sam koledar do- godkov pa deluje tako, da se dogodki dinamiˇcno ter asinhrono nalagajo iz zalednega dela preko Java Script knjiˇznice AJAX glede na izbran teden. Im- plementirali smo tudi preverjanje prekrivanja rezervacij, saj je bilo potrebno zagotoviti letala veˇcjemu ˇstevilu najmenikov (Slika 5.7). Preverjanje prekri- vanja je asinhrono, kar pomeni, da aplikacija javi uporabniku napaˇcen vnos termina preden lahko uporabnik konˇca rezervacijski postopek.

(46)

32 Ziga Benkoˇ

Slika 5.7: Izsek kode za prepreˇcevanje prekrivanja rezervacij.

(47)

Diplomska naloga 33

5.3 Beleˇ zenje letov

Eden glavnih namenov spletne aplikacije za vodenje letalske ˇsole, je prenesti nepotrebno fiziˇcno dokumentacijo v bolj pregledno digitalno obliko. V le- talstvu je nujno potrebno beleˇziti vsak polet z letalom, zato mora imeti po zakonu vsako letalo svojo knjiˇzico za pregled zgodovine poletov. Od pred kratkim pa se je zakon spremenil tako, da je sedaj moˇzno te knjiˇznice hraniti tudi v digitalni obliki v kolikor so enostavno dostopne. Tukaj pride na vrsto segment za beleˇzenje letov. ˇCeprav imamo v tej toˇcki ˇze delujoˇc rezervacijski sistem, ˇse ne pomeni, da je sama rezervacija bila tudi izvedena.

Let je moˇzno vnesti s klikom na obstojeˇco rezervacijo. Uporabnik lahko lete dodaja le svojim rezervacijam. Ob kliku se mu odpre pojavno okno v ka- terem opiˇse let, vzletne in pristajalne podatke ter nivo goriva ob zakljuˇcenem letu. Seveda je vnos leta odvisen od dovoljenj, ki se nanaˇsajo na prijavlje- nega uporabnika. Uˇcenci imajo ˇze v osnovi omogoˇcen le pogled koledarja, zato morajo njihovo rezervacijo in let dodati inˇstruktorji. Za razliko od rezer- vacij, se vneˇsen polet lahko prekriva s tujo rezervacijo. Slednje bi se zgodilo v primeru, da bi najemnik letel dlje, kot je bila vneˇsena njegova rezervacija.

Kljub temu, da je to robni primer, je lete potrebno beleˇziti ˇcasovno toˇcno takrat kot so bili izvedeni (Slika 5.8).

5.3.1 Implementacija

Sama implementacija dodajanja letov je v osnovi precej podobna rezervaci- jam, saj gre v osnovi za zelo podoben princip. Razlika je le v tipu vnosnih podatkov ter, da je let mogoˇce dodati le ˇze prej obstojeˇci rezervaciji. V kolikor najemnik naredi napako pri vnosu rezervacije, je potrebno obvestiti administratorja, saj rezervacijo, ki je v preteklosti ni moˇzno veˇc urejati. Ta funkcionalnost je dodana zato, da se preteklih vnosov ne spreminja brez ad- ministratorjeve prisotnosti in tako povzroˇci morebitna zmeda v zapisih.

(48)

34 Ziga Benkoˇ

Slika 5.8: Dodan let k rezervaciji.

5.4 Souporaba gradiva in datotek

Letalska ˇsola, kot vsaka druga ustanova, ki ponuja izobraˇzevanja v razliˇcnih vejah, se teˇzko izogne kupom teˇzko organizirane dokumentacije in gradiva.

Zelja lastnika je bila tukaj jasna; enostavna pregledna ploˇsˇˇ ca, ki po vlogi upo- rabnika prikaˇze ustrezno gradivo. Orodij za upravljanje gradiva je mnogo, zato se sprva implementacija le tega zdi nesmiselna. Kljub ˇstevilnim ob- stojeˇcim orodjem, ki smo jih skupaj z lastnikom preuˇcevali, je pri vsakem bilo preveˇc pomankljivosti, ki bi aplikacijo po nepotrebnem oteˇzile in nare- dile kompleksnejˇso.

Naroˇcnik je v osovi ˇzelel datoteke razdeliti v glavne segmente, ki bi bili vidni le doloˇcenim uporabnikom (Slika 5.9). Tukaj je vnaprej pripravljen sis- tem uporabnikov s pravicami priˇsel zelo prav, saj smo jih enostavno povezali v ˇzeljene segmente. Nujno potreben je bil tudi predogled gradiv, saj bi bilo prenaˇsanje le tega zelo nepriroˇcno za konˇcne uporabnike. Poleg pregleda, pa so na voljo tudi funkcije urejanja, prenaˇsanja, nalaganja, brisanja datotek in map, ki je omejeno zgolj na administracijo (Slika 5.10).

(49)

Diplomska naloga 35

Slika 5.9: Posnetek zaslona vmesnika za upravljanje z datotekami.

Slika 5.10: Pregled datotek in map v skupnem gradivu.

(50)

36 Ziga Benkoˇ

5.4.1 Implementacija

Ker je aplikacija naloˇzena na streˇznik, ki ˇze ima pripravljen datoteˇcni sis- tem, je vkljuˇcitev tega v predstavitveni del aplikacije bila precej enostavna.

Potrebno je bilo le preslikati vsebino korenske mape (ang. root folder), ter prikazati njeno vsebino, glede na pravice trenutno prijavljenega uporabnika.

Za prikazovanje vsebine podmap, smo ob navigaciji beleˇzili sprotne mape in jih sestavili v pot, za katero smo na koncu izpisali vsebino datotek in morebitnih podmap (Slika 5.11).

Slika 5.11: Primer izpisa poti podmap v datoteˇcnem sistemu.

(51)

Poglavje 6 Sklep

6.1 Ugotovitve

Kot razvijalec zaˇcetnik, za katerega se trenutno smatram, menim, da mi je ta projekt prinesel neprecenljive izkuˇsnje iz strani komunikacije z naroˇcnikom, samostojnega vodenja projekta, stukturiranega programiranja in ˇse bi lahko naˇsteval. Vsekakor pa se najde ˇse veˇc stvari, ki bi jih lahko storili bolje in jih bom zaradi te izkuˇsnje pri naslednjih projektih izpeljal na povsem drugaˇcen naˇcin. Kljub temu, da sem se tega zavedal ˇze prej, sem spoznal, da se pri razvoju kompleksnejˇsih spletnih aplikacij ne gre le za tehniˇcno izvedbo, ampak predvsem za dobro strukturirano organizacijo in voljo do sodelovanja z naroˇcnikom. Te vrednote bom nedvomno lahko prenaˇsal na prihodnje projekte, pri katerih bom imel moˇcnejˇso podlago znanja in izkuˇsenj kot sem jih imel pri tem.

6.2 Vizija projekta

Kot svojih preteklih projektov tudi tega ne uvrˇsˇcam kot zakljuˇcenega. Me- nim, da se bo vedno pojavil segment, ki ga lahko izboljˇsam, ali funkcional- nost, ki jo lahko dodam. Ker sem se tega projekta lotil zelo strukturirano, tako iz vidika naˇcrtovanja in organizacije, kot pisanja same kode, vem, da ima

37

(52)

38 Ziga Benkoˇ lahko ta projekt potencial tudi v drugih poslovnih modelih. Prvi korak, ki bi ga izvedel, je posploˇsitev same aplikacije, da je laˇzje razˇsirljiva in ne tako toˇckovno usmerjena v letalstvo. Nato, bi poiskal najobetavnejˇse poslovne modele, ki bi potrebovali takˇsno aplikacijo. Pogovor z izkuˇsenimi podjetniki iz posameznih podroˇcji, bi pravtako pripomogel k uspeˇsni ˇsiritvi aplikacije.

6.3 Naˇ crtovane posodobitve

Kot ˇze omenjeno, se mi zdi posploˇsitev aplikacije zelo pomemben korak. Po- sploˇsitev pomeni, da je aplikacija prilagojena za razliˇcne oblike rezervacij, glede na potrebe naroˇcnika. V kolikor pa gledamo projekt zgolj v veji letal- stva, pa so posodobitve odvisne od trenutnega naroˇcnika in njegovih potreb.

Vsekakor je plan ˇsiriti aplikacijo tudi v veˇcje letalske organizacije, za katere verjamem, da bi jim takˇsna reˇsitev priˇsla zelo prav.

(53)

Literatura

[1] Integrate AdminLTE in Laravel Complete Guide. 2021. url:https://

scriptwriterph.com/laravel/integrate- adminlte- in- laravel/

(pridobljeno 14. 6. 2021).

[2] Laravel Blade Template Engine Explained. 2019.url:https://medium.

com/@ajtech.mubasheer/laravel-blade-template-engine-explained- f2f4add42c23(pridobljeno 18. 7. 2021).

[3] Learn Docker. 2021. url: https : / / www . ibm . com / cloud / learn / docker (pridobljeno 4. 9. 2021).

[4] Docker Compose Tutorial: advanced Docker made simple. 2021. url: https : / / www . educative . io / blog / docker - compose - tutorial (pridobljeno 4. 9. 2021).

[5] Eloquent ORM. 2018.url:https://stackify.com/laravel-eloquent- tutorial/(pridobljeno 18. 7. 2021).

[6] Arda Kilicdagi in H. Ibrahim Yilmaz.Laravel Design Patterns and Best Practices. Packt Publishing, 2014. isbn: 1783287985.

[7] MARKO KODRI ˇC. “Spletna aplikacija za vodenje projektov po me- todologiji Kanban”. Univerza v Ljubljani, Fakulteta za raˇcunalniˇstvo in informatiko, 2021. url: https : / / repozitorij . uni - lj . si / IzpisGradiva.php?lang=slv&id=125739.

[8] Laravel Debugbar. 2021.url:https://github.com/barryvdh/laravel- debugbar(pridobljeno 4. 9. 2021).

39

(54)

40 Ziga Benkoˇ [9] Laravel: How to automate deployment using git and webhooks. 2018.

url: https://medium.com/@gmaumoh/laravel-how-to-automate- deployment- using- git- and- webhooks- 9ae6cd8dffae (pridobljeno 4. 9. 2021).

[10] Laravel installation. 2021. url: https://laravel.com/docs/8.x/

installation(pridobljeno 3. 9. 2021).

[11] MARJAN MOHAR. “Aplikacija za spremljanje paketov dostavnih sluˇzb”.

Univerza v Ljubljani, Fakulteta za raˇcunalniˇstvo in informatiko, 2021.

url: https://repozitorij.uni- lj.si/IzpisGradiva.php?lang=

slv&id=125583.

[12] Laravel authorization and roles permission management. 2019. url: https://medium.com/swlh/laravel- authorization- and- roles- permission-management-6d8f2043ea20 (pridobljeno 8. 8. 2021).

[13] Programming languages technologies market share. 2021. url: https:

/ / www . wappalyzer . com / technologies / programming - languages (pridobljeno 3. 9. 2021).

[14] KLEMEN ˇSIBAL. “Spletna aplikacija za vodenje projektov”. 2020.

url: https://repozitorij.uni- lj.si/IzpisGradiva.php?lang=

slv&id=117265.

[15] JANEZ ˇSTOK. “Koncept informacijskega sistema rezervacij”. 2016.

url: https://repozitorij.uni- lj.si/IzpisGradiva.php?lang=

slv&id=80719.

[16] Nina Turina. “Oblikovanje prototipa mobilne aplikacije za rezervacijo letalskih kart”. 2020. url: https : / / repozitorij . uni - lj . si / IzpisGradiva.php?lang=slv&id=116952.

[17] Laravel Zero Downtime Deployment. 2018.url:https://www.toptal.

com / laravel / laravel - zero - downtime - deployment (pridobljeno 4. 9. 2021).

Reference

POVEZANI DOKUMENTI

Z razmahom raˇ cunalniˇ stva v oblaku se spreminja naˇ cin uporabe tehnologij in hkrati ponuja moˇ znost za razvoj sodobnejˇ sih storitev.. Namen diplomske naloge je raziskati moˇ

Razvoj spletne aplikacije za pregled poslovanja podjetja na podlagi podatkov, ki so bili zbrani v sistemu sledljivosti, vključuje uporabo standardov GS1 na področju omrežja

Uporabnik lahko sedaj na dogodek dodaja posamezne entitete, ki bodo igrale vlogo pri organizaciji in izvedbi tega dogodka. Doda lahko nastopajo č e, ki jih je prej

Omenjeno poglavje opisuje tehnologije in orodja, ki so bila uporabljena v okviru diplomskega dela za razvoj mobilne aplikacije za operacijski sistem Android.. Temelji na

21 5.6 Prikaz seznama izpitnih rokov v mobilno aplikacijo FriStudent 22 5.7 Prikaz prijave na izpitni rok v mobilni aplikaciji FriStudent.. 22 5.8 Prikaz dodajanja izpitnega roka

Diplomska naloga predstavlja razvoj spletne aplikacije ter mobilne aplikacije, ki omogoˇ ca nalaganje slik na streˇ znik, urejanje slik na streˇ zniku ali na lokal- nem raˇ

V tem poglavju bomo predstavili zasnovo spletne aplikacije z uporabo skupine tehnologij za razvoj spletnih aplikacij ANNE na strani streˇ znika ter zasnovo podatkovne baze..

Orodje bo uporabniku ponujalo možnost samodejnega shranjevanja podatkov v pomnilniku brskalnika, kjer mu bodo podatki na voljo tudi v primeru, ko bo uporabnik zaprl spletni