Veb aplikacija za poređenje računarskih komponenata


Administrator se na aplikaciju prijavljuje sa svojim pristupnim parametrima. Može da uređuje kategorije računarskih komponenata i karakteristike komponente koje važe za svaku kategoriju, kao i osobine te karakteristike, npr. da li je obavezna, koji je opis, opseg vrednosti, vrsta vrednosti, prikazanu jedinicu mere itd. Kada definiše sve kategorije, njihove karakteristike i parametre tih karakteristika, može da pristupi unosu računarskog hardvera pod tim kategorijama i da tom prilikom unosi vrednosti za svaku od propisanih karakteristika. Karakteristike koje nisu obavezne ne mora da unese ako nema podatak za konkretnu komponentu. Svaka komponenta može da ima svoju sliku. Ukoliko ne postoji slika, za komponentu računarskog hardvera se prikazuje opšta slika kategorije kojoj pripada, npr. ako ne postoji za neku grafičku karticu uneta slika od strane administratora, prikazuje se generička ilustracija grafičke kartice koja je pridružena kategoriji komponente. Za svaku komponentu se unosi i podatak o proizvođaču. Spisak proizvođača se odvojeno uređuje i jedinstven je na nivou aplikacije. Posetioci sajta ne moraju da budu prijavljeni da bi koristili funkcije aplikacije za poređenje. Potrebno je da nađu komponentu pregledom liste po kategorijama, uz mogućnost filtriranja unutar kategorije na osnovu mogućih vrednosti karakteristika svih komponenata koje pripadaju trenutno pogledanoj kategoriji. Kada otvore neku računarsku komponentu, imaju opciju da je dodaju u set za poređenje unutar te kategorije komponenata. Nakon toga mogu da idu da pronađu drugu komponentu u toj kategoriji i da je dodaju u set. Set ima najviše tri komponente koje mogu i jednom trenutku da se porede, koje su obeležene kao komponenta A, B i C. Korisnik ne mora da doda treću komponentu za poređenje, već odmah pošto je dodato drugu u set, može da klikne na dugme za prikaz poređenja. Biće otvorena stranica sa prikazom dve ili tri kolone (zavisno da li se porede dve ili tri komponente u setu) sa prikazom karakteristika skroz levo ispred prve kolone, tako da jedna karakteristika zauzima svoj red. U preseku reda karakteristike i kolone komponente, prikazuje se vrednost karakteristike one komponente koja je u toj koloni. Korisnik može da pregleda ovu tabelu i da donosi svoje zaključke o prednostima i manama. Korisnik ima opciju da izbriše komponentu iz seta za poređenje klikom na dugme za uklanjanje komponente iz seta. Pošto svaka kategorija ima svoj set za poređenje, korisnik nikada ne može da poredi komponente koje ne pripadaju istoj kategoriji, npr. da poredi tastature i procesore ili grafičke kartice i monitore u istom poređenju.


Tehnička ograničenja
- Aplikacija mora da bude realizovana na Node.js platformi korišćenjem Express biblioteke. Aplikacija mora da bude podeljena u dve nezavisne celine: back-end veb servis (API) i front-end (GUI aplikacija). Sav kôd aplikacije treba da bude organizovan u jednom Git spremištu u okviru korisničkog naloga za ovaj projekat, sa podelom kao u primeru zadatka sa vežbi.
- Baza podataka mora da bude relaciona i treba koristiti MySQL ili MariaDB sistem za upravljanje bazama podataka (RDBMS) i u spremištu back-end dela aplikacije mora da bude dostupan SQL dump strukture baze podataka, eventualno sa inicijalnim podacima, potrebnim za demonstraciju rada projekta.
- Back-end i front-end delovi projekta moraju da budi pisani na TypeScript jeziku, prevedeni TypeScript prevodiocem na adekvatan JavaScript. Back-end deo aplikacije, preveden na JavaScript iz izvornog TypeScript koda se pokreće kao Node.js aplikacija, a front-end deo se statički servira sa rute statičkih resursa back-end dela aplikacije i izvršava se na strani klijenta. Za postupak provere identiteta korisnika koji upućuje zahteve back-end delu aplikacije može da se koristi mehanizam sesija ili JWT (JSON Web Tokena), po slobodnom izboru.
- Sav generisani HTML kôd koji proizvodi front-end deo aplikacije mora da bude 100% validan, tj. da prođe proveru W3C Validatorom (dopuštena su upozorenja - Warning, ali ne i greške - Error). Grafički korisnički interfejs se generiše na strani klijenta (client side rendering), korišćenjem React biblioteke, dok podatke doprema asinhrono iz back-end dela aplikacije (iz API-ja). Nije neophodno baviti se izradom posebnog dizajna grafičkog interfejsa aplikacije, već je moguće koristiti CSS biblioteke kao što je Bootstrap CSS biblioteka. Front-end deo aplikacije treba da bude realizovan tako da se prilagođava različitim veličinama ekrana (responsive design).
- Potrebno je obezbediti proveru podataka koji se od korisnika iz front-end dela upućuju back-end delu aplikacije. Moguća su tri sloja zaštite i to: (1) JavaScript validacija vrednosti na front-end-u; (2) Provera korišćenjem adekvatnih testova ili regularnih izraza na strani servera u back-end-u (moguće je i korišćenjem izričitih šema - Schema za validaciju ili drugim pristupima) i (3) provera na nivou baze podataka korišćenjem okidača nad samim tabelama baze podataka.
- Neophodno je napisati prateću projektnu dokumentaciju o izradi aplikacije koja sadrži (1) model baze podataka sa detaljnim opisom svih tabela, njihovih polja i relacija; (2) dijagram baze podataka; (3) dijagram organizacije delova sistema, gde se vidi veza između baze, back-end, front-end i korisnika sa opisom smera kretanja informacija; (4) popis svih aktivnosti koje su podržane kroz aplikaciju za sve uloge korisnika aplikacije prikazane u obliku Use-Case dijagrama; kao i (5) sve ostale elemente dokumentacije predviđene uputstvom za izradu dokumentacije po ISO standardu.
- Izrada oba dela aplikacije (projekata) i promene kodova datoteka tih projekata moraju da bude praćene korišćenjem alata za verziranje koda Git, a kompletan kôd aplikacije bude dostupan na javnom Git spremištu, npr. na besplatnim GitHub ili Bitbucket servisima, jedno spremište za back-end projekat i jedno za front-end projekat. Ne može ceo projekat da bude otpremljen u samo nekoliko masovnih Git commit-a, već mora da bude pokazano da je projekat realizovan u kontinuitetu, da su korišćene grane (branching), da je bilo paralelnog rada u više grana koje su spojene (merging) sa ili bez konflikata (conflict resolution).

Morate da budete prijavljeni na aplikaciju da biste izvršili rezervaciju. Prijava

M. Tair, "Teme projektnih zadataka za predmet Praktikum Internet i veb tehnologije", 2016-2025. [Online]. Available at: http://zadatak.singidunum.ac.rs/app/piivt-biranje-tema/ [Accessed: 2025-04-28]