01 · Problem / potreba
Upravljanje većom ponudom vozila zahteva organizovano čuvanje podataka i jednostavan način pronalaženja odgovarajućeg automobila ili motocikla. Korisnicima je potrebno omogućiti pregled i filtriranje ponude, dok administrator mora imati kontrolu nad korisničkim nalozima i podacima sistema.
Cilj projekta bio je razvoj centralizovane web aplikacije koja povezuje korisnički interfejs, serversku poslovnu logiku i relacionu bazu podataka.
02 · Rešenje / realizacija
Razvijena je Java web aplikacija koja podržava registraciju, prijavu i odjavu korisnika, podelu na standardnu i administratorsku ulogu, pregled ponude i pretragu vozila prema tipu, marki, modelu i godini proizvodnje.
Administratorski deo aplikacije omogućava upravljanje korisnicima i podacima sistema. Aplikacija proverava podatke unete tokom registracije i prijave i prikazuje odgovarajuće poruke kada podaci nisu ispravni.
Serverska logika realizovana je pomoću Java servleta, korisnički interfejs pomoću JSP stranica i Bootstrap biblioteke, dok je za čuvanje podataka korišćena MySQL baza.
03 · Moje odgovornosti
Samostalno sam realizovao:
analizu funkcionalnih zahteva;
projektovanje arhitekture aplikacije;
modelovanje MySQL baze podataka;
razvoj serverske logike pomoću Java servleta;
izradu JSP korisničkog interfejsa;
povezivanje aplikacije sa bazom pomoću JDBC tehnologije;
registraciju, prijavu i odjavu korisnika;
podelu korisnika prema ulogama;
razvoj administratorskog panela;
razvoj pretrage i filtriranja vozila;
validaciju korisničkog unosa;
funkcionalno testiranje aplikacije;
izradu projektne dokumentacije i prezentacije.
04 · Arhitektura sistema
Aplikacija je organizovana prema MVC arhitektonskom obrascu:
Model: entiteti User i Vehicle, podaci sistema i logika pristupa MySQL bazi
View: JSP stranice za početnu stranicu, prijavu, registraciju, pregled ponude i administraciju
Controller: Java servleti koji obrađuju HTTP zahteve, proveravaju podatke i povezuju korisnički interfejs sa modelom
JDBC obezbeđuje komunikaciju sa bazom, dok Apache Commons DBCP2 upravlja konekcijama. Aplikacija se izvršava na Apache Tomcat 9 serveru.
05 · Ključne inženjerske odluke
MVC arhitektonski obrazac izabran je radi jasnog razdvajanja korisničkog interfejsa, poslovne logike i pristupa podacima.
Podaci o korisnicima i vozilima organizovani su u relacionoj MySQL bazi. Uvedene su dve korisničke uloge kako bi se administratorske funkcije odvojile od funkcija dostupnih standardnim korisnicima.
Apache Commons DBCP2 korišćen je za upravljanje konekcijama prema bazi, dok je Bootstrap primenjen radi doslednog i responzivnog prikaza korisničkog interfejsa.
06 · Bezbednost
Aplikacija primenjuje autentifikaciju korisnika i kontrolu pristupa prema dodeljenoj ulozi. Administratorske funkcije dostupne su samo korisnicima sa odgovarajućim ovlašćenjima.
Lozinke se obrađuju pomoću BCrypt algoritma, tako da se ne čuvaju kao otvoren tekst. Sistem proverava podatke tokom registracije i prijave, uključujući postojanje korisničkog imena i zahteve za format lozinke.
07 · Testiranje i verifikacija
Sprovedeno je ručno funkcionalno testiranje ključnih slučajeva korišćenja:
uspešna prijava korisnika;
prijava sa pogrešnim podacima;
registracija novog korisnika;
pokušaj registracije postojećeg korisničkog imena;
provera zahtevanog formata lozinke;
kreiranje korisnika iz administratorskog panela;
kontrola pristupa administratorskim funkcijama;
pregled ponude vozila;
pretraga i filtriranje rezultata;
odjava korisnika.
Rezultati su provereni kroz korisnički interfejs, stanje baze podataka i prikaz odgovarajućih poruka o uspehu ili grešci.
08 · Rezultat / efekat
Razvijena je funkcionalna Java web aplikacija koja povezuje korisnički interfejs, serversku logiku i relacionu bazu podataka.
Projekat pokazuje praktičnu primenu objektno orijentisanog programiranja, MVC arhitekture, autentifikacije, kontrole korisničkih uloga, rada sa bazama podataka i funkcionalnog testiranja web aplikacija.
Realizacijom projekta unapređene su moje kompetencije u razvoju Java web sistema, projektovanju baza podataka i organizovanju aplikacije kroz jasno razdvojene softverske slojeve.
09 · Dokazi / verifikacija
Prezentacija diplomskog rada, model baze podataka, snimci funkcionalnih delova aplikacije i prikazi sprovedenih testova.