Web aplikacija za evidentiranje integrirane poljoprivredne djelatnosti Ferenc, Goran Undergraduate thesis / Završni rad 2019 Degree Grantor / Ustanova koja je dodijelila akademski / stručni stupanj: Polytechnic of Međimurje in Čakovec / Međimursko veleučilište u Čakovcu Permanent link / Trajna poveznica: https://urn.nsk.hr/urn:nbn:hr:110:276242 Rights / Prava: In copyright Download date / Datum preuzimanja: 2021-10-09 Repository / Repozitorij: Polytechnic of Međimurje in Čakovec Repository - Polytechnic of Međimurje Undergraduate and Graduate Theses Repository
36
Embed
Web aplikacija za evidentiranje integrirane poljoprivredne ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Web aplikacija za evidentiranje integriranepoljoprivredne djelatnosti
Ferenc, Goran
Undergraduate thesis / Završni rad
2019
Degree Grantor / Ustanova koja je dodijelila akademski / stručni stupanj: Polytechnic of Međimurje in Čakovec / Međimursko veleučilište u Čakovcu
Permanent link / Trajna poveznica: https://urn.nsk.hr/urn:nbn:hr:110:276242
Rights / Prava: In copyright
Download date / Datum preuzimanja: 2021-10-09
Repository / Repozitorij:
Polytechnic of Međimurje in Čakovec Repository - Polytechnic of Međimurje Undergraduate and Graduate Theses Repository
(engl. responsive mobile-first). Koristeći alate CSS, Javascript i jQuery biblioteke,
Bootstrap nudi već unaprijed dizajnirane predloške za HTML elemente, forme, gumbe,
navigacijske trake, kao i dodatne Javascript ekstenzije za validaciju polja za unos
podataka, prikaz dinamičkih prozora i sl. Najpopularnija komponenta Bootstrap alata je
njegov sustav rešetaka (engl. grid system) prikazan na Slici 1. Koristeći seriju spremnika,
redaka i kolona za raspored i poravnavanje elemenata, sustav nudi prilagodljiv dizajn na
uređajima bilo koje veličine ekrana, do najviše 12 kolona [8].
Slika 1. Bootstrap grid sustav
Izvor: autor
FontAwesome je skup ikona i fontova baziranih na CSS i LESS4 tehnologijama. Dave
Gandy napravio je FontAwesome za korištenje u Bootstrapu, no poslije je prerađen u
zaseban paket. Trenutna verzija, FontAwesome 5, sastoji se od dva dijela, besplatne
verzije (engl. FontAwesome Free) i plaćene verzije (engl. FontAwesome Pro). Besplatna
verzija sadrži oko 1500 ikona, dok plaćena verzija ima oko 7000 ikona [9].
4 LESS – stilski jezik (engl. Leaner Style Sheets).
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 11
2.5 PHP
PHP (engl. Hypertext Preprocessor) programski je jezik otvorenog kȏda namijenjen
prvenstveno programiranju dinamičnih web-stranica. PHP kao besplatan programski
jezik ističe se podrškom raznih baza podataka i web-protokola (POP35, HTTP6), kao i
dostupnošću brojnih programskih biblioteka. Prednost PHP jezika je mogućnost
izvršavanja kȏda na svim web-serverima i operativnim sustavima.
Prvu verziju PHP-a započeo je Rasmus Lerdorf 1994. godine kao skup programa
napisanih u programskom jeziku C, za praćenje broja posjetitelja na njegovog osobnoj
stranici. Kasnije je inicijalna verzija proširena dodatnim mogućnostima, kao što su
baratanje formama i komunikacija s bazama podataka, nazvana PHP/FI (engl. Personal
Home Page/Forms Interpreter). Preradom većeg dijela kȏda i promjenom naziva u PHP,
godine 1998. izlazi PHP 3. Stjecanjem sve veće popularnosti zbog svog otvorenog
pristupa prilikom razvoja i lakoće razvijanja web-aplikacija, PHP se kontinuirano
poboljšavao te je trenutna verzija PHP 7.
U današnje vrijeme, zbog kompleksnosti i sigurnosti PHP aplikacija, programeri često
koriste neke od alata baziranih na PHP jeziku. Neki od poznatih PHP alata su Laravel,
CakePhp, Symfony, CodeIgniter i WordPress [10].
2.6 MySQL
MySQL je sustav za upravljanje bazom podataka otvorenog kȏda baziran na SQL jeziku.
Razvoj MySQL-a započeo je 1994. godine u švedskoj tvrtki MySQL AB i prva verzija
dostupna javnosti izašla je 1995. godine. Zato što je MySQL besplatan i otvorenog kȏda,
ovaj je sustav zajedno s PHP-om stekao veliku popularnost u projektima otvorenog kȏda.
MySQL baza relacijskog je tipa, stabilna, s dobro dokumentiranim modulima te ima
podršku brojnih programskih jezika.
MySQL baza sprema sve podatke unutar tablica koje se sastoje od kolona i redova.
Element koji se sprema u bazu naziva se entitetom. Kolone služe za spremanje pojedinih
podataka o nekom entitetu, a redovi sadrže sve podatke jednog entiteta. Za definiranje
određenih odnosa između entiteta koriste se relacije. Relacije mogu biti jedan prema
5 POP3 – standardni protokol za elektroničku poštu (engl. Post Office Protocol 3). 6 HTTP – komunikacijski protokol između servera i klijenta (engl. Hyper Text Transfer Protocol).
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 12
jedan, jedan prema više, više prema jedan i više prema više. Za identifikaciju relacija
koriste se primarni ključevi ili PK koji se u tablici mogu pojaviti samo jedanput. Izgled
cijele baze podataka naziva se shemom baze.
Za izradu, traženje, ažuriranje i brisanje podataka u MySQL bazama koristi se strukturni
upitni jezik SQL (engl. Structured Query Language). SQL je danas najpopularniji jezik
za manipulaciju relacijskih baza podataka i standardiziran je preko ANSI7 i ISO8
standarda [11].
2.7 PHPMailer
PHPMailer je PHP biblioteka za sigurno i jednostavno slanje elektroničke pošte preko
PHP kȏda. Koristeći objektno orijentiranu sintaksu, PHPMailer biblioteka omogućuje
brzo kreiranje jednostavne ili napredne elektroničke pošte pomoću velikog broja funkcija
ili već napravljenih predložaka.
PHP sadrži ugrađenu mail() funkciju, koja zahtijeva aktivan podsustav elektroničke pošte
na serveru. Dok većina poslužitelja nudi takve podsustave, ponekad ti podsustavi nisu u
potpunosti podesivi ili ih treba dodatno instalirati na lokalnom proizvodnom okruženju,
npr. Windows sustavi.
Za slanje jednostavne pošte s običnim tekstom dovoljna je mail() funkcija, no brzo postaje
ograničavajuća kada se radi o slanju priloga ili HTML elektroničke pošte. Neke su
prednosti PHPMailer biblioteke slanje priloga ili HTML pošte u jednoj liniji kȏda, laka
promjena između SMTP9 korisničkih računa, slanje elektroničke pošte bez lokalnog
podsustava, upotreba OAuth210 autentifikacije na Gmail računu itd. [12]
7 ANSI – Američki nacionalni institut za standarde. 8 ISO – Međunarodna organizacija za normizaciju. 9 SMPT – komunikacijski protokol za prijenos poruka elektroničke pošte. 10 OAuth2 – protokol za sigurno dijeljenje podataka između različitih aplikacija.
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 13
2.8 DataTables
DataTables dodatak je otvorenog kȏda za jQuery biblioteku. Upotrebom DataTables
dodatka, standardne HTML tablice dobivaju napredne opcije, a neke od njih prikazane su
na Slici 2. Izvor podataka koji će se koristiti u DataTables tablicama može biti DOM,
Javascript polje, AJAX upit ili rezultat sa servera [13].
Neke od naprednih mogućnosti:
• Paginacija
• Brzo pretraživanje i filtriranje
• Sortiranje višestrukih kolona
• Laka promjena izgleda
• Lokalizacija sučelja.
Slika 2. DataTables napredne opcije
Izvor: autor
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 14
2.9 TCPDF
TCPDF je PHP biblioteka otvorenog kȏda za generiranje PDF11 dokumenata. Jedna je od
najpopularnijih PHP PDF biblioteka, ponajviše zbog toga jer je uključena u velik broj
CMS12 aplikacija kao Drupal, phpMyAdmin i Symfony. Biblioteka podržava sve
standardne formate stranica, PDF bilješke, tablice sadržaja, automatsko numeriranje
stranica, upravljanje zaglavljem i podnožjem, enkripciju dokumenta itd. [14]
11 PDF – format zapisa dokumenata (engl. Portable Document Format). 12 CMS – sustav koji omogućuje upravljanje sadržajem (engl. Content management system).
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 15
3. RAZVOJNO OKRUŽENJE
Najčešće korišten alat u pisanju programskog kȏda je uređivač teksta. Pri izradi zadatka,
korišten je Visual Studio Code. Za pokretanje servera, baze podataka i web-aplikacije
korišten je WampServer paket. Za pristup i rad s bazom podataka korišten je
phpMyAdmin.
3.1 Visual Studio Code
Visual Studio Code je uređivač teksta ili tekstni editor otvorenog kȏda dizajniran i kreiran
za lakši rad u razvoju aplikacija, prikazan na Slici 3. Uređivač teksta razvija tvrtka
Microsoft s podrškom za Windows, Linux i macOS operativne sustave. Visual Studio
Code baziran je na Electron frameworku, alatu otvorenog kȏda korištenog za izradu
desktop aplikacija pomoću web-tehnologija.
Poznat pod kraticom VS Code, uređivač teksta sadrži brojne pomoćne alate za pisanje
kȏda [15].
Neki pomoćni alati su:
• Inteligentno dovršavanje kȏda (engl. intelligent code completion)
• Isticanje sintakse (engl. syntax highlighting)
• Podudaranje zagrada (engl. bracket matching)
• Ugrađeni i prilagođeni predlošci kȏda (engl. snippets)
• Ugrađena Git13 kontrola i GitHub
• Moguća promjena teme i prečaca za tipkovnicu
• Instalacija ekstenzija za dodatnu funkcionalnost.
13 Git – distribuirani sustav za upravljanje izvornim kȏdom.
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 16
Slika 3. Sučelje Visual Studio Code alata
Izvor: autor
3.2 WampServer
WampServer ili WAMP (engl. Windows, Apache, MySQL, PHP) skup je programskih
alata i razvojna okolina za Windows sustave. Instalacijom WampServer paketa dobivaju
se alati potrebni za razvoj web-aplikacija na lokalnom računalu [16].
Funkcionalnosti WampServer paketa su:
• Upravljanje Apache14 i MySQL servisom
• Pristup serveru lokalnim računalom ili unutar lokalne mreže
• Instalacija i promjena Apache, MySQL i PHP verzija
• Podešavanje serverskih postavki
• Pristup zapisniku (engl. log file)
• Pristup PHP postavkama.
14 Apache – besplatan web poslužitelj/server.
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 17
3.3 phpMyAdmin
phpMyAdmin je besplatna administracijska web-aplikacija otvorenog kȏda za
upravljanje MySQL i MariaDB bazama podataka preko web-preglednika (Slika 4).
Napisan je u PHP jeziku, te je jedan od najpopularnijih MySQL administracijskih alata.
phpMyAdmin omogućava izvršavanje MySQL operacija preko korisničkog sučelja, kao
što su kreiranje nove baze, dodavanje, izmjena i brisanje tablica, dodavanje novih
korisnika i izmjena dozvola pristupa istih, izvršavanje SQL upita itd. [17]
Slika 4. Sučelje phpMyAdmin aplikacije
Izvor: autor
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 18
4. STRUKTURA BAZE PODATAKA
Aplikacija koristi relacijski model povezivanja podataka između tablica. Baza je u
potpunosti napravljena pomoću phpMyAdmin alata. Sastoji se od 12 tablica koje se mogu
podijeliti u 5 kategorija ovisno o njihovoj ulozi: tablice korisnika, gospodarstva,
zemljišta, raznih djelatnosti i odredišne stranice (Slika 5).
Slika 5. Prikaz baze podataka
Izvor: autor
Goran Ferenc Web-aplikacija za evidentiranje integrirane
poljoprivredne djelatnosti
Međimursko veleučilište u Čakovcu 19
4.1 Tablice korisnika
Ove tablice sadrže podatke o registriranim korisnicima, razini pristupa (korisnik ili
administrator), validaciji korisničkog računa, aktivnom gospodarstvu i podatke o izmjeni
lozinke.
Tablice korisnika:
• users – sadrži podatke o korisnicima, njihovu ulogu, koristi se za validaciju
korisničkog računa i upis trenutno odabranog gospodarstva
• pwd_reset – sadrži podatke za izmjenu lozinke.
4.2 Tablica gospodarstva
U tablici gospodarstva nalaze se svi podaci koje korisnik navede prilikom dodavanja
novog gospodarstva.
Tablica gospodarstva:
• business – sadrži podatke o unesenim gospodarstvima korisnika, npr. ime
gospodarstva, OIB15, MIBPG16, adresa, informacije za kontakt.
4.3 Tablica zemljišta
Tablica zemljišta sadrži podatke o unesenim zemljištima koje korisnik obrađuje s
trenutno selektiranim gospodarstvom.
Tablica zemljišta:
• fields – sadrži podatke o unesenim zemljištima koje korisnik obrađuje ili ima u
posjedu te relevantne informacije kao ime zemljišta, veličina, ARKOD broj i sl.