ПИА/Фебруар 2022

Извор: SI Wiki
< ПИА
Датум измене: 10. јануар 2023. у 14:31; аутор: KockaAdmiralac (разговор | доприноси) (Februarski rok 2022. sa MEAN rešenjem)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Испит у фебруарском испитном року 2022. одржан је 11. фебруара. Било је могуће радити у Јава Сервер Фацес или Ангулар и Ноде.јс технологијама. На страници предмета доступан је текст задатка као и базе податка за МyСQЛ и МонгоДБ.

Поставка

Направити следећу мини интернет апликацију за библиотеку.

На почетној страни апликације, направити ХТМЛ форму, преко које могу да се пријављују корисници система, а то су читаоци и библиотекари. Корисници треба да имају могућност уношења корисничког имена и лозинке и да помоћу падајуће листе одаберу: да ли се пријављују у систем као читаоци или библиотекари. У случају исправно унетих података, кориснику треба омогућити рад са остатком система (за сваки тип треба приказати посебну почетну страницу након пријављивања). Уколико корисник не унесе неки од података или унесе погрешне податке, потребно је исписати поруку грешке црвеним словима са могућношћу исправљања грешке. По успешној пријави у систем, кориснику дати и опцију да се одјави. [7 поена]

Читалац након пријаве на систем види своје информације (име и презиме) и табеларни приказ својих задужених књига (идентификатор, назив, аутора и датум рока за враћање). Поље person у бази означава ко је задужио књигу. Уколико књига није задужена, то поље има вредност null. [3 поена] Уколико је истекао датум за враћање књиге, обојити позадину реда наранџастом бојом. [2 поена] Задужене књиге се могу и раздужити, тј. вратити у библиотеку (обратити пажњу на информације о књизи: треба одговарајуће колоне поставити на null). Освежити страницу након измена. [4 поена]

Читалац може да претражује књиге у библиотеци, по називу (укључујући и део назива) и/или аутору. Форма треба да садржи два поља за унос – једно поље за назив и друго за аутора, као и дугме „Претрага“. Ако није унет ниједан параметар, приказати све књиге у библиотеци. Резултате дати табеларно (идентификатор, назив, аутора и ознаку да ли је тренутно задужена). [7 поена] Сваку књигу из резултата читалац може да задужи, осим уколико она већ није задужена и уколико читалац већ нема 3 књиге на задужењу, и у таквом случају треба приказати прикладну поруку. Књига се задужује увек на две недеље (14 дана) од датума задуживања. (Помоћ: ЈСФ – користити LocalDate и његове методе; МЕАН – користити setDate и getDate методе датума, уз померај) [7 поена]

Библиотекар након пријаве на систем може да дода нову књигу у библиотеку, уз исправан унос свих података – идентификатора (мора бити јединствен), назива књиге и имена аутора. Уколико неки податак није унет у оквиру форме, а покуша се уношење нове књиге, исписати пригодну поруку. Сматрати да једну књигу увек пише тачно један аутор. [5 поена]

Решење

Јава Сервер Фацес

Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.

Ангулар и Ноде.јс

Решење се може преузети као ЗИП архива. Како бисте га покренули:

  1. увезите колекције из ЈСОН фајлова у biblioteka2022 базу унутар МонгоДБ
  2. отворите три терминала
  3. у једном се позиционирајте унутар backend директоријума, покрените npm install а затим npm run watch-ts директоријума (како би се константно надгледао фајл систем за промене у ТyпеСцрипт фајловима и аутоматски преводио у ЈаваСцрипт)
  4. у другом се позиционирајте унутар backend директоријума и покрените npm run watch-node (како би се константно надгледао преведени ЈаваСцрипт и рестартовао Ноде.јс чим се примети промена)
  5. у трећем се позиционирајте унутар frontend директоријума и покрените npm install а затим npm start (како би се покренуо фронтенд сервер)

Кад посетите лоцалхост:4200, требало би да видите фронтенд и да се при свакој измени фронтенд или бацкенд фајлова они аутоматски преводе и покрећу. Игноришите све "сигурносне грешке" које би npm install могао да вам прикаже.