Registracija vozila

Seminarski rad iz predmeta Internet tehnologije

Registracija vozila

Seminarski rad iz predmeta Internet tehnologije

Student: Miloradović Darko

Beograd, jun 2020.

Korisnički zahtev

Potrebno je projektovati i implementirati web aplikaciju za registraciju vozila. Sistem treba da bude u mogućnosti da prepozna dve vrste korisnika: kontrolora i vlasnike vozila(običan korisnik). Vlasnik vozila ima obične privilegije.

Vlasnik vozila treba da bude u mogućnosti, pre svega, da se registruje i uloguje na sajt. Vlasnik je u mogućnosti da pretražuje vozila koja se nalaze u sistemu, zatim vidi listu svojih vozila koja su registrovana i datum važenja istih i da vrši izmenu svoje email adrese. Međutim, samo nakon registracije on je u mogućnosti da registruje automobil.

Kontrolor ima pristup panelu za registraciju automobila i pregled izveštaja do sada urađenih registracija, kao i slanje dnevnog izveštaja prilikom zatvaranja kase. Panel za registraciju automobila mu omogućava da registruje automobil sa željenom tablicom, da vrši izmenu registracione tablice, ima uvid u sve dosadašnje registracije sa mogućnošću za njihovom pretragom, kao i mogućnost brisanja nevažećih tablica. Takođe, na panelu za izveštaje može da ima uvid o broju registrovanih automobila, kao i da šalje dnevni izveštaj prilikom zatvaranja kase.

Opis sistema

2.1. Opis slučajeva korišćenja

Karakteristični slučajevi korišćenja su:

  1. Registracija vlasnika vozila

  2. Prijava (login) vlasnika/kontrolora

  3. Unos registracionih tablica

  4. Izmena registracionih tablica

  5. Pregled i pretraga registracionih tablica

  6. Pregled i pretraga svih vozila

  7. Izmena email adrese

  8. Brisanje nevažećih tablica

  9. Odjavljivanje vlasnika/kontrolora sa sajta

Dijagram slučajeva korišćenja 1: Vlasnik vozila

Dijagram slučajeva korišćenja 2: Kontrolor

2.1.1. Unos registracionih tablica

Dijagram slučajeva korišćenja 3: Unos registracionih tablica

Slučaj korišćenja – Unos registracionih tablica

Naziv SK: Unos tablica

Aktori SK: Kontrolor

Učesnici SK: Kontrolor, sistem

Preduslov: Sistem je pokrenut i kontrolor je ulogovan.

Osnovni scenario:

  1. Kontrolor unosi podatke za registracionu tablicu.

  2. Sistem čuva registracionu tablicu.

UML dijagram 1: Unos registracionih tablica (osnovni scenario)

Alternativni scenario:

4.1. Ukoliko sistem nije uspeo da sačuva destinaciju, šalje poruku: “Registraciona tablica nije sacuvana”.

UML dijagram 2: Unos registracionih tablica (alternativni scenario)

2.1.2. Pregled registrovanih vozila

Dijagram slučajeva korišćenja 4: Pregled registrovanih vozila

Slučaj korišćenja – Pregled registracionih tablica

Naziv SK: Pregled tablica

Aktori SK: Vlasnik vozila

Učesnici SK: Vlasnik vozila, sistem

Preduslov: Sistem je pokrenut i vlasnik je registrovan.

Osnovni scenario:

  1. Vlasnik unosi podatke za prijavu na sistem.

  2. Sistem izvršava prijavu.

  3. Sistem šalje poruku vlasniku: “Uspešno ste se ulogovali”.

  4. Vlasnik vrši pregled svojih registrovanih vozila.

  5. Sistem vraća sva registrovana vozila koja pripadaju ulogovanom vlasniku.

UML dijagram 3: Pregled registracionih tablica (osnovni scenario)

Alternativni scenario:

5.1. Sistem nije uspeo da pronađe registrovana vozila, šalje poruku: “Nisu pronađena vozila po zadatom kriterijumu”.

UML dijagram 4: Pregled registracionih tablica (alternativni scenario)

2.1.3. Izmena email adrese

Dijagram slučajeva korišćenja 5: Izmena email adrese

Slučaj korišćenja – Izmena email adrese

Naziv SK: Izmena emaila

Aktori SK: Vlasnik vozila

Učesnici SK: Vlasnik vozila, sistem

Preduslov: Sistem je pokrenut i vlasnik je registrovan.

Osnovni scenario:

  1. Vlasnik unosi podatke za prijavu na sistem.

  2. Sistem izvršava prijavu.

  3. Sistem šalje poruku vlasniku: Uspešno ste se ulogovali.

  4. Vlasnik vrši unos nove email adrese.

  5. Sistem čuva novu email adresu.

  6. Sistem šalje poruku: “Email je promenjen”.

UML dijagram 5: Izmena email adrese (osnovni scenario)

Alternativni scenario:

5.1. Sistem nije uspeo da promeni email adresu, šalje poruku: “Greška prilikom promene email adrese”.

UML dijagram 6: Izmena email adrese (alternativni scenario)

2.2. Opis arhitekture sistema

2.2.1. Dijagram klasa

UML dijagram 7: Opis arhitekture sistema

2.2.2. Struktura baze

U ovom radu korišćena je baza podataka koja se zove seminarski.

Naša baza podataka sastoji se od 4 tabela:

  1. Tablice

  2. Korisnik

  3. Uloga

  4. Vozilo

Tabela “vozilo” se sastoji iz 3 kolone: id, model i marka.

Tabela “korisnik” se sastoji iz 5 kolona: id, ime_prezime, email, sifra i id_uloga.

Tabela “uloga” se sastoji iz 2 kolone: id i naziv.

Tabela “tablice” se sastoji iz 7 kolona: id, id_vlasnik, id_kontrolor, id_vozilo, tablica, datum i cena.

Kod tabele “korisnik”, kolona email je uslovljena UNIQUE ograničenjem. Naravno, preko prikazanih veza možemo uočiti postojanje spoljnih ključeva. Spoljni ključevi za tebelu “tablice” je id_vlasnik, id_kontrolor, id_vozilo. Spoljni ključ za tabelu “korisnik” je: id_uloga. Svi primarni ključevi imaju AUTO_INCREMENT postavljenu opciju.

2.2.3. Specifikacija REST API-ja

Postoje sledeće rute na restfull api-ju:

2.2.3.1. Pregled svih tablica

Opis funkcije

Pregled svih registrivanih vozila

HTTP metoda

GET

URL

/rest/tablice

URL parametri

(nema)

HTTP body parametri

(nema)

Format HTTP body parametara

(nema)

Izlazni parametri

Primer:

[

{

"id": "1",

"tablica": "NS-351-SA",

"datum": "2020-06-09",

"cena": "2631",

"vlasnik": "Boban Pajic",

"kontrolor": "Darko Miloradovic",

"marka": "Skoda",

"model": "Rapid"

},

{

"id": "2",

"tablica": "BG-001-SA",

"datum": "2020-06-18",

"cena": "2193",

"vlasnik": "Biljana Peric",

"kontrolor": "Darko Miloradovic",

"marka": "Ford",

"model": "Ka"

},

{

"id": "3",

"tablica": "BG-001-DF",

"datum": "2020-06-18",

"cena": "2193",

"vlasnik": "Dragana Vincic",

"kontrolor": "Darko Miloradovic",

"marka": "Audi",

"model": "A4"

},

{

"id": "4",

"tablica": "BG-003-JK",

"datum": "2020-04-18",

"cena": "2193",

"vlasnik": "Dalibor Mitic",

"kontrolor": "Drago Milic",

"marka": "Skoda",

"model": "Karoq"

},

{

"id": "5",

"tablica": "BG-003-JM",

"datum": "2020-06-18",

"cena": "2193",

"vlasnik": "Dragan Jaksic",

"kontrolor": "Drago Milic",

"marka": "Honda",

"model": "HRV"

},

{

"id": "6",

"tablica": "BG-003-JM",

"datum": "2020-06-18",

"cena": "2193",

"vlasnik": "Dragan Jaksic",

"kontrolor": "Drago Milic",

"marka": "Honda",

"model": "HRV"

},

]

Format izlaznih parametara

application/json

2.2.3.2. Pregled jedne tablice

Opis funkcije

Pregled jednog registrovanog vozila

HTTP metoda

GET

URL

/rest/tablice/@id

URL parametri

id

HTTP body parametri

(nema)

Format HTTP body parametara

(nema)

Izlazni parametri

Primer:

[{

"id": "75",

"tablica": "JA-023-TX",

"datum": "2020-06-19",

"cena": "2193",

"vlasnik": "Jovan Bubonja",

"kontrolor": "Darko Miloradovic",

"marka": "Audi",

"model": "Q7"

}]

Format izlaznih parametara

application/json

2.2.3.3. Unos tablice

Opis funkcije

Unos registracione tablice

HTTP metoda

POST

URL

/rest/tablice

URL parametri

(nema)

HTTP body parametri

idVlasnik, idKontroler, idVozilo, tablica, cena

Format HTTP body parametara

[{ "idVlasnik":" "32",

"idKontrolor":" "1",

"idVozilo":" "17",

"tablica":" "BG-002-FG",

"cena":" "2163"

}]

Izlazni parametri

Primer:

[{"poruka": "Reg tablica je uspešno ubačena"}]

Format izlaznih parametara

application/json

2.2.3.4. Izmena tablice

Opis funkcije

Izmena registracione tablice

HTTP metoda

PUT

URL

/rest/tablice/@id

URL parametri

id

HTTP body parametri

tablica

Format HTTP body parametara

[{"tablica": "BG-015-GG"}]

Izlazni parametri

Primer:

[{"poruka": "Reg tablica je uspešno promenjena"}]

Format izlaznih parametara

application/json

2.2.3.5. Brisanje tablice

Opis funkcije

Brisanje registracione tablice

HTTP metoda

DELETE

URL

/rest/tablice/@id

URL parametri

id

HTTP body parametri

(nema)

Format HTTP body parametara

(nema)

Izlazni parametri

Primer:

[{"poruka": "Reg tablica je uspešno obrisana"}]

Format izlaznih parametara

application/json

Last updated

Was this helpful?