Professional Documents
Culture Documents
ZAVRŠNI RAD
2
Sažetak
Sustav je napravljen kao Web aplikacija, to je tip aplikacije kojoj se pristupa preko
Internet pretraživaća koristeći Internet ili intranet mrežu. Korištena je troslojna arhitektura
aplikacije s prezentacijskim, aplikativnim i podatkovnim slojem. Podatkovni sloj čini
relacijska baza podataka MS SQL Server 2017 koja komunicira s aplikacijskim slojem (engl.
Middleware). Aplikativni sloj je napravljen korištenjem tehnologije .NET CORE 2.0, što je
prva tehnologija Microsoft tvrtke s podrškom za sve operacijske sustave. Zadnji prezentacijski
sloj koji upotrebljavaju korisnici web aplikacije je napravljen pomoću Javascript frameworka
Angular 6.
Summary
This paper has developed a system for managing and organizing beekeeping within a
company or beekeeping cooperative. The purpose of the system is to facilitate the transfer and
storage of data within the business process.
3
which is the first Microsoft technology to support all operating systems. The last layer of web
application user presentation was created using Javascript frameworka Angular 6.
4
1.Uvod
World Wide Web skraćeno Web je dio Interneta koji koriste ljudi za razmjenu
informaciju preko HTTP (engl. Hyper Text Transfer Protocol) protokola. Čovjek koji je
izumio moderni Internet je britanski računalni inženjer Tim Berners-Lee, koji je 1990. godine
shvatio da postoji mnogo informacija na različitim računalima kojima je mogao pristupiti
samo korištenjem dotičnog računala. Napisao je tri temeljne tehnologije interneta HTML
(engl. Hypertext Markup Language ), URI (engl. Universal Resource Identifier ) i HTTP.
HTML je označni jezik koji služi za prikaz informacija na web stranicama. URI je tehnologija
za prikaz unikantih adresa na internetu. HTTP je protokol koji se i danas u varijanti HTTPS
protokola (engl. Secure Hyper Text Transfer Protocol ) koristi za komunikaciju i prijenos
sadržaja između računala.
Nakon pojave prve Web stranice 6. kolovoza 1991. Internet nastavlja rast ubrzanim
korakom pojavom. Prema informacijama stranice www.internetworldstats.com 1995. godine
Internet je koristilo oko o 16 miliona korisnika, to jest 0,4% posto svjetske populacije. Zadnji
poznat podatak je da prosinca.2017 godine Internet koristi 54,4 % svjetske populacije to jest
oko 4 milijarde ljudi.
Nagli razvoj interneta je pridonio razvoju Internet tehnologija. U vrlo kratkom periodu
Web stranice s statičnim podacima su postale Web aplikacije s dinamičnim prikazom
multimedijskog sadržaja. Neke od najpoznatijih WEB tehnologija za razvoj dinamičnog
sadržaja su PHP framework i ASP.NET framework.
5
Microsoft je Američka internacionalna tvrtka s sjedištem u Washington-u, 2002 godina
na tržište predstavljaju ASP.NET tehnologiju za Web aplikacija, dinamičke Web stranica i
Web servisa. ASP.NET koristi .NET framework pisan u jeziku C# za opću namjenu razvoja
računalne podrške. Prve inačice ASP.NET tehnologije su bile ograničene samo na Windows
okruženja do 2018 godine kada izlazi .NET CORE .
Tehnologije za klijentsku stranu se nisu mnogo mijenjale, koristi se isti set tehnologija
HTML, CSS i Javascript. Povećanjem kompleksnosti Web aplikacija je došlo do potrebe za
proširenjem funkcionalnosti klijentski tehnologije što je rezultiralo pojavom frameworka
pisanih u Javascripti i CSS-u kako bi se olakšao i ubrzao razvoj Web stranica i aplikacija.
6
2. Projekt SaxBee
7
Postoji više vrsta programske podrške.. Desktop računalni programi koji se instaliraju
na računala, mobilne aplikacije za pametne mobilne uređaje, te . Web aplikacije kojima se
pristupa putem Web pretraživača instaliranih na mobilnom uređaju ili računalu.
8
3.Izrada projekta
Dobar temelj je bitan za dugotrajnu kuću, zato dobro definiran podatkovni model
rješava mnoge probleme proširivosti sustava i povlačenja informacija prema klijentu. Loše
postavljen model povećava radne sate potrebne za aplikaciju zbog dodatnog napora koje
razvojni inženjer mora utrošiti kako bi predstavio podatke klijentu
MS SQL Server ima više inačica sustava kao što su Express, Enterprise i Developer.
Svaka inačica je napravljen za određen dio publike i ovisno o njihovim potrebama i
opterećenima sustava. Za sustav evidencije pčelarstva se koristi inačica MS SQL Express koja
je namijenjena manjim sustavima s maksimalnom veličinom od 10 gb.
9
3.2. Koraci instalacije MS SQL servera
MS SQL server može biti instaliran na lokalno računalo ili na poslužitelja, u ovom
radu se instalira na računalo poslužitelja. U Cloud infrastrukturi je iznajmljen prostor u vidu
VPS (engl. Virtual private server) virtualno privatnog servera. Vps je virtualna mašina koja se
prodaju kao SAAS (engl. Software as a Service) gdje se mjesečnom pretplatom plaća
korištenje resursa na Cloud infrastrukturi.
Ovisno o tome da li je VPS Windows ili Linux poslužitelj ovisi način spajanja na
poslužitelja. Ukoliko je Linux poslužitelj može se koristiti program Putty s komandnim
sučeljem spajanje na server a ukoliko je Windows poslužitelj koristi se Aplikacija Remote
Desktop. Razlika između Windows i Linux poslužitelja je da se u Linuxu poslužiteljima
primarno koristi komandna linija za upravljanje sustavom, dok Windows poslužitelji koriste
grafičko sučelje (
Slika 2).
10
Nakon klika na .Exe file za pokretanjem instalacija MS SQL Servera Expres potrebno
je odabrati Basic opciju (Slika 3). Kako bi instalirani sustav za upravljanje relacijskim bazama
podataka s osnovnim opcijama.
Connection String je poseban niz podataka koji omogućuje aplikaciji spajanje na bazu
podataka, dani niz je potrebo kopirati u file Web.Config file aplikacije koja sadrži osnovne
postavke o aplikaciji. Upotrebom više Connection String-ova može kontrolirati kojoj bazi
pristupa aplikacija. Za ovaj rad je potreban samo jedan Connection string koji cemo kopirati i
spremiti za daljnju upotrebu.
11
Slika 4. Uspješno instaliran MS SQL Server prikaz podataka servera
12
Slika 5. Početni ekran za instalaciju SSMS programa
13
Slika 6. Sučelje za Administraciju MS SQL SERVER SSMS
14
3.3. Izrada baze podataka
Prema specifikaciji zahtjeva modeliran je slijedeći relacijski model (Slika 7). Model
treba zadovoljiti spremanje informacija o pčelinjim zajednicama, košnicama podacima o
matici i informacije o korisnicima i njihovim ulogama u sustavu.
15
Za kreiranje relacijskih tablica se ne koristi SQL jezik za modeliranje pod nazivom
DDL (engl. Dana Definition Language), nego se koristi tehnologija pod nazivom ORM (engl.
Object-relational mapping).
Prednosti kod upotrebe ORM tehnologije je brzina pisanja upita i definiranja tablica na
bazi podataka. Za proširenje relacijskog modela potrebno je samo dodati nove atribute na
klase i upotrebom ORM funkcionalnosti preslikati na bazu podataka.
Mane kod upotreba ORM- tehnologije je brzina izvršenja upita. Upiti nisu optimizirani
za kao procedure, a specijalist za baze podataka nema nemogućnost optimizacije upita
16
3.3. Opis entiteta
Entitet BeeGroup (Tablica 1) sadrži osnovne podatke o pčelinjaku, kao oznaka, ime i
opis pčelinjaka, sadrži ID korisnika koji je strani ključ na entitet AspNetUsers koji sadrži
registrirane korisnike aplikacije. Atribut Type je strani ključ za entitet BeeGroupTypes koji
sadrži opisane tipove pčelinjaka.
BeeGroup
Atribut Tip podatka Opis
ID int primarni ključ tablice
Mark nvachar(Max) proizvoljna oznaka pčelinjaka
Name nvachar(Max) proizvoljno ime pčelinjaka
BeeUserID nvachar(450) ID na korisnika
Description nvarchar(Max) opis pčelinjaka
Type int strani ključ na entitet BeeGroupType
Entitet BeeGroupType služi kao proširenje za BeeGroup Entitet ( Tablica 1), koji
sadrži proizvoljne tipove pčelinjih zajednica.
BeeGroupType
Atribut Tip Podatka Opis
ID int primarni ključ tablice
Mark nvarchar(50) proizvoljna oznaka tipa pčelinjaka
Name nvarchar(50) proizvoljno ime tipa pčelinjaka
17
Entitet BeeHive predstavlja pčelinje košnice jednog pčelinjaka, sadrži atribute koji
opisuju pčelinju zajednicu, pokazuju starost pčelinje zajednice te sadrži poveznice na entitete
BeeGroup (Tablica 1), BeeQueen (umetnuti tablicu), BeeHiveStatus, BeeHiveLegacy,
BeeHive Type-
BeeHive
Atribut Tip podatka Opis
ID int primarni ključ tablice
Age datetime datum kreiranja zajednice
BeeQueenID int strani ključ na entitet BeeQueen
BeeGroupID int strani ključ na entitet BeeGroup
Legacy int strani ključ na entitet BeeHiveLegacy
Status int strani ključ na entitet BeeHiveStatus
Type int strani ključ na entitet BeeHiveType
BeeHiveLegacy
Atribut Tip podatka Opis
ID int primarni ključ tablice
Mark nvarchar(50) proizvoljna oznaka podrijetla
Name nvarchar(50) proizvoljno ime podrijetla
18
Entitet BeeHiveStatus prikazuje informacije o stanju košnice odnosno BeeHive
entiteta. Sadrži informacije o proizvoljnoj oznaci i nazivu stanja.
BeeHiveStatus
Atribut Tip podatka Opis
ID int primarni ključ tablice
Mark nvarchar(50) proizvoljna oznaka stanja
Name nvarchar(50) proizvoljno ime stanja
BeeHiveType
Atribut Tip podatka Opis
ID int primarni ključ tablice
Mark nvarchar(50) proizvoljna oznaka tipa
Name nvarchar(50) proizvoljno ime tipa
19
Entitet BeeQueen prikazuje osnovne informacije o matici pčelinje košnice, kao oznaka,
naziv, opis te starost matice unutar pčelinje košnice.
BeeQueen
ID Tip Podatka Opis
Mark nvarchar(Max) proizvoljna oznaka matice
Name nvarchar(Max) proizvoljno ime matice
Description nvarchar(Max) proizvoljni opis matice
Age DateTime datum stavljanja matice u košnicu
Legacy int strani ključ na entitet BeeQueenLegacy
BornAge DateTime datum rođenja matice
BeeQueenLegacy
Atribut Tip podatka Opis
ID int primarni ključ tablice
Mark nvarchar(50) proizvoljna oznaka podrijetla matice
Name nvarchar(50) proizvoljno ime podrijetla matice
20
Entiteti s prefiksom AspNet su tabele framework tehnologije ASP.NET Core Identity.
ASP.Net Core tehnologija nudi predefiniran framework za obradu podataka o korisnicima.
Može se opisati kao ORM samo s mogućnostima stvaranja korisnika, ažuriranja korisnika,
generiranja tokena za korisnika i njihovih uloga.
21
4. Aplikativni sloj
Aplikativni sloj ili BLL (eng. Business Layer Logic) je dio aplikacije koji prima upite
s klijentske strane, oblikuje upit i prosljeđuje podatkovnom sloju. Nakon povratne informacije
podatkovnog sloja ponovno oblikuje informaciju i prosljeđuje klijentu. Može se opisati kao
most komunikacije između prezentacijskog sloja i podatkovnog sloja.
Logika oblikovanja informacija upita ne mora biti smještena u aplikativni sloj. Logiku
oblikovanja je moguće smjestiti i u prezentacijski ili podatkovni sloj. Stariji sustavi ili Legacy
sustavi imaju arhitekturu gdje je sva logika oblikovanja smještena u podatkovnom sloju. Dok
novije tehnologije za prezentacijski dio omogućuju razvijanje logiku i unutar klijentskog
dijela. Primjer takve tehnologije je Javascript Framework Angular.
Klasični ASP.NET je uključivao sve funkcionalnosti, od koje većina nije bila potrebita
za određene projekte, dok .NET core ima logiku Linux Kernela. Sadrži Core jezgru u koju
dodajemo funkcionalnosti potrebite za projekt i s time se smanjuje nepotreban kod u aplikaciji.
22
4.1. Izrada ASP.NET CORE aplikacije
U razvojnom okruženju pod FILE -> NEW -> PROJECT odabrati aplikaciju ASP.NET
CORE APLICATION (Slika 8)
23
Nakon odabira projekta se otvara prozor s šprancama za različite tipove projekta,
odabire se špranca Angular (Slika 9).
24
Slika 10. Primjer šprance .NET Core Angular Projekta
25
MVC (engl. Model-View-Controller) je metodologija koja aplikaciju razdvaja u tri
zasebna dijela Model, Controller, View.
Modeli su klase koje sadržavaju opis atributa objekta koji se koristi u aplikaciji, u koji
če se spremati informacija i oblikovati po deklariranoj logici.(Slika 11)
26
4.2. ORM i migracija relacijskog modela
"BeeExpressConnectionString":
"Server=localhost\\SQLEXPRESS;Database=AbeeApp;Trusted_Connection=True;Integrated
Security=True;MultipleActiveResultSets=true;"
Zatim je potrebno definirati klasu koja će sadržavati opis relacijskog modela opisanih u
poglavlju podatkovnog sloja. U radu je definirana klasa ApplicationDBContext, koja služi za
definiranje objekta pristupa bazi podataka.
ORM tehnologija koja se koristi u radu je Entity Framework Core skračeno EFCore. U
Entity Framework Core je već uključen unutar .Net Core 2.0 Frameworka, i naredbe se
izvršavaju preko komandne linije :
27
Nakon uspješno izvedene naredbe ORM je kreirao potrebne tabele na bazi podataka, i kreirao
objekt za pristup entitetima.
28
4.3. Controlleri
Metoda imena Post služi za registraciju korisnika u sustav. Dolazni objekt je model
RegistrationViewModel. ViewModel su različiti od klasičnih modela po tome što ne moraju
sadržavati sve atribute Entiteta. To su paketi podataka komunikacije između klijenta i servera.
Metoda post je primjer CREATE funkcije za kreiranje podataka.
29
Prvo se provjerava valjanost dolaznog modela ukoliko ispunjava sve potrebite atribute,
slijede funkcije mapiranja ViewModela u Model koji koristi ORM objekt UserManaget i
BeeContext. ORM objekti su objekti s predefiniranim funkcijama za komunikaciju s bazom
podataka.
Iznad funkcije u anotaciji je potrebno navesti protokol koji se koristi u ovom slučaju je
to POST. Protok koji šalje podatke na server i vraća prema klijentu.
Metoda AllUsers() je primjer READ metode za dohvat podataka. Preko ORM objekta
_BeeContext se vrši upit na bazu o svim korisnicima i vraća u obliku liste natrag. Sva
komunikacije je u Json formatu.
30
Primjer metode za ažuriranje korisnika. Koristi se POST metoda unatoč tomu što
HTTP protocol podržava i PUT metodu za ažuriranje podataka. U ovome primjeru metode se
ne koristi mapiranje, već se direktno atributi prepisuju na objekt context-a.
31
Metoda DeleteById prikazuje primjer DELETE operacije za brisanje korisnika.
Ukoliko želimo obrisati korisnika koji je stranim ključem vezan na neki drugi objekt odnosno
entitet potrebno je prvo pronaći objekt na koji je vezan u ovom slučaju BeeGroup Entitet i
vezu izbrisati prebacivanjem vrijednosti atributa BeeGroup na vrijednost null.
32
Bee controller CRUD metode za dohvat i oblikovanje informacija o pčelinjim
zajednicama, košnicama i maticama.
33
5. Prezentacijski sloj
Prezentacijski sloj je najviši sloj aplikacije koji se poslužuje korisniku. Temeljne su tri
tehnologije koje služe za slaganje web stranica:
34
5.1. Izrada Angular aplikacije
U ovome radu angular aplikacija je sadržana u folderu ClientApp. Folder App sadrži
datoteke koje se pakiraju u paket preko WebPack aplikacije u javascript datoteke. Web Pack je
program za pakiranje Javascript file-ova pri čemu ih minimizira i optimizira za rad u web
pretraživača. WebPack kreira dva paketa javascript datoteka:
Vendor.js
Main-client.js
35
5.2. Datoteke Angular aplikacije
HTML komponente
CSS komponente
TypeScript komponente
Sve tri datoteke zajedno čine jednu cjelinu to jest komponentu koja predstavlja podatke
klijentu. Cilj komponenti je ponovno korištenje istih komponenti za različite funkcionalnosti
kako bi se smanjio obujam koda ali ispunili svi zahtjevi aplikacije
36
Sve komponente aplikacije je potrebno definirati u glavnom typescript file-u
App.module.ts. Modul u angularu je file koji objedinjuje sve korištene komponente, servise i
ostale datoteke.
Angular posjeduje i posebnu datoteku Pipe koja služi za formatiranje podataka koji se
prikazuju korisniku. Pipe se koristi za pisanje koda za filtriranje datoteka i prikaz podataka po
redoslijedu. Naziva je pipe jer je sintaksa ista kao za Linux komandu pipe.
37
Slika 13. Angular AppModule aplikacije za pčelarstvo
38
5.3. Direktive Angular Aplikacije
*ngIF direktiva služi za prikaz dokumenta preko boolean varijable. Ukoliko je boolean
varijabla true element će biti prikazan, a u suprotnom neće.
Primjer korištenja *ngFor direktive kako bi se iscrtao tablicu od svih učitanih pčelinjih
zajednica. Na koju je vezana funkcija SelectBeeGroup() ukoliko se pokrene Click Event.
39
6. Zaključak
Web aplikacija za evidenciju pčelarstva je samo jedna od mnogih web aplikacija što
pomažu čovjeka u bržem i efikasnijem izvršavanju poslovnih a i privatnih obveza.
Registracijom korisnika i pčelinjaka je omogućeno malim i srednjim poduzetnicima da
upravljaju efikasno svojim obrtom bez straha za gubljenjem informacija.
40
Literatura
41
Popis slika
42
Popis tablica
43