Web aplikacija za evaluaciju sudionika na tržištu najma nekretnina

Similar documents
Podešavanje za eduroam ios

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

1. Instalacija programske podrške

SAS On Demand. Video: Upute za registraciju:

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

Tutorijal za Štefice za upload slika na forum.

Otpremanje video snimka na YouTube

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

BENCHMARKING HOSTELA

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

Uvod u relacione baze podataka

Port Community System

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

Windows Easy Transfer

URF (Portal za sudionike) PRIRUČNIK ZA REGISTRACIJU

Mindomo online aplikacija za izradu umnih mapa

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

UPUTE ZA RAD S MODULOM "ČLANOVI" U SUSTAVU "VATRONET"

PORTAL ZA UDOMLJAVANJE KUĆNIH LJUBIMACA

Nejednakosti s faktorijelima

ONLINE APLIKACIJA ZA SLANJE OBAVIJESTI U PREDDEFINIRANO VRIJEME

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

Use-case diagram 12/19/2017

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Office 365, upute za korištenje elektroničke pošte

Upute za VDSL modem Innbox F60 FTTH

1 Uvod Kategorije korisnika Administratori hosting usluge (AHU) Administratori škole (AŠ)... 2

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

OTVARANJE BAZE PODATAKA I IZRADA TABLICE U MICROSOFT ACCESS-u

DZM Aplikacija za servise

IZRADA SUSTAVA ZA UPRAVLJANJE SADRŽAJEM KORIŠTENJEM WEB TEHNOLOGIJA OTVORENOG KODA

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO KRISTIAN LEINER

WEB APLIKACIJA ZA KUPNJU I ČITANJE E-KNJIGA

PROJEKTNI PRORAČUN 1

ODRICANJE OD ODGOVORNOSTI Ovaj je Priručnik povjerljivo, neobjavljeno vlasništvo društva Intesa Sanpaolo Card i ovime se ne prenose prava vlasništva.

SIGURNOST APLIKACIJA I STRANICA IZRAĐENIH U PHP-U

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

WEB APLIKACIJA S BAZOM RECEPATA

DINO KAVGIĆ ANDROID APLIKACIJA ZA POSREDOVANJE NEKRETNINAMA

Struktura i organizacija baza podataka

KORISNIČKA UPUTA. za servis. e-dražba

DOSTAVUANJE PONUDA ZA WIMAX MONTENEGRO DOO PODGORICA

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE

UPITI (Queries) U MICROSOFT ACCESSU XP

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

Bušilice nove generacije. ImpactDrill

OTVARANJE BAZE PODATAKA U MICROSOFT ACCESSU XP

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU

Informacijski sustav primarne zdravstvene zaštite Republike Hrvatske

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI

Advertising on the Web

RAČUNALNA APLIKACIJA ZA RFID EVIDENCIJU STUDENATA NA NASTAVI

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

RANI BOOKING TURSKA LJETO 2017

KORISNIČKA UPUTA. za servis. e-dražba

APLIKACIJA ZA RAČUNANJE N-GRAMA

CRNA GORA

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

Uputstvo za apliciranje. Instrukcije za popunjavanje aplikacione forme April P a g e Application Manual

Klasterizacija. NIKOLA MILIKIĆ URL:

Bear management in Croatia

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

Online prijavni obrazac za Erasmus+ stručnu praksu nalazi se na internetskoj stranici:

WEB SUSTAV ZA ZADAVANJE I PRIKUPLJANJE PONUDA ZA PUTOVANJA

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

Osnove rada u WordPressu

IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA

Aplikacija za generiranje jedinstvenog identifikatora formule Korisnički priručnik. Srpanj 2018.

Upotreba selektora. June 04

Aplikacija za podršku transferu tehnologija

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije DOROTEO MACAN

Proces dostave podataka financijskih institucija Poreznoj upravi

Ovu inačicu priručnika izradio je autorski tim Centra za e-učenje Srca u sastavu:

EKSPLORATIVNA ANALIZA PODATAKA IZ SUSTAVA ZA ISPORUKU OGLASA

RAZVOJ DINAMIČKIH WEB APLIKACIJA UPORABOM PHP-a I AJAX-a

IZRADA TEHNIČKE DOKUMENTACIJE

sys.monitor Published on sys.portal (

KVIZ ZA PROVJERU PRAVOPISA ENGLESKOG JEZIKA

STRUČNA PRAKSA B-PRO TEMA 13

IZRADA WEB APLIKACIJE U PROGRAMSKOM JEZIKU C#

Uputstvo za korišćenje Asseco WEB 3.0 aplikacije za Fizička lica

En-route procedures VFR

UPUTE ZA KORIŠTENJE KATALOGA ZA IZNAJMLJIVAČE

ALEN BARAĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA DIPLOMSKI RAD

VIŠEKORISNIČKA IGRA POGAĐANJA ZA OPERACIJSKI SUSTAV ANDROID

SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA

SelmetAssetBO. Aplikacija za popis osnovnih sredstava na osobnom računalu. Korisnički priručnik. ver. RGN d.o.o. datum zadnje izmjena:

3D GRAFIKA I ANIMACIJA

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

24th International FIG Congress

3. Obavljanje ulazno-izlaznih operacija, prekidni rad

Transcription:

SVEUĈILIŠTE U RIJECI TEHNIĈKI FAKULTET PREDDIPLOMSKI SVEUĈILIŠNI STUDIJ RAĈUNARSTVA ZAVRŠNI RAD Web aplikacija za evaluaciju sudionika na tržištu najma nekretnina Rijeka, rujan, 2013. Nataša Prodić 0069052888

SVEUĈILIŠTE U RIJECI TEHNIĈKI FAKULTET PREDDIPLOMSKI SVEUĈILIŠNI STUDIJ RAĈUNARSTVA ZAVRŠNI RAD Web aplikacija za evaluaciju sudionika na tržištu najma nekretnina Mentor: izv.prof.dr.sc. Miroslav Joler Rijeka, rujan, 2013. Nataša Prodić 0069052888

IZJAVA Sukladno sa ĉlankom 9. Pravilnika o završnom radu i završnom ispitu na preddiplomskim sveuĉilišnim i struĉnim studijima Tehniĉkog fakulteta Sveuĉilišta u Rijeci, od 29. svibnja 2011., izjavljujem da sam samostalno izradila završni rad prema zadatku br. 602-04/13-04/22 od 08.03.2013. Rijeka, 17. rujna 2013. Nataša Prodić 0069052888

SADRŽAJ 1. UVOD... 3 2. MOGUĆE ULOGE U APLIKACIJI... 4 2.1. Neregistrirani korisnici... 4 2.2. Registrirani korisnici... 4 2.3. Administratori aplikacije... 5 3. BAZA PODATAKA... 6 3.1. Korisniĉki raĉuni... 6 3.2. Administratori aplikacije... 7 3.3. Vlastiti odgovori na pitanja za najmoprimce i najmodavce... 7 3.4. Komentari na najmodavce i najmoprimce... 8 3.5. Ocjene najmoprimca i najmodavca... 8 3.6. Pitanja za najmoprimce i najmodavce... 9 3.7. Poruke za administratora... 9 4. RAD APLIKACIJE... 10 4.1. Poĉetna stranica... 10 4.2. Registracija... 11 4.3. Skripta mail.php... 12 4.4. Potvrda registracije... 12 4.5. Oporavak zaboravljene lozinke... 13 4.6. Profil korisnika... 15 4.7. UreĊivanje profila... 16 4.8. Postavke raĉuna... 17 4.9. Kontaktiranje administratora aplikacije... 18 4.10. Ocjenjivanje korisnika... 19 4.11. Spremanje ocjena u bazu podataka... 21 4.12. Prikaz ocjena korisnika... 22 4.13. Pretraživanje... 25 4.14. Rezultati pretraživanja... 25 4.15. Administratorsko suĉelje... 26 1

4.16. Pregled postojećih i dodavanje novih pitanja... 27 4.17. Spremanje pitanja u bazu podataka... 27 4.18. Prikaz svih dobivenih poruka... 29 4.19. Prikaz sadržaja jedne poruke... 30 4.20. Odgovaranje na poruke... 30 4.21. Odjavljivanje... 31 4.22. Promjena aktivne uloge u sjednici aplikacije... 31 4.23. Skripta db_config.php... 32 4.24. Izgled aplikacije... 32 5. SIGURNOST... 33 6. BUDUĆI RAD I ZAKLJUĈAK... 34 LITERATURA... 35 2

1. UVOD Ideja za ovu aplikaciju je proizašla iz ĉestih sluĉajeva na tržištu najma nekretnina gdje najmodavci nisu iskreni ili susretljivi kao što se ĉinilo na prvi pogled ili gdje najmoprimci nestanu bez da plate najamninu ili budu neuredni za vrijeme korištenja nekretnine. Pomoću aplikacije, korisnici mogu dobiti više informacija o potencijalnim najmoprimcima i najmodavcima koristeći pretraživanje po raznim kljuĉevima (ime, prezime, OIB...) na osnovi odgovora u anketama i komentara od ostalih korisnika koji su već imali iskustvo s njima. Administrator aplikacije ima pristup suĉelju za dodavanje novih pitanja u evaluacijske obrasce. Za izradu web aplikacije korištene su sljedeće tehnologije: PHP: za dinamiĉko generiranje HTML koda [1] MYSQL: za pristup bazi podataka HTML/CSS: za definiranje izgleda aplikacije [2] Javascript: za interaktivnost i validacije [2] I sljedeći alati: WampServer Version 2.2 [3] Notepad++ v6.2.2 [4] Google Chrome v29 [5] 3

2. MOGUĆE ULOGE U APLIKACIJI Korisnici mogu imati jednu od sljedećih uloga: neregistrirani korisnik, registrirani korisnik ili administrator aplikacije. Uloge definiraju što korisnik može (i što ne može) vidjeti i napraviti u aplikaciji. Ovlasti svake uloge opisane su u nastavku. 2.1. Neregistrirani korisnici Neregistrirani korisnici mogu vidjeti poĉetnu stranicu, registrirati se, ulogirati se, oporaviti zaboravljenu lozinku i poslati poruku administratoru ako imaju bilo kakva pitanja u vezi aplikacije ili probleme sa registracijom ili logiranjem. 2.2. Registrirani korisnici Kada se ulogira, korisniku se prikaže vlastiti profil. Omogućeno mu je ureċivanje svog profila dodavanjem ili izmjenom odreċenih podataka (JMBG, OIB, grad, adresa, broj telefona), izmjena postavaka raĉuna (uloga, lozinka, e-mail adresa), pregled ocjena i komentara koje je dobio od ostalih korisnika, te kontaktiranje administratora. Za registrirane korisnike postoje dvije uloge: najmoprimac i najmodavac. Korisnik može izabrati jednu od tih uloga ili obje. U sluĉaju da korisnik ima obje uloge, samo jedna može biti aktivna u trenutnoj sjednici aplikacije. Po definiciji to je uloga najmoprimca, no korisnik to može u bilo kojem trenutku promijeniti. Moguće je pretraživati korisnike i pogledati njihove profile. Najmoprimci mogu pregledati ocjene i ocijeniti iskljuĉivo najmodavce, ne druge najmoprimce. Isto vrijedi i za najmodavce koji mogu pregledati i ocijeniti najmoprimce, ali ne ostale najmodavce. 4

2.3. Administratori aplikacije Administratori aplikacije su odvojeni od ostalih korisnika. Ne prikazuju se u rezultatima pretraživanja, nemaju profil, ne mogu ocijeniti korisnike. Dopušteno im je pretraživanje i pregled profila i ocjena. Za razliku od ostalih korisnika, administratori mogu dodavati nova pitanja u ankete i mogu odgovarati na poruke od neregistriranih i registriranih korisnika. 5

3. BAZA PODATAKA Baza podataka (rent) sadrži sljedećih jedanaest entiteta: Slika 3-1 Prikaz entiteta i atributa. 3.1. Korisniĉki raĉuni U trinaest atributa su spremljeni osnovni podaci o korisnicima. id: primarni kljuĉ, automatski se povećava za jedan username: jedinstveno korisniĉko ime; obavezno polje password: lozinka enkriptirana pomoću whirlpool algoritma; obavezno polje 6

ime: ime korisnika; obavezno polje prezime: prezime korisnika; obavezno polje email: jedinstvena e-mail adresa; obavezno polje jmbg: obavezno je upisati JMBG ili OIB; jedinstveno polje oib: obavezno je upisati JMBG ili OIB; jedinstveno polje uloga: 'p' najmoprimac, 'd' najmodavac, 'o' oboje kod: jedinstveni kod koji se pošalje korisniku prilikom registracije kako bi aktivirao korisniĉki raĉun. Nakon aktivacije, atribut kod dobiva vrijednost praznog stringa grad: nije obavezno polje adresa: nije obavezno polje tel: nije obavezno polje 3.2. Administratori aplikacije Entitet admins sadrži podatke o administratorima. id: primarni kljuĉ; automatski se povećava za jedan username: korisniĉko ime administratora password: lozinka enkriptirana whirlpool algoritmom 3.3. Vlastiti odgovori na pitanja za najmoprimce i najmodavce Entiteti custom_odg_najmodavac i custom_odg_najmoprimac sadrže odgovore na pitanja sa vlastitim odgovorima ponuċene od strane administratora. id: primarni kljuĉ; automatski se povećava za jedan odgovor: tekst odgovora id_pitanja: strani kljuĉ; ID pitanja kojemu pripada odgovor 7

3.4. Komentari na najmodavce i najmoprimce U entitetima komentari_najmodavac i komentari_najmoprimac saĉuvani su komentari koje su korisnici pisali. id: primarni kljuĉ; automatski se povećava za jedan from_id: strani kljuĉ; ID korisnika koji je napisao komentar to_id: strani kljuĉ; ID korisnika kojemu je namjenjen komentar datum: datum pisanja komentara komentar: tekst komentara 3.5. Ocjene najmoprimca i najmodavca U entitetima ocjene_najmodavac i ocjene_najmoprimac spremljene su ocjene koje su dobili korisnici. user_id: strani kljuĉ; ID korisnika koji je ocijenjen q_id: strani kljuĉ; ID pitanja kojemu pripada ova ocjena atr1, atr2: ovisno o vrsti pitanja, atr1 i atr2 imaju razliĉito znaĉenje navedeno u Tablici 3-1. Tablica 3-1 Znaĉenja atr1 i atr2 Vrsta pitanja atr1 atr2 da/ne broj odgovora da broj odgovora ne ocjenjivanje zbroj ocjena na pitanja broj korisnika koji su odgovorili na pitanje vlastiti odgovori ID vlastitog odgovora broj glasova za ovaj odgovor 8

3.6. Pitanja za najmoprimce i najmodavce Entiteti pitanja_najmodavac i pitanja_najmoprimac sadrže sva pitanja i potpitanja za ankete. id: primarni kljuĉ; automatski se povećava za jedan pitanje: tekst pitanja tip: može preuzeti jednu od tri vrijednosti: 0 da/ne pitanja, 1 pitanja na ocjenjivanje, 2 pitanja sa vlastitim odgovorima okidac: može preuzeti jednu od tri vrijednosti: 0 nema potpitanja, 'da' odabirom odgovora da prikaže se potpitanje, 'ne' odabirom odgovora ne prikaže se potpitanje jepodpitanje: zapisana vrijednost oznaĉava ID pitanja kojemu je ovo potpitanje (strani kljuĉ), a ukoliko je vrijednost nula navedeni zapis nije potpitanje min, max, korak: ukoliko se radi o pitanju na ocjenjivanje, min oznaĉava najmanju moguću ocjenu, max najveću, a korak za koliko se povećavaju vrijednosti izmeċu min i max 3.7. Poruke za administratora Entitet poruke sadrži sve poruke koje je administrator dobio od korisnika. id: primarni kljuĉ; automatski se inkrementira od_koga: oznaĉava ID korisnika koji je poslao poruku, a ukoliko se radi o neregistriranom korisniku, sadrži e-mail adresu na koju administrator može poslati odgovor naslov: naslov poruke sadrzaj: tekst poruke datum: datum kad je poruka poslana procitano: 0 poruka nije proĉitana; 1 poruka je proĉitana 9

4. RAD APLIKACIJE 4.1. Poĉetna stranica Skripta index.php je poĉetna stranica aplikacije. Na vrhu se nalazi banner, a glavni dio stranice je podijeljen na dva dijela. Lijevo se nalaze kratak opis aplikacije i poveznica na stranicu za kontaktiranje administratora, dok se desno korisnik može prijaviti, oporaviti zaboravljenu lozinku ili registrirati. Za prijavu su potrebni korisniĉko ime i lozinka. Javascript funkcija provjerava ako su ta dva polja ispunjena, a ukoliko nisu, odmah se korisniku ispiše poruka da unese korisniĉko ime, odnosno lozinku. Klikom na prijavu, POST metodom se šalju podaci istoj stranici i provjerava se ako u tablici accounts postoji unesena kombinacija korisniĉkog imena i lozinke. Ukoliko kombinacija postoji, provjerava se ako je korisniĉki raĉun aktiviran te ukoliko je aktivan, u sjednicu se spremaju ID i korisniĉko ime korisnika te trenutno aktivna uloga (u sluĉaju da korisnik ima obje uloge, nakon prijave će biti aktivna uloga najmoprimca). Ako korisnik nije pronaċen u tablici accounts, korisniĉko ime i lozinka se traže u tablici admins. Ako je pronaċen, u sjednicu se spremaju njegov ID i uloga. Slika 4-1 Naslovna stranica. 10

4.2. Registracija Skripta registracija.php se sastoji od html obrasca i javascript validacija. Validacije provjeravaju ako su sva polja ispunjena, ako se korisniĉko ime sastoji od minimalno šest znakova, ako su lozinka i potvrda lozinke iste i sadržavaju najmanje šest znakova, ako je e-mail adresa ispravna, ako se ime i prezime sastoje samo od slova, razmaka i crtica, ako se JMBG sastoji od trinaest znamenki, a OIB od jedanaest znamenki. Kada su svi ti uvjeti ispunjeni, podaci se POST metodom pošalju istoj stranici i provjerava se ako već postoji uneseno korisniĉko ime, e-mail adresa, OIB i JMBG. Ako ne postoje, podaci se spremaju u tablicu accounts, a lozinka se enkriptira pomoću hash [6] funkcije i whirlpool [7] algoritma. Da bi se provjerila ispravnost e-mail adrese, korisniku se pošalje e-mail sa poveznicom za aktivaciju korisniĉkog raĉuna. Kod za aktivaciju se dobije spajanjem e-mail adrese i dva nasumiĉna broja u string te njegovim haširanjem md5 funkcijom. Za slanje e-mailova korišten je PHPMailer [8]. E-mailovi se šalju preko Gmail-ovog SMTP servera (smtp.gmail.com) koristeći port 465 i Secure Sockets Layer (SSL) protokol. Slika 4-2 Obrazac za registraciju sa razliĉitim lozinkama i neispravnom e-mail adresom. 11

4.3. Skripta mail.php Nakon registracije, šalje se e-mail korisniku. Ovisno o tome ako je e-mail uspješno ili neuspješno poslan, prikazat će se jedna od sljedećih stranica: Slika 4-3 Uspješna registracija (mail.php?poslan=d). Slika 4-4 Neuspješna registracija (mail.php?poslan=n). 4.4. Potvrda registracije Kada korisnik klikne na poveznicu koju dobije u e-mailu, doċe na ovu stranicu gdje se izvrši skripta potvrdireg.php koja u bazi podataka traži kod dobiven GET metodom. Ako je pronaċen, korisniĉki raĉun se aktivira, tj. u atribut kod se spremi prazan string. Ako nije pronaċen, znaĉi da je korisniĉki raĉun već aktivan ili da je korisnik predugo ĉekao pa je link istekao. 12

Slika 4-5 E-mail sa poveznicom za aktivaciju korisniĉkog raĉuna. Slika 4-6 Uspješno aktiviran korisniĉki raĉun nakon klika na poveznicu. Slika 4-7 Neuspješno aktiviranje korisniĉkog raĉuna. 4.5. Oporavak zaboravljene lozinke Za oporaviti zaboravljenu lozinku potrebno je unijeti e-mail adresu korisniĉkog raĉuna i na tu adresu će se poslati nova lozinka. Nova lozinka se generira na sljedeći naĉin: substr(md5($_post['email']. $randnum1. "". $randnum2),rand(0,23),8); 13

gdje su $randnum1 i $randnum2 nasumiĉni brojevi. E-mail adresa i ta dva broja se spoje u string koji se hašira md5 funkcijom te se iz tog stringa izvuĉe osam znakova poĉinjući od nasumiĉne pozicije i tih osam znakova ĉini novu lozinku. Slika 4-8 Obrazac za oporaviti zaboravljenu lozinku. Slika 4-9 Korisniku se daje potvrda da mu je poslana nova lozinka e-mailom. Slika 4-10 E-mail sa novom lozinkom. 14

4.6. Profil korisnika Kad se korisnik ulogira, na vrhu stranice nema više bannera, nego se pojavi traka sa logom i poveznicama na profil, pretraživanje i odjavu. Ukoliko korisnik ima obje uloge, u gornjem desnom kutu može promjeniti trenutno aktivnu ulogu u sjednici. Javascriptom je realizirana interaktivnost, a klikom na najmoprimac ili najmodavac poziva se skripta promjeniulogu.php. Na profilu su prikazani svi podaci koje je korisnik unio (uloga, OIB, JMBG, e-mail, grad, adresa, telefon). Ako se korisnik nalazi na svom profilu, na desnoj strani će mu biti ponuċeno da uredi profil, promjeni postavke raĉuna, pogleda ocjene koje je dobio, ili kontaktira administratore. Ako se nalazi na neĉijem profilu, može ocijeniti tog korisnika ili pogledati njegove ocjene (samo ako imaju razliĉite uloge). Slika 4-11 Kako korisnik vidi svoj profil. 15

Slika 4-12 Kako korisnik vidi profil ostalih korisnika. 4.7. UreĊivanje profila Korisnik može mijenjati unesene podatke s time da vrijede isti uvjeti kao kod registracije: mora biti unesen OIB i/ili JMBG, provjera broja znamenki, grad može sadržavati samo slova i razmake. Da bi se spremile promjene, potrebno je upisati lozinku. Slika 4-13 UreĊivanje profila; netoĉno napisan grad, nedostaju OIB ili JMBG. 16

4.8. Postavke raĉuna U postavkama raĉuna mogu se promijeniti e-mail adresa i lozinka, no potrebno je upisati i staru lozinku. Ukoliko se korisnik registrirao samo sa jednom ulogom, može proširiti korisniĉki raĉun i na drugu ulogu. Suprotno (sa dvije uloge, reducirati na jednu), nije dozvoljeno. Slika 4-14 Postavke raĉuna kada korisnik ima samo jednu ulogu (dozvoljeno proširiti se na dvije). Slika 4-15 Postavke raĉuna kada korisnik ima obje uloge (nije dozvoljeno reducirati na jednu). 17

4.9. Kontaktiranje administratora aplikacije GET metodom se može dohvatiti ID korisnika koji šalje poruku ako je ulogiran, a ako nije, znaĉi da korisnik nije prijavljen i traži se da upiše e-mail adresu kako bi mu administrator mogao odgovoriti. Klikom na pošalji, poruka se sprema u bazu. U atribut pošiljatelj sprema se e-mail adresa ako korisnik nije ulogiran ili ID korisnika koji je ulogiran. Spremaju se naslov i sadržaj koje je unio korisnik, trenutni datum, a atribut procitano se postavlja na false. Slika 4-16 Slanje poruke kada korisnik nije prijavljen. 18

Slika 4-17 Slanje poruke kada je korisnik prijavljen. 4.10. Ocjenjivanje korisnika Provjeravaju se uloge ulogiranog korisnika i korisnika kojeg se želi ocjeniti. Ukoliko su iste, ispisuje se poruka: Nemate dozvolu za ocijeniti ovog korisnika. Ukoliko ste i najmodavac i najmoprimac, provjerite Vašu trenutnu ulogu. Ako imaju razliĉite uloge, povlaĉe se pitanja iz baze podataka i, ovisno o vrsti pitanja, prikazuju se u obrascu za ocjenjivanje korisnika. Uneseni podaci se šalju datoteci spremiocjene.php POST metodom. 19

Slika 4-18 Obrazac za ocjenjivanje najmodavca. 20

Slika 4-19 Obrazac za ocjenjivanje najmoprimca. 4.11. Spremanje ocjena u bazu podataka GET metodom se dohvaćaju ID korisnika kojeg se ocjenjuje i njegova uloga. Nakon toga, dohvaćaju se pitanja iz baze podataka i ako je korisnik odgovorio na to pitanje, odgovor se sprema u bazu. Tri su funkcije za spremanje odgovora, ovisno o vrsti pitanja. Kao prvo, provjerava se ako u bazi već postoji zapis o tom korisniku i tom pitanju (za sluĉaj pitanja sa vlastitim odgovorima, traži se zapis odreċenog korisnika, pitanja i odgovora). Ako nije pronaċen, onda se inicijalizira u bazi na sljedeći naĉin: 21

da/ne pitanja: atr1 i atr2 se postavljaju u nulu pitanja na ocjenjivanje: atr1 i atr2 se postavljaju u nulu pitanja sa vlastitim odgovorima: atr1 uzima vrijednost odgovora dobivenog POST metodom, odnosno ID-a vlastitog odgovora, a atr2 se postavlja u nulu Nakon inicijalizacije (ako je potrebna), ažurira se zapis u bazi na sljedeći naĉin: da/ne pitanja: ako je odgovor dobiven POST metodom istina, inkrementira se atr1, inaĉe inkrementira se atr2 pitanja na ocjenjivanje: atr1 se poveća za vrijednost odgovora, a atr2 se poveća za jedan pitanja sa vlastitim odgovorima: atr2 se inkrementira tamo gdje je atr1 jednak dobivenom odgovoru (i ID korisnika i ID pitanja odgovaraju tom korisniku i tom pitanju). Poslije odgovora, sprema se komentar (ako postoji) i korisnika se vraća na profil korisnika kojeg je ocjenio. 4.12. Prikaz ocjena korisnika Korisnicima se prikazuju ocjene samo ako gledaju vlastite ocjene ili od korisnika koji ima suprotnu ulogu od njihove. Pitanja i odgovori se povlaĉe iz baze podataka i prikažu na stranici. Kada korisnik ima ulogu najmoprimca i najmodavca, administratoru se prikazuju ocjene za obje uloge u karticama [9]. 22

Slika 4-20 Kako korisnik vidi ocjene najmoprimca. 23

Slika 4-21 Kako administrator vidi ocjene najmodavca kada korisnik ima obje uloge. 24

4.13. Pretraživanje Skripta pretraga.php se sastoji od obrasca i Javascript validacija. Validacije provjeravaju da ime i prezime sadrže iskljuĉivo slova, razmak i crticu, da OIB ima jedanaest znamenki, a JMBG trinaest, da grad sadrži slova i razmak, adresa slova, razmak i brojeve. Klikom na Traži, podaci se šalju POST metodom stranici pretragarezultati.php. Slika 4-22 Obrazac za pretraživanje. 4.14. Rezultati pretraživanja Pretraživanje se radi po svim kriterijima koje je unio korisnik. Ime, prezime i adresa ne moraju biti u cijelosti napisani, već je dovoljan jedan dio, primjerice sva imena koja u sebi 25

sadržavaju ta. Rezultati pretraživanja se prikazuju kao ime i prezime korisnika (što je ujedno i poveznica na njegov profil), uloga, i grad (ako postoji). Slika 4-23 Prikaz rezultata pretraživanja. 4.15. Administratorsko suĉelje Admin panel nudi administratoru dvije mogućnosti: ureċivanje pitanja za ankete i pregled poruka koje je dobio od korisnika. Slika 4-24 Admin panel. 26

4.16. Pregled postojećih i dodavanje novih pitanja Osnovni prikaz objedinjuje sva pitanja za najmoprimce i najmodavce unutar kartica, dok se sa desne strane administratoru aplikacije nude mogućnosti prikaza pitanja i dodavanja novih pitanja. U sluĉaju da administrator želi dodati novo pitanje, mora izabrati kome je isto namijenjeno (najmoprimcima ili najmodavcima), upisati tekst pitanja te izabrati vrstu. Javascriptom je realizirano da, prilikom odabira vrste pitanja, administratora se traže dodatni podaci na sljedeći naĉin: da/ne pitanje: otvara se mogućnost dodavanja potpitanja koje se može prikazati kada korisnik odgovori da ili kada odgovori ne. Postupak za dodavanje potpitanja je isto kao i za glavno pitanje s jedinom razlikom da potpitanje ne može imati drugo potpitanje pitanja na ocjenjivanje: od administratora se traži da upiše najmanju i najvišu ocjenu te korak kojim će se povećavati ocjene izmežu najmanje i najviše pitanja sa vlastitim odgovorima: administrator može dodati odgovora koliko želi, a najmanje dva Svi podaci se šalju POST metodom datoteci spremi-pitanja.php. 4.17. Spremanje pitanja u bazu podataka Skripta spremi-pitanja.php sprema podatke primljene od pitanja-odgovori.php?akcija=novo u bazu podataka. Prvo se dohvaća kome je namijenjeno pitanje da bi se mogla izabrati tablica u koju će se spremati. Nakon toga vrsta pitanja, o ĉemu će ovisiti naĉin spremanja u bazu. 27

Slika 4-25 Prikaz svih pitanja. 28

Slika 4-26 Dodavanje novog pitanja. 4.18. Prikaz svih dobivenih poruka Poruke su poredane u silazećem redoslijedu prema atributu datum. Pod pošiljatelj, pišu ime i prezime korisnika ukoliko je poruku poslao ulogirani korisnik, ili e-mail adresa ako je poruku poslao neregistrirani korisnik. Klikom na ime i prezime pošiljatelja, otvara se njegov profil. 29

Klikom na naslov poruke, otvara se poruka. Pošiljatelj i naslov poruke su podebljani ako je poruka neproĉitana. Slika 4-27 Prikaz dobivenih poruka. 4.19. Prikaz sadržaja jedne poruke GET metodom dohvaća ID poruke koja se želi prikazati. Ako je pošiljatelj registrirani korisnik, onda je njegovo ime poveznica na njegov profil. Ispod poruke, administratoru se nudi mogućnost odgovora na poruku. Kada se poruka otvori, u bazi podataka se oznaĉi kao proĉitana. 4.20. Odgovaranje na poruke Slika 4-28 Prikaz sadržaja poruke. Po definiciji, naslov odgovora je RE: (naslov originalne poruke), no administrator može upisati neki drugi naslov. Ako je poruku poslao neregistrirani korisnik, odgovor se šalje na e-mail 30

adresu koju je korisnik dao prilikom pisanja poruke. Ako je pošiljatelj ulogirani korisnik, odgovor se šalje na e-mail adresu kojom se registrirao. Slika 4-29 Odgovaranje na poruke od korisnika. 4.21. Odjavljivanje Skripta logout.php briše sve podatke iz trenutne sjednice i odjavljuje ju. 4.22. Promjena aktivne uloge u sjednici aplikacije GET metodom dohvaća se uloga koju je korisnik odabrao te URL stranice na kojoj je bio kako bi ga se moglo vratiti na istu nakon što se spremi u sjednici odabrana uloga. 31

4.23. Skripta db_config.php Skripta db_config.php sadrži podatke potrebne za spajanje na bazu podataka i postavlja character set na utf8. 4.24. Izgled aplikacije Main.css definira izgled raznih klasa unutar aplikacije. 32

5. SIGURNOST Poĉetno su sve lozinke bile enkriptirane md5 algoritmom [10], no nakon malo istraživanja pokazalo se da se md5 ne preporuĉuje za lozinke. Razlog je da nije collision resistant, tj. nije teško naći dva stringa a i b za koje će vrijediti da je md5(a) = md5(b) i a b. Sa današnjim procesorima, uz optimizirane metode, moguće je naći kolizije u par sekundi [11]. Na Internetu se mogu naći tzv. rainbow tables [12] pomoću kojih se iz md5 hash koda može dobiti prvotni string. Sigurnost se može povećati dodavanjem jedinstvenog sufiksa (tzv. salt) stringu prije enkripcije. Umjesto md5 varijante sa sufiksom, u aplikaciji je korišten whirlpool algoritam [7]. Za razliku od md5 koji daje izlaz od 128 bita, whirlpool vraća 512 bitova što ga ĉini sigurnijim jer što je duži hash kod, duže će trebati da se probije. 33

6. BUDUĆI RAD I ZAKLJUĈAK Kao u svakoj aplikaciji, tako i u ovoj, ima još puno mogućnosti i ideja za budući razvoj. Prva stvar koja bi se trebala napraviti je dodavanje mogućnosti da korisnici stvore profil i ocjenjuju osobe koje nisu registrirane na stranicu. Npr. najmodavac koji i sam zna da je loš najmodavac, teško da bi se registrirao i dozvolio da ga korisnici loše ocjenjuju. Stoga je potrebno dozvoliti korisnicima da naprave profile za neregistrirane osobe. Kao drugo, ne bi bilo loše napraviti bolji i ljepši prikaz ocjena koje je dobio korisnik, možda dodavanjem grafova, a kod pregleda komentara, potrebno je dodati mogućnosti prijave komentara ako su uznemirujući. Nadalje, korisnicima se može omogućiti slanje poruka ostalim korisnicima. U upravljaĉkoj ploĉi postoji neiskorišteni prostor u koji bi se mogle dodati, npr., notifikacije o dobivanju nove poruke, stvaranju novih profila, itd. Korisniku bi se takoċer moglo javiti da je dobio novi komentar ili da ga je novi korisnik ocijenio. Potrebno je omogućiti administratoru da, osim dodavanja novih pitanja, može urediti i brisati postojeća. Nadalje, administrator bi trebao blokirati pristup stranici korisnicima koje su prijavili ostali korisnici zbog neprikladnog izražavanja. Isto tako bi trebao moći odblokirati korisnike nakon odreċenog vremena. Još jedna dužnost administratora bila bi brisanje neprikladnih komentara kada ih korisnici prijave. Mogao bi se proširiti doseg aplikacije na prikaz ponuda najmodavaca (stanova, garaža,...) te možda dozvoliti i njihovo ocjenjivanje. Ili, jednostavno povezati se sa već postojećim aplikacijama za unajmljivanje. Aplikacija je napravljena i testirana u Google Chrome (v29) pregledniku. U ostalim preglednicima dolazi do malih razlika u izgledu aplikacije stoga bi se ona trebala prilagoditi da bude jednaka u većini preglednika. Na kraju, zbog brzog širenja pametnih telefona, bilo bi dobro razviti mobilnu verziju aplikacije. 34

LITERATURA [1] PHP Manual http://php.net/manual/en/index.php [2] w3schools http://www.w3schools.com/ [3] WampServer http://www.wampserver.com/en/ [4] Notepad++ http://notepad-plus-plus.org/ [5] Google Chrome https://www.google.com/intl/en/chrome/browser/ [6] Hash funkcija u PHP-u http://www.php.net/manual/en/function.hash.php [7] Whirlpool algoritam http://en.wikipedia.org/wiki/whirlpool_%28cryptography%29 [8] PHPMailer https://github.com/synchro/phpmailer [9] Kod za realizaciju kartica preuzet sa stranice http://fotis.co/projects/simpletabs/ [10] Md5 funkcija u PHP-u http://php.net/manual/en/function.md5.php [11] Master s thesis: On Collisions for MD5, By M.M.J. Stevens http://www.win.tue.nl/hashclash/on%20collisions%20for%20md5%20- %20M.M.J.%20Stevens.pdf [12] Rainbow tables http://en.wikipedia.org/wiki/rainbow_table 35