• No results found

Prototype application for storing corrections of exam data implemented with Microsoft MVC technology

N/A
N/A
Protected

Academic year: 2021

Share "Prototype application for storing corrections of exam data implemented with Microsoft MVC technology"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)

KRISTIAN LEINER

Prototipna aplikacija za evidentiranje korekcija podataka o održanim

ispitima izrađena pomoću ASP.NET MVC tehnologije

ZAVRŠNI RAD

(2)

Međimursko Veleučilište u Čakovcu 1

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU

RAČUNARSTVO

KRISTIAN LEINER

Prototipna aplikacija za evidentiranje korekcija podataka o održanim

ispitima izrađenih pomoću ASP.NET MVC tehnologije

Prototype application for storing corrections of exam data implemented

with Microsoft MVC technology

ZAVRŠNI RAD

Mentor:

Dr.sc. Mihael Kukec, v. pred.

(3)

Međimursko Veleučilište u Čakovcu 2

Sažetak:

Projekt je izrađen kao web aplikacija za digitalno popunjavanje obrazaca koja omogućuje jednostavnu interakciju između korisnika i poslužitelja. Ideja samog projekta osmišljena je na način da korisnicima olakšava upisivanje potrebnih podataka tj. ograničava odabir podataka kako bi se izbjegle pogreške tijekom ispunjavanja obrasca koji se kasnije može ispisati na papir za daljnju uporabu.

U izrađenu web aplikaciju ugrađen je sustav za prijavu korisnika tj. mogućnost registracije i prijave. Prilikom prijave u sustav, svaki upisan podatak se detaljno provjerava s klijentske i poslužiteljske strane korištenjem programskih jezika: jQuery, AJAX, JavaScript i C#. Kada se korisnik prijavi u sustav on dobije dozvolu za prijavu pod odabranim korisničkim imenom i lozinkom. Ukoliko se unesu krivi podaci kod prijave na web aplikaciju korisnik se upozorava o namjernoj ili nenamjernoj grešci prilikom potvrde prijave ili pak tijekom unosa podataka. Uspješnom prijavom na web aplikaciju, korisnik se zatim šalje na stranicu popunjavanja digitalnih obrazaca. Dolaskom na stranicu, ovisno o grupi kojoj njegov korisnički račun pripada (administrator, pročelnik, prodekan, nastavnik) korisnik dobiva mogućnost popunjavanja obrazaca. Važno je napomenuti da se implementirani obrazac sastoji od više dijelova tj. više manjih obrazaca koji se pohranjuju kao cjelina. Popunjavanjem prvog dijela obrasca, korisnik upisuje tj. odabire podatke o tome gdje je nastala greška pri evidentiranju podataka o ispitu. Podaci se upisuju i razvrstavaju prema smjeru, semestru i predmetu studija te prema prijavljenom korisniku(nastavnik, pročelnik, prodekan, referada). Drugi dio obrasca se odnosi na detaljan opis i obrazloženje uočene greške tijekom prvotnog unosa. Trećim dijelom obrasca korisnik ispravlja grešku unosom nove vrijednosti ocjene dobivene iz predmeta te postavlja datum izvedene korekcije. Svaki od tih obrazaca ima mogućnost pohrane podataka bez slanja na analizu i zahtjev za dozvolom korekcije greške koji se tada dodatno mogu još uređivati. Nakon što je korisnik upisao ispravne podatke, on može zaključati taj dio obrasca, čime sebi onemogućava daljnju promjenu podataka te automatski šalje ispunjen obrazac na razmatranje i odobravanje. Korisnici višeg statusa, kod popunjavanja imaju otključan četvrti obrazac kod kojeg odmah mogu postaviti dozvolu

(4)

Međimursko Veleučilište u Čakovcu 3

za ispravak uočene greške. U gornjem dijelu stranice, iznad obrasca za popunjavanje, korisnici mogu nakon unosa, u slučaju odustajanja, odabrati opciju za brisanje svih unosa te započeti sa novim. Postoji još izbor ispisa popunjenog obrasca u PDF formatu kojeg je tada moguće preuzeti ili ispisati na papir. Kada korisnik ispuni i preda barem jedan obrazac, otvara mu se mogućnost pregleda svojih obrazaca te provjeru da li je obrazac dobio dozvolu za korekcijom od strane korisnika viših statusa. Kako bi mogli vidjeti svoje obrasce, odabirom otvaranja obrazaca te filtriranjem prema studiju, semestru i predmetu korisnik dobiva traženi obrazac za pregled i mogućnosti ispisivanja obrasca u PDF formatu kao i kod stranice obrasca za popunjavanje. U slučaju nejasnoća, postoji hiperveza do stranice kontakt gdje se korisnici mogu odabirom teme i opisom problema kontaktirati sa nadređenim osobama. Ukoliko korisnik nije prijavljen u sustav, ima samo jednu mogućnost, a to je kontaktiranje nadređenih upisom svoje elektroničke pošte, teme, te širim opisom teme.

(5)

Međimursko Veleučilište u Čakovcu 4

Sadržaj

1. UVOD ... 5

2. RAZVOJNI ALATI I TEHNOLOGIJE ... 6

2.1. Visual Studio 2013 ... 6

2.2. ASP.NET MVC ... 7

4. OSNOVNI SASTAV MODEL-VIEW-CONTROLLER ... 8

4.1. Kontroleri ... 8

4.2. Modeli ... 8

4.3. Pogledi... 10

5. IZRADA ASP.NET MVC PROJEKTA ... 11

5.1. Baza podataka ... 13

5.2 Predložak ... 14

5.3. Biblioteka kôda Itextsharp PDF ... 16

5.4. Metode za konfiguraciju vrijednosti ... 18

5.5. Cascade Style Sheet - CSS ... 20

5.6. Prijava u sustav ... 21

5.7. Prijava na web aplikaciju ... 23

5.8. Obrazac za upis podataka ... 24

5.8.1. Prvi dio - podaci o ispitnom roku za korekciju ... 25

5.8.2. Drugi dio - obrazloženje ... 26

5.8.3. Treći dio - točni podaci ... 27

5.8.4. Četvrti dio - odobrenje obrasca ... 27

5.8.5. Pohrana cjelokupnog obrasca ... 28

5.9. Administracija i kontakt ... 28

5.9.1. Pogled za prijavljenog korisnika - nastavnik ... 29

5.9.2. Pogled za više statuse ... 30

5.9.3. Kontakt - pogled za prijavljenog korisnika ... 30

5.9.4. Kontakt - pogled za neprijavljenog korisnika ... 31

6.0. Završetak rada i odjava ... 31

6. ZAKLJUČAK ... 33

(6)

Međimursko Veleučilište u Čakovcu 5

1. UVOD

U ovom radu je opisana prototipna aplikacija za popunjavanje digitalnog obrasca. Aplikacija je izrađena korištenjem tehnologije ASP.NET MVC (engl.

Model-View-Controller). Ideja sustava je pružiti korisnicima jednostavnije upravljanje i analizu

podataka koji se inače upisuju putem papirnatih obrazaca gdje, primjerice, osoba koja popunjava različite obrasce može upisati niz pogrešnih informacija. Sustav identificira pojedinog korisnika aplikacije te ograničava količinu i točnost kod popunjavanja obrazaca prema korisnikovom statusu. Uzevši u obzir nabrojene ciljeve, ovim radom se prikazuje izrada prototipnog sustava koji je na tragu poboljšavanja upravljanja podacima. Za izradu takovog projekta korišten je razvojni alat Microsoft Visual Studio Ultimate 2013 kao i sustav za upravljanje bazom podataka od tvrtke Microsoft. Kako bi se koristili pohranjeni podaci iz baze, implementirano je objektno-relacijsko mapiranje objekata (engl. object-relational mapping - ORM). Objektno-relacijskim mapiranjem stvara se programski kôd koji olakšava samom programeru rad sa ispisom, unosom, ažuriranjem i brisanjem (engl. create, read, update, delete - CRUD) koje bi mu oduzelo mnogo vremena. Jezik "Structure Query Language" - SQL u usporedbi sa objektno orijentiranim programskim jezicima ima drugačiju sintaksu i prepoznavanje tipa podataka zbog čega se koristi ORM koji automatski izrađuje razrede temeljene na tablicama iz baze podataka, a isto tako automatski šalje upite za izradu tablica u bazi temeljenih na razredima. U ovoj aplikaciji korišten je ORM okvir tvrtke Microsoft pod nazivom "Entity Framework" - EF. Entity Framework ima Apache licencu otvorenog kôda verzije 2.0 [3]. Najviše se koristi na tri načina. Ukoliko je baza podataka već postojeća izrađuju se razredi prema entitetima iz baze, ako su poznati razredi domene pomoću kojih se izrađuje baza podataka ili ako se oblikuje shema baze pomoću koje se definiraju razredi i baza podataka. Aplikacija je izrađena na način unaprijed definirane baze podataka prema kojoj su zatim pomoću Entity Framework-a automatski izrađeni razredi. Takva veza prevodi tj. pretvara podatke iz baze u objektno orijentirane podatke te ih može pohraniti u razrede.

(7)

Međimursko Veleučilište u Čakovcu 6

2. RAZVOJNI ALATI I TEHNOLOGIJE

Razvojni alati i tehnologije su se oduvijek usavršavale kako bi korisnicima takvih omogućili što jednostavniji i više korisniku pristupačniji način za rad na projektima i aplikacijama. Pa tako je u ovom projektu odabran razvojni alat Microsoft Visual Studio 2013 i tehnologija ASP.NET MVC.

2.1. Visual Studio 2013

Visual Studio 2013 je integrirano razvojno okruženje izrađeno od tvrtke Microsoft-a. Od 1995. izrađeno je deset verzija, a posljednja, jedanaesta, izlazi 2015. godine. Postoji u izdanjima prikladnim za učenje i za profesionalni rad (npr. Professional, Ultimate, Premium).

Verzija Visual Studio 2013 korištena je za izradu ovog projekta, a uključuje Microsoft.NET framework 4.5.1 koji je zapravo program potreban za pokretanje Microsoftovih aplikacija i za njihov razvoj. Sastoji se od zajedničkog jezika izvođenja, koji omogućuje upravljanje memorijom i drugim uslugama sustava i opsežni razredi knjižnica koja omogućuje programerima da iskoriste pouzdan kôd za sva glavna područja razvoja aplikacija.

Koristi se za raznovrsne aplikacije kao što su web, desktop i mobilne aplikacije. Web aplikacije se izrađuju za korištenje putem interneta i nalaze se na računalnom poslužitelju koji služi da aplikacija bude dostupna svakom tko joj želi pristupiti. Dok se desktop aplikacija izrađuje za korištenje putem stolnih računala i fizički je pohranjena na računalu. Mobilne aplikacije se programiraju za korištenje putem mobilnih uređaja. One su pohranjene na mobilnom uređaju ali vrlo često koriste internet da bi se spajale na poslužitelj i dohvaćale podatke koje su im potrebne za rad.

Kao što je već spomenuto, ovdje su korištene web i desktop aplikacije koje su napravljene programskim jezikom C# (alat Visual Studio 2013 ima četiri jezika na odabir: Visual C#, Visual Basic, Visual C++, Visual F#, JavaScript i HTML). U projektu je korišten C# programski jezik.

(8)

Međimursko Veleučilište u Čakovcu 7

2.2. ASP.NET MVC

ASP.NET MVC je okvir (engl. framework) za izgradnju web aplikacija koja primjenjuje opći Model-View-Controller uzorak na ASP.NET okvir. Do trenutka ASP.NET MVC-a koji je objavljen 2007. godine, MVC okvir je postajao jedan od najpopularnijih načina izrade web aplikacija.

Model-View-Controller je jedan od tri ASP.NET programskih modela verzije 5. Bio je važan arhitektonski uzorak u računalnoj znanosti već mnogo godina. Originalno nazvan Thing-Mode-View-Editor u 1979. godini [6], kasnije je bio pojednostavljen u Model-View-Controller [6]. Dijeli korisničko sučelje (UI) aplikacije u tri glavna dijela:

Model (engl. Model - M) - predstavlja jezgru aplikacije (npr. lista zapisa iz baze podataka)

Pogled (engl. View - V) - prikazuje podatke (iz baze podataka)

Kontroler (engl. Controller - C) - obavlja poslove veze sa bazom podataka, upravlja pohranom podataka u modele i šalje pogledu rezultate

MVC također pruža punu kontrolu nad HTML, CSS i JavaScript-om. MVC uzorak se često koristi u web programiranju. Tri ključna dijela uzorka MVC mogu se objasniti ovako:

 Modeli - razredi koji predstavljaju domenu problema. Ti objekti domene privremeno pohranjuju podatke spremljene u bazi podataka kao i kôd koji manipulira podacima i provodi poslovnu logiku specificirano na domenama. Sa ASP.NET MVC, to je sloj koji pruža jednostavniji pristup bazi ( engl. Data

Access Layer - DAL) pri čemu se koristi objektno-relacijsko mapiranje u obliku

EF sa prilagođenim kôdom koji sadrži logiku specifičnu za domenu problema.  Pogledi - predlošci za stvaranje HTML-a za prikaz sadržaja.

 Kontroleri - razredi koji implementiraju mehanizme upravljanja između pogleda i modela. Odgovara na akcije korisnika, prosljeđuje i dohvaća podatke pomoću modela i odlučuje što prikazati.

(9)

Međimursko Veleučilište u Čakovcu 8

4. OSNOVNI SASTAV MODEL-VIEW-CONTROLLER

MVC kao i u naslovu, sastoji se od modela za trenutnu pohranu podataka, pogleda gdje se definira dizajn individualne web stranice i kontrolera koji izvađa akcije pokrenute od strane pogleda kao i preuzimanje zapisa iz baze podataka pomoću Entity Framework-a.

4.1. Kontroleri

Kontroleri su veze između korisnika i sustava. Korisnici im pristupaju unosom raznih podataka ovisno o tome kako je pogled oblikovan. Isto tako oni dobivaju rezultate svojih postupaka, unosa tj. pokretanje bilo kakve akcije. Svaka akcija koju korisnik pokrene, kontroleri su ti koji ih tada izvršavaju ovisno o tipu podataka koji se unose ili akcije koja je odabrana. Njihova veza sa modelima i pogledima ih čini jezgrom svake web aplikacije.

Slika 1. Slijed akcija kontrolera

Kontroleri dohvaćaju podatke iz baze podataka, spremaju ih u prave modele te nakon niz operacija vraćaju pogled dijelu MVC-a, koji zatim obrađuje podatke spremljene u poslani model na svoj način.

4.2. Modeli

Modeli su pomoćni dokumenti s programskim kôdom koji omogućuju kontrolu objekata te mogućnost pohranjivanja vrijednosti koje se koriste u pogledu. Koriste se za raznovrsne entitete koji su pak građeni hijerarhijski od strane atributa koji apstraktno opisuju korišten objekt. Način pisanja nije strogo definiran te daje programeru malo više

(10)

Međimursko Veleučilište u Čakovcu 9 slobode odabira i prilagodbe kod pisanja. Jedan od takvih načina je standardni način, a on se sastoji od sljedećih koraka:

 odabir enkapsulacije - public, private, protected

 definiranje tipa objekata - lista, objekt, enumerator, itd.  prikladno odabran naziv prema potrebi

 stvaranje metoda za postavljanje i dohvat podataka

Slika 2. Struktura modela

Razred modela također može sadržavati dodatne metode ovisno o specifikaciji ili potrebi generiranog razreda. Pošto su metode za postavljanje i dohvat već unaprijed definirane za unos i ispis podataka u objekte, oni se ne trebaju ručno pisati već se prilikom definiranja objekata unutar vitičastih zagrada upisuje skraćeni kôd za postavljanje i dohvat vrijednosti kao što je navedeno u primjeru:

(11)

Međimursko Veleučilište u Čakovcu 10 Metode koje nisu prethodno definirane potrebno je ručno pisati te ih prilagođavati prema svojim potrebama. Način pisanja metoda je sličan kao i kod definiranja apstrakcije. U primjeru je prikazana jednostavna metoda sa osnovnim dijelom kôda potrebna za korištenje takvih:

public string vratiZbroj(int a, int b) { return (a + b).ToString();

} gdje je:

Tablica 1. Objašnjenje kôda

Rbr. Kôd Objašnjenje

1. public enkapsulacija (vrsta zaštite podataka)

2. string tip podataka koji se vraća nakon obrade podataka

3. vratiZbroj naziv metode

4. a, b proslijeđeni parametri za obrađivanje

4.3. Pogledi

Pogledi su pisani ovisno o odabiru programera koristeći tzv. Razor (CSHTML) ili C# (ASPX) alate. Prema tome je vidljivo da je dokument stvoren programskim kôdom s klijentske strane. Također, između ostalog, dokument pogleda podržava i ostale programske jezike i biblioteke pisane s klijentske strane kao što su JavaScript, jQuery i AJAX. Kako bi se započelo sa izradom pogleda, vrlo je bitno da se postavi globalni pogled tj. predložak (engl. Layout) koji će se uključiti u ostale poglede nakon njihove izrade. Taj predložak je koristan u situacijama kod kojih se dio sadržaja ne mijenja prilikom stvaranja po ostalim pogledima (npr. zaglavlje i podnožje). Kada se počinje pisati programski kôd, potrebno je uključiti model koji sadržava podatke namijenjenim za korištenje kod pojedinog pogleda web stranice. Nakon generiranog predloška, stvaraju se novi pogledi drugim imenima te se nakon odabira modela za korištenje, definira predložak koji će ti pogledi koristiti. Sve što slijedi kasnije ovisi o programeru,

(12)

Međimursko Veleučilište u Čakovcu 11 na koji način će se prikazivati i što će prikazivati tj. što će se izvući iz modela za prikaz na web preglednicima.

5. IZRADA ASP.NET MVC PROJEKTA

Koristeći razvojni alat Visual Studio 2013, stvaranje novog projekta je jednostavno. Odabirom opcije "New" u izborniku "FILE", zatim opcijom "Project" pokreće se niz koraka koji slijede za stvaranje odabranog projekta.

Slika 3. Početak izrade projekta u Microsoft Visual Studiju 2013

Nakon odabira otvara se prozor sa raznim mogućnostima. Sa desne strane je lista instaliranih tj. ugrađenih programskih jezika koje mogu poslužiti u stvaranju projekta. Sa te liste za ovaj projekt je korišten predložak C# programskog jezika za izradu web stranica.

(13)

Međimursko Veleučilište u Čakovcu 12 Slika 4. Odabir ASP.NET web aplikacije

Nakon imenovanja i odabira lokacije spremanja projekta, potvrđuje se odabrano prilikom čega se otvara novi prozor za odabir predložaka za stvaranje aplikacija. Ondje je odabran predložak MVC, te potvrdom o odabranim postavkama razvojni alat konačno izrađuje projekt.

(14)

Međimursko Veleučilište u Čakovcu 13 Slika 5. Odabir MVC predloška

5.1. Baza podataka

U ovom projektu korišten je sustav za upravljanje bazom podataka tvrtke Microsoft, Microsoft SQL Server Database verzije 12.0.30919.1. Oblikovana baza podataka ovdje prikazane prototipne aplikacije se sastoji od devet entiteta. Svaki entitet ima vlastite atribute i veze sa drugim entitetima. Prilikom prijave u sustav, podaci o korisniku se pohranjuju u tablicu "korisnici" odakle on ima mogućnost popunjavanja obrazaca dio po dio. Cjelokupan obrazac je podijeljen na četiri odvojena dijela radi ograničavanja pristupa nekih dijelova zbog administrativnih prava. Kako bi se mogao popunjavati prvi dio globalnog obrasca izrađene su tabele sa unaprijed definiranim vrijednostima. Nakon ispune prvog dijela, identifikacijski broj tog dijela se pohranjuje u globalni obrazac. Pohranom drugog, trećeg i četvrtog dijela, također se uzima njihov identifikacijski broj, koji smanjuje dupliciranje podataka te upućuje na tablice jednakih identifikacijskih

(15)

Međimursko Veleučilište u Čakovcu 14 brojeva kako bi se prepoznala jedinstvena tablica. Ispunjavanjem obrazaca sustav preuzima identifikacijski broj korisnika zbog potrebe pretraživanja.

Slika 6. Model baze podataka

5.2 Predložak

Predložak se koristi u namjeri da bi se smanjilo ponavljanje istog kôda na svakoj web stranici, a pritom omogućio jednak efekt. U ovom projektu, predložak je bio korišten za standardan izgled web stranice kao što su zaglavlje, podnožje, navigacija, i na kraju, status korisnika. Na slici 7, prikazan je način oblikovanja navigacije pomoću CSHTML-a i HTML-CSHTML-a kod kojeg svCSHTML-akCSHTML-a vezCSHTML-a prilikom odCSHTML-abirCSHTML-a pokreće unCSHTML-aprijed definirCSHTML-anu metodu sa svojim pogledom.

(16)

Međimursko Veleučilište u Čakovcu 15 Slika 7. Navigacijski izbornik unutar podložka

Slika 8 prikazuje dio jQuery-ja, metoda kojom na odabir hiperveze dodaje CSS razred sa svojstvima koja prikazuju tu hipervezu kao odabranu. Uzimanjem putanje tj. adrese web stranice, preko elemenata dodaje CSS razred.

Slika 8. Dodavanje stila aktivnosti odabrane hiperveze

Kako bi status korisnika bio ispravno prikazan i stalan, također je napisan u kombinaciji CSHTML-a i HTML-a. Slika 9, prikazuje jednostavno rješenje korištenjem modela za preuzimanje podataka korisnika te ispisivanje istih ako je taj korisnik uopće prijavljen. Da bi razlikovali status korisnika radi dodjeljivanja privilegija, vrijednosti korisnika su bile ispitane prema unaprijed zadanim vrijednostima.

(17)

Međimursko Veleučilište u Čakovcu 16 Slika 9. Definiranje statusa korisnika

5.3. Biblioteka kôda Itextsharp PDF

Nakon ispunjavanja tih obrazaca korisnik je dobio mogućnost generiranja "Portable Document Format" - PDF dokumenta svog obrasca kojeg zatim može preuzeti ili ga ispisati na papiru. Za generiranje PDF dokumenta, korištena je itextsharp biblioteka. Itextsharp biblioteka sadrži različite metode za dizajn podataka unutar jedne datoteke kao što su fontovi, paragrafi, tablice, itd. Naveden je jedan primjer slijeda stvaranja takve datoteke. Na slici 10 se vidi izrada PDF dokumenta od strane programera. Nakon stvaranja dokumenta potrebno je postaviti format papira te postaviti margine. Zatim, da bi uopće mogli izraditi jedinstvenu datoteku, potrebno ju je jedinstveno imenovati. Kad je ime izrađeno, traži se putanja do mjesta stvaranja datoteke. Sa tim podacima je sad moguće izraditi PDF dokument u odabranoj putanji pod odabranim jedinstvenim imenom. Otvaranjem dokumenta u kôdu pristupamo dizajniranju i dodavanju načina prikazivanja podataka. U ovom slučaju se koriste različiti fontovi i tablice popunjene

(18)

Međimursko Veleučilište u Čakovcu 17 ćelijama. Korištenjem sesije podaci su trenutno pohranjeni te se prosljeđuju do PDF dokumenta u kojem se tada uzimaju vrijednosti za daljnju obradu.

Slika 10. Definiranje PDF dokumenta i dohvaćanje podataka iz sesije

Nakon dovršenog oblikovanja dokumenta, ostaje još samo definiranje putanje do PDF dokumenta koji se šalje u "JavaScript Object Notation" - JSON tipu podataka do "Asynchronous JavaScript and XML" - AJAX-a.

Slika 11. Slanje putanje PDF-a u JSON tipu podataka

Kako bi bilo moguće proslijediti JSON putanju PDF dokumenta potrebno je kôd AJAX-a postaviti tip podataka (dataType) na JSON. Kad je putanja proslijeđena, AJAX metoda zatim nakon uspješne izrade PDF dokumenta šalje korisnika na direktnu putanju za preuzimanje ili ispis obrasca na papiru.

(19)

Međimursko Veleučilište u Čakovcu 18 Slika 12. AJAX poziv i otvaranje PDF-a

5.4. Metode za konfiguraciju vrijednosti

Kako bi imali potrebne podatke za pohranu na različita mjesta, ponekad je potrebno promijeniti njihov način prikaza. Sa time se misli na oduzimanje nepotrebnog ili dodavanje potrebnog, bila to vrijednost nekog podatka ili parametar. Kako bi to ostvarili, potrebne su metode koje obrađuju takve sirove podatke, a koje zatim vraćaju obrađene. U primjeru slike 13, koristili smo metodu "vratiBroj" koja je kao parametar uzimala cijeli tekstualni oblik te nizom različitih operacija i provjera odvojila tekst od broja, a zatim ga na kraju vraća kao cjelobrojnu vrijednost tipa "integer" koji se kasnije koristi kao identifikacijski broj.

(20)

Međimursko Veleučilište u Čakovcu 19 Slika 13. Dohvat broja iz stringa

Drugim primjerom (slika 14), metodom "konfigurirajDatum" prilikom dobitka vrijednosti tekstualnog tipa, odvajamo datum od vremena jer vrijeme nije potrebno u ovom slučaju.

Slika 14. Odvajanje datum od vremena

Trećim primjerom (slika 15), metoda "konfigurirajPokrece" se koristi da izbriše nepotrebni razmak koji se zna dogoditi prilikom upisa ili ispisa vrijednosti.

Slika 15. Uklanjanje specijalnih znakova iz teksta

Da bi pružali sigurnost našim korisnicima, koristile su se metode šifriranja koje prikrivaju korisničku lozinku tj. pokreće se metoda "Encrypt" koja ju šifrira na Sha1 način.

(21)

Međimursko Veleučilište u Čakovcu 20 Slika 16. Korištenje Sha1 šifriranje

Kasnije kod prijave, sličnim načinom kod preuzimanja vrijednosti lozinke iz baze, pokretanjem metode "Decrypt" se s pomoću dešifriranja otkriva prava lozinka koju je zatim moguće usporediti sa upisanom.

Slika 17. Korištenje Sha1 dešifriranje

5.5. Cascade Style Sheet - CSS

Kako bi web stranice izgledale dobro oblikovano, u projektu se koriste dokumenti tipa style sheet (CSS). Da bi CSS uopće bio povezan sa web aplikacijom, potrebno je definirati putanju i tip podataka u zaglavlju svake ili jedne glavne layout stranice. U ovoj web aplikaciji su dodana već gotova tj. prethodno definirana svojstva za dizajn svakakvih elemenata html jezika pod nazivom Bootstrap. Bootstrap je kolekcija prethodno definiranih svojstava skoro svih elemenata koje nam nudi html dokument.

(22)

Međimursko Veleučilište u Čakovcu 21 Slika 18 i 19. CSS stil izmijenjen za svrhu web aplikacije

5.6. Prijava u sustav

Kako bi se korisnik statusom gosta1 uopće mogao koristiti sa web aplikacijom, potrebno je prijaviti se u sustav. Da bi se prijavio u sustav, odabirom veze Registracija, poslan je na formu za prijavu u sustav. Forma se sastoji od imena, prezimena, elektroničke pošte, korisničkog imena i lozinke koje je potrebno popuniti da bi gost postao korisnik aplikacije. Svako polje za upis sadrži vrstu provjere unosa podataka u realnom vremenu.

(23)

Međimursko Veleučilište u Čakovcu 22 Slika 20. Prikaz obrasca za prijavu u sustav sa provjerom unosa

Da bi postigli takvu provjeru, korištene su biblioteke sa klijentske strane programskog jezika JavaScript-a, a to su AJAX i jQuery. Provjera imena i prezimena koristi zabranu upisa specijalnih karaktera i brojeva, dok je elektronička pošta imala poseban regularni izraz za provjeru točnog formata upisane elektroničke pošte. Korisničko ime nije bilo teže provjeravano radi veće jedinstvenosti korisničkih imena gdje je zabranjeno upisivanje samo specijalnih karaktera. Kod lozinke se koristila provjera broja znakova te identičnost lozinke sa jednakim upisivanjem u novo polje.

(24)

Međimursko Veleučilište u Čakovcu 23 Slika 21. Unos korisnika u bazu podataka

5.7. Prijava na web aplikaciju

Korisnik prilikom prijave u sustav prema odabranim podacima dobiva mogućnost prijave na web aplikaciju. Upisivanjem tih podataka kod stranice za prijavu, izvršavaju se niz provjera kao i kod prijave u sustav. Provjerom sa klijentske strane, korisničko ime je limitirano na način da su zabranjeni upisi specijalnih znakova i koristi upozorenje u slučaju nedovoljnog broja upisanih znakova. Kod lozinke, provjerava se samo slučaj nedovoljnog broja upisanih znakove. Prilikom potvrde unesenih vrijednosti, pokreće se još jedna provjera sa klijentske strane, a to je da li je bilo koje od polja nepopunjeno. Ako je sve popunjeno, pokreće se akcija za dubinsku provjeru tih vrijednosti sa poslužiteljske strane. Podaci se uzimaju iz baze, dešifriraju te provjeravaju identičnost podataka. U slučaju neispravnih podataka, korisnik se obavještava da takav korisnik ne postoji. U slučaju ispravnih podataka, korisnik je uspješno prijavljen na web aplikaciju koja ga šalje na stranicu za ispunjavanje obrazaca.

(25)

Međimursko Veleučilište u Čakovcu 24 Slika 22. Provjera kod prijave na web aplikaciju

5.8. Obrazac za upis podataka

Uspješnom prijavom, korisnik se šalje na stranicu za popunjavanje obrazaca. Učitavanjem obrasca, pozadinski kôd priprema podatke za korisnika i pohranjuje ih u globalni objekt modela koji se pritom prosljeđuje pogledu. Obrazac je podijeljen na četiri dijela.

(26)

Međimursko Veleučilište u Čakovcu 25 Slika 23. Prvi pogled mogućnosti korisnika

Slika 24. Učitavanje podataka iz baze pohranjenih u model 5.8.1. Prvi dio - podaci o ispitnom roku za korekciju

Prvim dijelom obrasca korisnik odabire podatke o ispitnom roku za kojeg se traži korekcija. Podaci obrasca sadrže smjer, semestar, predmet te tko pokreće postupak korekcije. Za odabir vrijednosti unutar obrasca korišteni su jQuery i AJAX. Nakon ispunjenog prvog dijela obrasca, korisnik ima mogućnost pohraniti svoj odabir i zaključati. Zaključavanjem korisnik onemogućuje dodatno preuređivanje obrasca čime potvrđuje da je siguran u svoj odabir. Pohranjivanjem obrasca podaci se prosljeđuju do metode kontrolera zadužene za obradu. Na slici 25 prikazano je detaljno obrađivanje podataka dobivenih od AJAX-a. Unutar metode za obrađivanje stvoren je objekt prvog obrasca u koji se spremaju proslijeđene vrijednosti, a pritom se koriste i druge metode za prilagodbu proslijeđenih podataka. Uspješnim prilagodbama i provjerama taj objekt se zatim sprema u bazu podataka pod entitetom istog tipa.

(27)

Međimursko Veleučilište u Čakovcu 26 Slika 25. Pohrana podataka prvog dijela obrasca

5.8.2. Drugi dio - obrazloženje

Nakon prvog dijela, drugi dio obrasca je fokusiran na opširniji opis i identifikaciju nastale i uočene greške, za koju je podnesen zahtjev za korekciju. Taj dio zahtijeva odabir tipa uočene greške i detaljnije obrazloženje greške. Kao i kod prvog dijela popunjavanja obrazaca, i ovdje je mogućnost zaključavanja i pohrane podataka. Pohranom podataka pokreće se sljedeća metoda sa drugim parametrima, ovisno o dijelu obrasca koji se popunjava. Započinje sa stvaranjem objekta koji se tada popunjava sa ispravnim podacima, a nakon toga pohranjuje se u bazu podataka sa entitetom istog podatkovnog tipa.

(28)

Međimursko Veleučilište u Čakovcu 27

5.8.3. Treći dio - točni podaci

Predzadnji dio tj. treći dio od korisnika zahtijeva točne podatke o ispitnom roku. Kod popunjavanja obrasca korisnik ima mogućnosti unosa, ocjene i datuma unesenih podataka. Kao i kod prethodnih dijelova obrazaca, korisnik opet može pohraniti i zaključati i taj dio obrasca. Pohranom podataka, preko AJAX metode podaci se prebacuju do metode za obradu podataka trećeg dijela obrasca. Da bi podatke mogli pohraniti u bazu potrebno je stvoriti objekt. Taj objekt se nakon prilagodbe podataka popunjava, a zatim se pohranjuje u bazu podataka istog tipa.

Slika 27: Pohrana podataka trećeg dijela obrasca 5.8.4. Četvrti dio - odobrenje obrasca

Zadnji dio obrasca mogu vidjeti samo korisnici viših statusa, kao što su prodekan i administrator. Tim obrascem korisnik odlučuje da li je taj obrazac odobren ili nije odobren. Promjene se također pohranjuju u bazu podataka istim principom kao i kod ostalih dijelova obrazaca preko AJAX-a sve do kontrolera.

(29)

Međimursko Veleučilište u Čakovcu 28 Slika 28. Pohrana podataka četvrtog dijela obrasca

5.8.5. Pohrana cjelokupnog obrasca

Svi dijelovi obrasca su kod pohrane u bazu podataka, također pohranjeni i u sesiju pod jedinstvenim imenom. Nakon ispunjenih i predanih dijelova obrazaca, prilikom izlaska iz trenutne stranice, identifikacijski brojevi dijelova obrazaca se pohranjuju pod jedan cjelokupan obrazac, a nakon toga postojeće sesije se brišu.

Slika 29. Pohrana svih dijelova u globalni obrazac 5.9. Administracija i kontakt

Kako bi korisnici mogli vidjeti obrasce u kojima su prisustvovali ispunjavanjem, odlaskom na hipervezu, administracija omogućuje detaljan uvid za praćenje vlastitih obrazaca. Svaki obrazac po standardu ima svoj opis i mogućnost ispisa u PDF-u te

(30)

Međimursko Veleučilište u Čakovcu 29 fizičkom obliku. Za pogled Kontakt, koriste se dva načina popunjavanja kontaktnog obrasca, jedan je od strane prijavljenog korisnika, a drugi od strane neprijavljenog korisnika. Kako bi se prepoznao korisnik koji šalje upit, dohvaća se korisnička elektronička pošta.

5.9.1. Pogled za prijavljenog korisnika - nastavnik

Pritiskom na hipervezu administracija, korisnik dolazi do stranice pretraživanja obrazaca i pregled istih u slučaju promjene odobrenja. Kod otvaranja obrazaca, otvara se filtar prema kojem je potrebno odabrati smjer, semestar i predmet prijavljenog obrasca. Nakon filtriranja, pokreće se AJAX koji zatim prosljeđuje odabrane podatke do kontrolera na daljnju obradu. Sa tim proslijeđenim parametrima u kontroleru se stvaraju potrebni objekti, izvršavaju provjere, a zatim se ti podaci pohranjuju u "globalni" objekt koji sadržava vrijednost svih potrebnih podataka. Da bi dobivene vrijednosti vratili prema filtriranim podacima, uzimamo vrijednosti iz "globalnog" objekta te ih vraćamo jedan po jedan u JSON tipu podataka koji je poznat AJAX-u, te se njime ispisuju vraćene vrijednosti na stranicu korisnika.

(31)

Međimursko Veleučilište u Čakovcu 30 Slika 30. Ispis podataka iz baze prema upitima

5.9.2. Pogled za više statuse

Prelaskom na hipervezu Administracija za korisnika sa statusom prodekan ili višim prikazuje se jednako kao i kod korisnika nižeg statusa. Pretraživanje pohranjenih i zaključanih (poslanih na obradu) obrazaca tj. filtriranje istih prema odabranim vrijednostima kao i mogućnost preuzimanja obrazaca u PDF formatu ili ispis na papir. Dodatak višim statusima jest kontrola dozvole tj. odobrenja obrazaca od strane prodekana, dekana ili administratora.

5.9.3. Kontakt - pogled za prijavljenog korisnika

Ukoliko korisnik ima nekih nejasnoća i potrebni su mu odgovori na pitanja, dolaskom na stranicu kontakt, korisnik ima mogućnost unosa teme upita te opširniji unos informacija o temi o kojoj piše, te ga tako šalju nadređenim osobama na daljnji pregled.

(32)

Međimursko Veleučilište u Čakovcu 31 S poslužiteljske strane, nakon slanja upita, pokreće se metoda koja uzima unesene podatke te ih oblikuje u način teksta elektroničke pošte. Za slanje elektroničke pošte, potrebno je bilo uraditi sljedeće korake:

1. postavljanje smtp klijenta 2. postavljanje načina isporuke 3. postavljanje sigurnosti 4. stvaranje poruke

Kod stvaranja poruke potrebno je upisati dolaznu i odlaznu elektroničku poštu, naslov poruke i sastaviti tijelo poruke u željeni oblik isporuke.

Slika 32. Postavke i slanje elektroničke pošte 5.9.4. Kontakt - pogled za neprijavljenog korisnika

Za neprijavljene korisnike u sustav tj. goste, koji imaju nekakvih nejasnoća, mogu također kao i prijavljeni korisnici upisati temu i detaljan opis nejasnoće, problema ili ideje ali uz dodatno polje za upis elektroničke pošte koje gosti moraju popuniti jer nisu prijavljeni u sustav.

6.0. Završetak rada i odjava

Kad korisnici prestanu sa korištenjem web stranice, jednostavnim pritiskom na izbornik "Odjava" korisnik se odjavljuje sa web stranice. Prilikom pritiska, akcija se

(33)

Međimursko Veleučilište u Čakovcu 32 šalje do kontrolera gdje se sve sesije tog korisnika zatim brišu, te ga potom šalju na stranicu prijave.

(34)

Međimursko Veleučilište u Čakovcu 33

6. ZAKLJUČAK

Projekt razvoja digitalnog popunjavanja obrazaca kao web aplikacija svojim uslugama uvelike smanjuje rad sa papirologijom, drži do urednosti i točnosti upisa podataka. Omogućuje jednostavno pretraživanje svih obrazaca jedinstvenog pojedinca te u slučaju potrebe, ispisivanje na papir kako bi se nadalje mogao koristiti za različite svrhe ovisno o potrebi.

Najčešće nastali problemi su bili kod kompleksnih ideja dinamičnosti web aplikacije te međusobnom interakcijom tehnologija, biblioteka i programskih jezika. Mane izrađenog projekta su nedostatak više razine sigurnosti, trenutna nesposobnost dodavanja drugih vrsta obrazaca za popunjavanje te manjak kod izbora upravljanja pohranjenih obrazaca. Prednosti korištenja MVC-a, EF-a i ostalih tehnologija su u njihovoj organizaciji izrade aplikacije, dinamičnosti tj. vezi između tih tehnologija i njihov način komunikacije kako bi se riješili određeni problemi i stvarale suvremene aplikacije. Tijekom izrade projekta naučio sam koristiti ASP.NET MVC tehnologiju i baviti se hijerarhijskom strukturom tehnologije, zatim korištenjem Microsoft-ovog sustava za upravljanje bazom podataka kao i Entity Framework-om sa kojim je upravljanje bazom podataka puno jednostavnije i brže za razliku od ručnog povezivanja baze i pisanja programskog kôda za unos, izmjenu, brisanje i dohvat podataka. Uključivanje tih tehnologija u jedinstvenu web aplikaciju uzelo je tek nekoliko trenutaka vremena, međutim učenje tih tehnologija je zahtijevalo puno više vremena.

Cilj projekta u budućnosti jest dodavanje mogućnosti odabira različitih obrazaca za korištenje u više svrha te njihova prilagodba prema prijavljenom korisniku kao i proširenje izbora upravljanja obrazaca za korisnike viših statusa. Sa dodatnim proširenjima projekt ima potencijal za korisnu upotrebu unutar manjih tvrtki i organizacija.

(35)

Međimursko Veleučilište u Čakovcu 34

7. LITERATURA

1. http://www.w3schools.com/aspnet/mvc_intro.asp (2.2.2015.) 2. https://entityframework.codeplex.com/ (25.9.2015.) 3. https://entityframework.codeplex.com/license (25.9.2015.) 4. https://msdn.microsoft.com/en-us/data/aa937709.aspx (25.9.2015.) 5. https://msdn.microsoft.com/en-us/data/jj250905.aspx (25.9.2015.)

6. Jon Galloway, Brad Wilson, K. Scott Allen, David Matson (2014), Professional

References

Related documents

• Second Tentative Closing Date – This is the First Tentative Closing Date plus 120 days. • Firm Closing Date – This is the First Tentative Closing Date plus 240 days. •

April 2009 Microfinance Institution Life Cycle Case Study: Financiera Edyficar ©2009 Grameen Foundation USA. All Rights Reserved

FE ¼ fixed effect; MLM ¼ multilevel model; HSE ¼ hierarchical spatial error model; HSAR ¼ hierarchical spatial autoregressive model; HSMA ¼ hierarchical spatial moving average

An article titled ‘The Business Case for Emotional Intelligence’ by Cary Cherniss provides numerous other examples of how emotional intelligence has benefited various

8 Assume you stain Clostridium by applying a basic stain, carbolfuchsin, with heat, decolorizing with acid-alcohol, and counterstaining with an acidic stain, nigrosin..

• Low unemployment rate, in spite of high unemployment benefits or high labour participation.. • Wages are high and the wealth relatively is

When a person has a relationship with God, God connects to them in way that spiritually and morally transforms them. When God connects with a person, God supernaturally changes

Participants in this research indicated the they believe the skills they learn in organizations will assist them in the future and that participating in these student organizations