ПИА/Јануар 2022
Испит у јануарском испитном року 2022. године одржан је 21. јануара. Било је могуће радити у Јава Сервер Фацес или Ангулар и Ноде.јс технологијама, од чега је за први колоквијум била Јава Сервер Фацес а за други Ангулар и Ноде.јс технологије. Поставка задатка је била иста за оба колоквијума. Сваки колоквијум је трајао 2 сата, док ако се раде оба то траје 3 сата. Доступне су базе података за МyСQЛ и МонгоДБ.
Поставка
Направити следећу мини интернет апликацију за пицерију.
На почетној страни апликације, направити ХТМЛ форму, преко које могу да се пријављују корисници система, а то су купци и радници. Корисници треба да имају могућност уношења корисничког имена и лозинке и да помоћу радио дугмета одаберу: да ли се пријављују у систем као купци или радници. У случају исправно унетих података, кориснику треба омогућити рад са остатком система (за сваки тип треба приказати посебну почетну страницу након пријављивања). Уколико корисник не унесе неки од података или унесе погрешне податке, потребно је исписати поруку грешке црвеним словима са могућношћу исправљања грешке. По успешној пријави у систем, кориснику дати и опцију да се одјави. [7 поена]
Купац након пријаве на систем види своје информације (име и презиме) и табеларни приказ својих наруџбина (идентификатор, величину пице, називе додатака и статус наруџбине). [4 поена] Испод табеларног приказа налази се форма за наручивање пице. Корисник из падајуће листе бира величину пице (фиксни подаци: мала, средња, велика). Испод одабира величине бирају се додаци за пицу, путем низа цхецкбоx-ова. Сваки додатак је један цхецкбоx, који је онемогућен (дисаблед) уколико додатка нема на стању. Приказати назив и количину додатка. [6 поена] Кликом на дугме "Потврди" наруџбина се додаје у базу са статусом "нова" (може да се не одабере ниједан додатак). Након додавања наруџбине треба освежити страницу. [3 поена]
Радник након пријаве на систем види табеларни приказ свих наруџбина у систему. [2 поена] Поред нових наруџбина у систему (статус "нова") треба приказати дугмад за прихватање или одбијање те наруџбине (прихваћене наруџбине имају статус "прихвацена", одбијене имају статус "одбијена"), чиме се мења статус поруџбине. [5 поена] Прихватање наруџбине подразумева да се и ажурира количина сваког одабраног додатка (смањи за 1). Одбијање нема утицаја на количину. Након промене статуса, освежити страницу. [3 поена] Испод табеле са наруџбинама налази се табела са свим додацима помоћу које се може допунити и њихово стање. Табела треба да садржи назив додатка, тренутну количину производа на стању и дугме за наручивање тог додатка. Кликом на дугме за наручивање се аутоматски увећава количина на стању за 5. [3 поена] Додаци којих нема на стању треба да буду обојени црвеном бојом. [2 поена]
Решење
Јава Сервер Фацес
- Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.
Ангулар и Ноде.јс
Решење се може преузети као ЗИП архива. Како бисте га покренули:
- увезите колекције из ЈСОН фајлова у
localбазу унутар МонгоДБ - отворите три терминала
- у једном се позиционирајте унутар
backendдиректоријума, покренитеnpm installа затимnpm run watch-tsдиректоријума (како би се константно надгледао фајл систем за промене у ТyпеСцрипт фајловима и аутоматски преводио у ЈаваСцрипт) - у другом се позиционирајте унутар
backendдиректоријума и покренитеnpm run watch-node(како би се константно надгледао преведени ЈаваСцрипт и рестартовао Ноде.јс чим се примети промена) - у трећем се позиционирајте унутар
frontendдиректоријума и покренитеnpm installа затимnpm start(како би се покренуо фронтенд сервер)
Кад посетите лоцалхост:4200, требало би да видите фронтенд и да се при свакој измени фронтенд или бацкенд фајлова они аутоматски преводе и покрећу. Игноришите све "сигурносне грешке" које би npm install могао да вам прикаже.