kovacevic-marko / Car-Rental-Management-System

Cloud based management solution designed specifically for managing vehicle rental business.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Car-Rental-Management-System

Sistem se sastoji od mobilne i desktop aplikacije.

Mobilna aplikacija omogućava korisniku:

  • Rezervisanje određenog automobila
  • Pregled istorije iznajmljivanih automobila
  • Pregled informacija o firmi

Desktop aplikacija omogućava korisniku:

  • Vođenje evidencije o iznajmljivanju i vraćanju automobila
  • Pregled slobodnih i zauzetih automobila
  • Pregled ugovora iznajmljivanja
  • Vođenje evidencije o klijentima
  • Vođenje evidencije o servisiranju automobila
  • Pregled statistike automobila koji su se najviše kvarili u određenom periodu(na osnovu toga vlasnik može da odluči koji automobil da proda ili kupi)
  • Vođenje evidencije o finansijama (moguće je prikazati zaradu po danima,mesecima i godinama)
  • Promenu cene iznajmljivanja (pritom da stare cene važe za iznajmljivanja automobila koji su iznajmljeni pre promene cene)
  • Vođenje evidencije o radnicima
  • Pregled efikasnosti svakog radnika (prikazivanje koliko je radnik iznajmio automobila u određenom periodu i na osnovu toga vlasnik može da nagradi ili otpusti radnika)
  • Pregled radnih ugovora
  • Pregled statistike iznajmljivanja automobila za određeni period (na osnovu toga vlasnik može da odluči koji automobil da kupi ili da proda)
  • Promenu postojanost automobila u firmi (ako je automobil prodat ili iz nekog drugog razloga više ne postoji u firmi, korisnik može to zabeležiti kako automobil ne bi mogao više da se iznajmljuje a da pritom informacije o iznajmljivanju za taj automobili ostanu dostupne ili ako vlasnik firme želi da koristi neki automobil za lične potrebe a da to korišćenje ne evidentira)

Korišćeni alati za razvoj sistema

Mobilna aplikacija je pravljena u cross platformi Xamarin, u programskom jeziku C#. Dostupna je za Android i iOS telefone.

Desktop aplikacija je pravljena uz pomoć Windows Forms i .NET Framework-a.

Baza podataka je pravljena u Microsoft SQL Server-u.

Baza podataka je postavljena online, na Micrososft Azure cloud-u, da bi moglo da joj se pristupi putem mobilne i desktop aplikacije.

Razvojno okruženje koje je korišćeno je Micrososft Visual Studio.

Relacioni model baze podataka

Mobilna aplikacija

1. Login

Na Login stranici korisnik unosi Korisničko ime I Lozinku kako bi mogao da koristi aplikaciju.

Ukoliko korisnik ne popuni sva polja pojavljuje mu se obaveštenje.

Slika kada korisnik popuni sva polja.

Ukoliko korisnik unese pogrešno Korisničko ime ili Lozinku pojavljuje mu se obaveštenje.

2. Rezervisanje automobila

Kada se korisnik uspešno uloguje, redirektuje se na stranicu za rezervisanje automobila. Na njoj se prikazuje ime i prezime korisnika i njegov korisnički ID (koji se koristi u Desktop aplikaciji za iznajmljivanje automobila). Ukoliko korisnik želi da se odjavi iz aplikaciji, to će uraditi klikom na dugme Logout.

Kada korisnik odabere model automobila, prikazuje mu se kolika je cena po jednom danu za iznajmljivanje izabranog modela automobila. Opcija za Rezervisanje automobila je onemogućena sve dok korisnik ne odabere željeni automobil, kada korisnik odabere automobil, dugme za rezervisanje se omogućuje.

Kada korisnik rezerviše automobil, prikazuje mu se obaveštenje.

Ukoliko je korisnik već rezervisao automobil, na početnoj stranici mu se prikazuju informacije o tom automobilu i do kada mu važi rezervacija. Ukoliko korisnik želi da otkaže rezervaciju, to će uraditi klikom na dugme Otkaži rezervaciju. Korisnik može samo jedan automobil da rezerviše. Rezervacija važi 24h od trenutka kada je automobil rezervisan.

3. Istorija iznajmljivanja automobila

Na ovoj stranici korisnik može videti istoriju iznajmljivanja automobila, hronološki poređanu, počevši od poslednjeg iznajmljivanja pa sve do prvog automobila koji je iznajmio.

4. Kontakt Informacije

Na ovoj stranici korisnik može videti informacije o Rent a car firmi, ulicu gde se nalazi firma i njen broj telefona.

Desktop aplikacija

0. Login

Na Login formi radnik unosi svoje Korisničko ime i Lozinku kako bi moga da koristi program. U zavisnosti od vrste radnika koji se prijavljuje za korišćenje programa dobijaju se određene privilegije za pristupanje delova programa.
Privilegije za korišćenje programa su:
  • Recepcioner (može da koristi: Iznajmljivanje, Klijenti, Servisi i Nalog)
  • Finansijski radnik (može da koristi: Iznajmljivanje, Klijenti, Servisi, Finansije i Nalog)
  • Direktor (Ima potpunu kontrolu nad programom, može da koristi: Iznajmljivanje, Klijenti, Servisi,Finansije,Radnici,Automobil i Nalog)

Prilikom prijavljivanja ukoliko se ne popune sva polja izbacuje se obaveštenje korisniku, isto obaveštenje se pojavljuje dalje u svim delovima programa.

Ukoliko korisnik unese nepostojeće Korisničko ime izbacuje mu se obaveštenje.

Ukoliko korisnik unese pogrešnu Lozinku izbacuje mu se obaveštenje.

1. Početna

Izgled aplikacije kada se prijavi **Recepcioner** za korišćenje programa. Ispisuje mu se na početnoj strani njegovo ime i prezimei i postavlja se određena ikonica za recepcionere na dugme Nalog.

Izgled aplikacije kada se prijavi **Finansijski radnik** za korišćenje programa. Ispisuje mu se na početnoj strani njegovo ime i prezime i postavlja se određena ikonica za finansijske radnike na dugme Nalog.

Izgled aplikacije kada se prijavi **Direktor** za korišćenje programa. Ispisuje mu se na početnoj strani njegovo ime i prezime i postavlja se određena ikonica za direktore na dugme Nalog.

2. Iznajmljivanje

U ovom delu korisnik bira da li želi da:
  • Iznajmi auto
  • Vrati auto
  • Pogleda slobodne automobile za iznajmljivanje
  • Pogleda zauzete automobile koji su već iznajmljeni
  • Pogleda ugovore iznajmljivanja

2.1 Iznajmi auto

U ovom delu korisnik iznajmljuje automobile. Korisniku je prvo onemogućeno da unosi podatke za iznajmljivanje sve dok se na izaberu po redosledu prvo Proizvođač zatim Proizvođačeve model automobila (koji su učitani prilkom odabira u combo box-u Proizvođač) zatim Broj registracije automobila (koji je ućitan prilikom odabira Modela iz combo box-a, svi Brojevi registracije predstavljaju automobile koji su slobodni).

Kada korisnik izabere automobil koji želi da iznami odobrava mu se unošenje podataka. Korisnik unosi ID klijenta kome želi da iznajmi automobil. Već je zabeležen ID radnika prilikom prijavljivanja na program. Ispisuje se koja je trenutna cena iznajmljivanja u dinarima (kasnije Finansijski radnik može da promeni cenu iznajmljivanja za taj model ali se u ugovoru beleži ID cene koja je bila u tom trenutku) za izabrani model automobila. Ispisuje je se tačno vreme od kada je iznajmljen automobil (trenutno vreme) Unosi se datum do kada se iznajmljuje automobil (ukoliko korisnik prekorači taj datum mora da plati dvostruko za te prekoračene dane iznajmljivanja) Unosi se način plaćanja (keš ili kartica)

Kada se kligne na dugme Iznajmi prvo se proverava da li je automobil rezervisan. Ukoliko je automobil rezervisan onda se proverava da li je izabrani klijent baš taj koji je rezervisao automobil, ukoliko nije on rezervisao, korisniku se prikazuje obaveštenje:

Ukoliko automobil nije rezervisan ili je klijent baš taj koji je rezervisao, automatski se postavlja da je automobil zauzet, pravi se ugovor i pravi se istorija iznajmljivanja (u toj istoriji će se beležiti kada je automobil vraćen, koji radnik je vratio automobil. kolika je zarada, pre toga je upisana u istoriji zarada koju je kupac platio prilikom iznajmljivanja a ukoliko se prekorače dani ta zarada se povećava). Kada se iznajmi automobil izbacuje se korisniku obaveštenje i uklanjaju se podaci iz forme i onemogućuje se unošenje podatka sve dok se ponovo istim redosledom ne odabere automobil.

2.2 Vrati auto

U ovom delu korisnik vraća iznajmljeni automobil. Učitava se korisnikov ID koji je zapamćen prilikom prijavljivanja u program. Ukoliko se unese nepostojeći broj registracije automobila prikazuje se korisniku obaveštenje.

Ukoliko se unese broj registracije za automobil koji nije iznajmljen korisniku se prikazuje obaveštenje.

Kada se vrati automobil korisniku se prikazuje obaveštenje i beleži se kada je automobil vraćen i koji radnik ga je vratio.

2.3 Slobodni automobili

U ovom delu se prikazuju slobodni automobili i njihov ukupan broj.

2.4 Zauzeti automobili

U ovom delu se prikazuju zauzeti automobili i njihov broj.

2.5 Ugovori iznajmljivanja

U ovom delu se prikazuju ugovori iznajmljivanja koji sadrže:
  • Broj ugovora
  • Broj registracije automobila
  • Klijenta
  • Radnika
  • Datim kada je iznajmlje automobil
  • Datum do kada je iznajmljen automobil
  • Cena iznajmljivanja koja je bila na dan iznajmljivanja
  • Način plaćanja

3. Klijenti

U ovom delu korisnik bira da li želi da:
  • Doda klijenta
  • Pretraži klijenta
  • Izmeni klijenta

3.1 Dodaj klijenta

U ovom delu korisnik dodaje nove klijente. Ukoliko se pokuša dodati klijent koji već postoji pojavljuje se upozorenje (u bazi se prvo proverava da li već postoji JMBG kod klijenata).

Ukoliko se pokuša dodati Username klijenta koji već postoji pojavljuje se upozorenje.

Kada se doda klijent pojavljuje se obaveštenje da je uspešno dodat i ispisuje se njegov korisnički ID.

Nakon dodavanja klijenta brišu se sva polja sa forme.

3.2 Pretraga klijenata

U ovom delu korisnik pretražuje klijente. Prilikom ulaženja u ovaj deo programa, učitavaju se svi klijenti iz baze podataka. Moguće je pretraživati klijente po njihovom ID-ju, Imenu, Prezimenu, preko JMBG-a, broja telefona, email-a, datuma rođenja i datuma učlanjenja.

3.3 Izmeni klijenta

U ovom delu je moguće izmeniti informacije o klijentu. Korisnik prvo unosi ID klijenta da bi pronašao klijenta. Ukoliko se unese neispravan ID klijenta korisniku se prikazuje upozorenje.

Kada se unese ispravan ID klijenta., ispisuju se njegovi podaci i omogućava se njihovo menjanje.

Klikom na dugme Izmeni menjaju se podaci (sva polja sa * moraju biti popunjena da bi se izmenili podaci) klijenta. Klikom na dugme Promeni klijenta omogućava se unošenje ID klijenta i brišu se sva ostala polja na formi kako bi moglo da se pretraži ponovo klijent.

4. Servisi

U ovom delu korisnik bira da li želi da:
  • Vidi statistiku najservisiranijih automobila
  • Pošalje automobil na servis i time onemogući njegovo iznajmljivanje
  • Vrati automobil sa servisa
  • Prikaže istoriju servisiranja
  • Doda servisera

4.1 Najservisiraniji automobili

U ovom delu korisnik može videti statistiku najservisiranijih automobila. Prilikom otvaranja ovog dela programa učitava se statistika za sve vreme poslovanja. Moguće je i odabrati period za koji korisnik želi da vidi statistiku. Prelaženjem miša na deo grafika prikazuje se ToolTip sa informacijama o automobilu i brojem servisiranja.

4.2 Pošalji automobil na servis

U ovom delu korisnik šalje automobil na servis. Prilikom otvaranja ovog dela programa učitavaju se serviseri iz baze podataka i ispisuje se datum slanja koji će se zabeležiti u bazi. Kada se klikne na dugme Pošalji proverava se uneti Broj registracije, ukoliko je unet nepostojeći Broj registracije pojavljuje se upozorenje korisniku.

Ukoliko je uneti automobil iznajmljen pojavljuje se upozorenje.

Ukoliko uneti automobil više ne postoji u firmi pojavljuje se upozorenje.

4.3 Vrati automobil sa servisa

U ovom delu korisnik vraća automobil sa servisa i upisuje koliko para je plaćeno serviseru i upisuje se šta je popravljeno na automobilu, takođe se beleži kada je automobil vraćen u firmu sa servisa. kao i u delu 4.2 Pošalji automobil na servis, proverava se da li je ispravno unet Broj registracije, ukoliko uneti automobil nije poslat na servis pojavljuje se upozorenje korisniku (jer sve mora da se beleži i kad je poslat na servis i kad je vraćen), takođe ukoliko se pokuša vratiti automobil koji je iznajmljen pojavljuje se upozorenje.

4.4 Istorija servisiranja automobila

U ovom delu se prikazuje istorija servisiranja automobila gde korisnik može da vidi sledeće informacije:
  • ID istorije
  • Broj registracije
  • Naziv servisera kod koga je poslat automobil
  • Da li je vraćen automobil
  • Cena koja je plaćena serviseru kada se vratio automobil sa servisa
  • Datum slanja na servis
  • Datum vraćanja iz servisa
  • Opis servisa, šta je popravljeno ili zamenjeno u servisu

4.5 Dodaj servisera

U ovom delu se dodaje serviser kod koga će se kasnije slati automobili na servis. Prilikom dodavanja servisera prvo se proverava da li uneti serviser postoji, ukoliko postoji prikazuje se upozorenej korisniku.

Kada se doda serviser, ispisuje se obaveštenje korisniku. I polja u formi se resetuju kako bi korisnik ponovo mogao da doda novog servisera.

5. Finansije

U ovom delu korisnik bira da li želi da:
  • Vidi zaradu na dnevnom nivou
  • Vidi zaradu na mesečnom nivou
  • Vidi zaradu na godišnjem nivou
  • Promeni cenu iznajmljivanja automobila

5.1 Zarada na dnevnom nivou

U ovom delu korisnik može videti zaradu na dnevnom nivou, odnosno zaradu po danima za određeni mesec i godinu. Prilikom biranja meseca i godine za prikazivanje statistike, moguće je odabrati statistiku minimum za godinu i mesec kada je iznajmljen prvi automobil pa maksimum sve do današnjeg datuma. Prelaskom mišem na određeni deo statistike pojavljuje se ToolTip sa ostvarenom zaradom u dinarima.

5.2 Zarada na mesečnom nivou

U ovom delu se prikazuje zarada na mesečnom nivou, odnosno prikazuje se zarada po mesecima za izabranu godinu. Minimum godina koja može da se izabere je godina u kojoj je iznajmljen prvi automobil. Maksimalna godina je trenutna godina. Prelaskom mišem na određeni deo statistike pojavljuje se ToolTip sa ostvarenom zaradom u dinarima.

5.3 Zarada na godišnjem nivou

U ovom delu se prikazuje zarada na godišnjem nivou, odnosno zarada koja je ostvarena za sve godine poslovanja firme. Prelaskom mišem na određeni deo statistike pojavljuje se ToolTip sa ostvarenom zaradom u dinarima.

5.4 Promeni cenu iznajmljivanja

U ovom delu korisnik može da postavi novu cenu iznajmljivanja za određeni model automobila. Menjanje se omogućava tek ada se odaberu određeni Proizvođač i Model automobila. Kada se odabere model automobila, prikazuje se i trenutna cena iznajmljivanja za izabrani model.

Kada se promeni cena pojavljuje se obaveštenje korisniku.

6. Radnici

U ovom delu korisnik bira da li želi da:
  • Vidi statistiku efikasnosti radnika (najefikasnije radnike)
  • Doda radnika
  • Pretraži radnika (pogleda informacije o određenom radniku)
  • Izmeni informacije radnika
  • Doda radni ugovor
  • Pretraži radne ugovore (pogleda informacije o radnim ugovorima)

6.1 Efikasnost radnika

U ovom delu korisnik može videti efikasnost radnika, odnosno koliko puta su određeni radnici napravili ugovora, tj. Koliko puta su iznajmljivali automobile. Kada se otvori ovaj deo programa učitava se statistika za sve vreme poslovanja. Moguće je odabrati određeni period za koji želimo da prikažemo statistiku. Prelaskom mišem na određeni deo statistike pojavljuje se ToolTip sa informacijama o radniku i brojem ugovora koje je napravio radnik. Minimalni datum koji može da se izabere je datum u kojem je iznajmljen prvi automobil. Maksimalna datum je trenutni datum.

6.2 Dodaj radnika

U ovom delu korisnik dodaje radnika i kreira nalog za korišćenje programa. Kada se otvori ovaj deo programa, u combo box-u se ubacuju radna mesta. Ukoliko se dodaje već postojeći radnik pojavljuje se upozorenje korisniku (u bazi se radnici proveravaju putem JMBG-a).

Ukolko se dodaje već postojeći Username za radnika pojavljuje se upozorenje korisniku.

Kada se doda novi radnik pojavljuje se obaveštenje korisniku i polja u formi se resetuju kako bi korisnik mogao da ponovo doda novog radnika.

6.3 Pretraga radnika

U ovom delu korisnik može da pretražuje radnike i da vidi sledeće informacije o njima:
  • ID radnika
  • Ime
  • Prezime
  • JMBG
  • Broj telefona
  • Email
  • Datum rođenja
  • Datum prvog zaposlenja
  • Radno mesto
  • Opis radnog mesta

Korisnik može pretražiti radnike po:

  • ID radnika
  • Imenu
  • Prezimenu
  • JMBG-u
  • Broju telefona
  • Email-u
  • Datumu rođenja
  • Datumu prvog zaposlenja
  • Radnom mestu

Kada se učita ovaj deo program prikazuju se svi radnici.

6.4 Izmeni radnika

U ovom delu programa je moguće izmeniti informacije o radniku. Prvo se unosi ID radnika, ukoliko se unese nepostojeći ID radnika korisniku se pojavljuje upozorenje.

Kada se unese ispravan ID radnika, učitavaju se podaci o radniku i moguće je izmeniti ih.

Na dugme Promeni radnika se resetuju sva polja u formi i potrebno je da korisnik ponovo udese ID radnika. Kada se klikne na dugme Izmeni, menjaju se podaci o radniku i korisniku se pojavljuje obaveštenje da su podaci izmenjeni.

6.5 Dodaj radni ugovor

U ovom delu se dodaje radni ugovor za radnika. Ukoliko korisnik unese nepostojeći ID radnika pojavljuje se upozorenje.

Kada se doda novi radni ugovor, pojavljuje se obaveštenje korisniku i polja na formi se resetuju kako bi korisnik mogao da ponovo doda novi radni ugovor.

6.6 Pretraga radnih ugovora

U ovog delu korisnik može da vrši pretragu radnih ugovora i da vidi o njima sledeće informacije:
  • Broj radnog ugovora
  • ID radnika
  • Ime radnika
  • Prezime radnika
  • JMBG
  • Datum rođenja
  • Radno mesto
  • Opis radnog mesta

Pregraga se vrši unošenjem jedgnog od gore navedenih podataka ugovora.

7. Automobili

U ovom delu korisnik bira da li želi da:
  • Pogleda statistiku najiznajmljivanijih modela automobila
  • Doda automobil
  • Doda model automobila
  • Doda proizvođača automobila
  • Vrši promenu postojanosti automobila u firmi (npr. ako je automobil prodat ili iz nekog drugog razloga više ne postoji u firmi korisnik može to zabeležiti kako automobil ne bi mogao više da se iznajmljuje a da pritom informacije o iznajmljivanju za taj automobili ostanu dostupne ili ako vlasnik firme želi da koristi neki automobil a da to korišćenje ne upisuje u bazu podataka...)

7.1 Najiznajmljivaniji automobili

U ovom delu korisnik može pogledati statistiku najiznajmljivanijih modela automobila, kako bi mu pomoglo u odluci koji model automobila da kupi kako bi unapredio svoje poslovanje. Kada se učita ovaj deo programa, korisniku se prikazuje statistika za sve vreme poslovanja Korisnik može odabrati period za koji želi da vidi statistiku. Kada se pređe mišem na određeni deo statistike pojavljuje se ToolTip sa informacijama o modelu i broju iznajmljivanja.

7.2 Dodaj automobil

U ovom delu korisnik dodaje automobile koji će kasnije biti iznajmljivani. Da bi se omogućilo dodavanje automobila potrebno je da korisnik odabere Proizvođača i Model za željeni automobil.

Ukoliko korisnik pokuša da doda automobil koji već postoji pojavljuje mu se upozorenje.

Kada korisnik doda novi automobil pojavljuje mu se obaveštenje i polja na formi se resetuju kako bi mogao da ponovo doda novi automobil.

7.3 Dodaj model

U ovom delu korisnik može da doda novi model za izabranog proizvođača autmobila. Kada se odabere proizvođač iz combo box-a korisniku je omogućeno da unese podatke.

Ukoliko korisnik pokuša da doda model za izabranog proizvođača koji već postoji, korisniku se pojavljuje upozorenje.

Kada korisnik uspešno doda model za izabranog proizvođača, pojavljuje mu se obaveštenje.

7.4 Dodaj proizvođača

U ovom delu korisnik može da doda proizvođača automobila. Ukoliko već postoji uneti proizvođač korisniku se pojavljuje upozorenje.

Kada korisnik uspešno doda novog proizvođača pojavljuje mu se obaveštenje i podaci u formi se resetuje kako bi korisnik moga da doda novog proizvođača.

7.5 Postojanost automobila u firmi

U ovom delu korisnik vrši promenu postojanosti automobila u firmi, npr. ako je automobil prodat ili iz nekog drugog razloga više ne postoji u firmi korisnik može to zabeležiti kako automobil ne bi mogao više da se iznajmljuje a da pritom informacije o iznajmljivanju za taj automobili ostanu dostupne ili ako vlasnik firme želi da koristi neki automobil za lične potrebe a da to korišćenje ne upisuje u bazu podataka.

Ukoliko korisnik unese nepostojeći Broj registracije prikazuje mu se upozorenje.

Kada korisnik unese ispravan Broj registracije automobila, dozvoljava mu se menjanje postojanosti i ispisuje mu se da li izabrani automobil postoji u firmi.

Na dugme Promeni automobil, moguće je promeniti automobil. Na dugme Da, menja se postojanost automobila.

Takođe je moguće i vratiti automobil u firmu (ukoliko gazda ponovo kupi isti automobil ili vrati u firmu automobil koji je koristio za lične potrebe).

Na dugme DA se vraća automobil u firmu.

8. Nalog

U ovog delu korisnik bira da li želi da:
  • Promeni lozinku
  • Se odjavi iz programa

Ukoliko je korisnik ulogovan kao Direktor ikonica dugmeta Nalog je:

Ukoliko je korisnik ulogovan kao Finansijski radnik ikonica dugmeta Nalog je:

Ukoliko je korisnik ulogovan kao Recepcioner ikonica dugmeta Nalog je:

8.1 Promeni lozinku

U ovom delu korisnik može da promeni svoju lozinku za korisnički nalog. Korisniku se prikazuje njegovo korisničko ime. Da bi promenio lozinku mora prvo da unese trenutnu lozinku, ukoliko ne unese tačnu trenutnu lozinku, pojavljuje mu se upozorenje.

Kada uspešno promeni lozinku, pojavljuje mu se obaveštenje i automatski ga program izloguje i prinuđen je da se ponovo uloguje sa novom lozinkom.

8.2 Odjavi se

Klikom na dugme odjavi se, korisnik se odjavljuje iz programa i ponovo je moguće da se drugi korisnik prijavi u program.




Datum proizvodnje: Februar 2018.