Потребно е да развиете апликација за менаџирање на cloud ресурси која ќе овозможи прегледување, додавање, уредување и бришење на виртуелни сервери.
-
(15 поени) Потребно е на патеките
/
и/VirtualServers
да прикажете листа од сите креирани виртуелни сервери со користење на темплејтотlist.html
.- Имплементацијата на оваа функционалност може да ја проверите со тестот
test_list_20pt
.
- Имплементацијата на оваа функционалност може да ја проверите со тестот
-
(20 поени) Потребно е да се имплементира додавање на виртуелен сервер. При клик на копчето Add од темплејтот
list.html
, потребно е да се прикаже темплејтотform.html
на патеката/VirtualServers/add
, каде при клик на Submit ќе се креира и запише нов ентитет во базата на податоци. Потоа треба да се прикаже страната/VirtualServers
.- Имплементацијата на оваа функционалност може да ја проверите со тестовите
test_create_10pt
иtest_create_mvc_10pt
.
- Имплементацијата на оваа функционалност може да ја проверите со тестовите
-
(10 поени) Потребно е да се имплементира бришење на виртуелен сервер. При клик на копчето Delete од темплејтот
list.html
, потребно е да се избрише ентитетот од базата на податоци. Потоа треба да се прикаже страната/VirtualServers
.- Имплементацијата на оваа функционалност може да ја проверите со тестовите
test_delete_5pt
иtest_delete_mvc_5pt
.
- Имплементацијата на оваа функционалност може да ја проверите со тестовите
-
(20 поени) Потребно е да се имплементира променување на задача. При клик на копчето Edit од темплејтот
list.html
, потребно е да се прикаже темплејтотform.html
на патеката/VirtualServers/[id]/edit
, при што во<input>
елементите ќе се прикажат вредностите за ентитетот кој се променува. При клик на Submit треба да се запише промената на ентитетот во базата на податоци. Потоа треба да се прикаже страната/VirtualServers
.- Имплементацијата на оваа функционалност може да ја проверите со тестовите
test_edit_10pt
иtest_edit_mvc_10pt
.
- Имплементацијата на оваа функционалност може да ја проверите со тестовите
-
(20 поени) Потребно е да конфигурирате најава на
/login
и одјава на/logout
. Притоа, јавна треба да биде само страницата/
, додека сите останати страници треба да се видливи само за најавените корисници. Дополнително, кајlist.html
копчињата Edit, Delete и Add треба да се видливи само заROLE_SYSADMIN
.- Најавата треба да биде со username и password својствата од корисниците во базата. Лозинките треба да се чуваат енкриптирани.
- Имплементацијата на оваа функционалност може да ја проверите со тестовите
test_security_urls_10pt
иtest_security_buttons_10pt
-
(5 поени) Потребно е да овозможите концепт за терминирање на виртуелен сервер со клик на копчето Terminate во
list.html
. Ова копче треба да се гледа само доколку виртуелната машина е активна.- Имплементацијата на оваа функционалност може да ја проверите со тестовите
test_mark_terminated_5pt
- Имплементацијата на оваа функционалност може да ја проверите со тестовите
-
(10 поени) Потребно е да овозможите пребарување на виртуелни машини според owner и денови активност (launchDate <= (now - filtering days)) преку формата со
id="filter-form"
во темплејтотlist.html
. Резултатите од пребарувањето треба да се прикажат на истата страница, при што ќе се прикажат само сопствениците според бараниот услов. Филтрирањето се извршува само според внесените полиња (ако се празни, се игнорира филтрирањето по тој критериум).- Имплементацијата на оваа функционалност може да ја проверите со тестовите
test_filter_5pt
иtest2_filter_service_5pt
.
- Имплементацијата на оваа функционалност може да ја проверите со тестовите
ВАЖНО: Сите споменати тестови се наоѓаат во класата SeleniumScenarioTest
.
Тестовите мора задолжително да ги извршите, затоа што на тој начин го испраќате вашето решение за прегледување. За проверка
дали успешно е поставено вашето решение пристепете на патеката env4health.finki.ukim.mk/submit/[index],
каде наместо [index]
ќе го наведете вашиот индекс, кој претходно ќе го поставите во TODO
вредноста на текстот.
Тие ќе ви помогнат да ја проверите точноста на вашата имплементација, но и ќе испратат информации до нашиот сервер за тоа до
каде функционира вашата апликација. Ќе се гледа кодот само на студентите кај кои барем една проверка (ExamAssert
) ќе помине успешно.
НЕ Е ДОЗВОЛЕНО МЕНУВАЊЕ НА ТЕСТОВИТЕ, освен внесување на вашиот индекс
- Во пакетот
mk.ukim.finki.wp.june2022.g1
веќе се креирани класите кои го репрезентираат моделот. Потребно е да извршите нивно мапирање со соодветните JPA анотации за моделот успешно да се сними во базата на податоци. Притоа важат следните услови:- Еден виртуелен сервер може да има повеќе owners, додека пак на еден корисник може да е додаден како owner на повеќе сервери.
- Идентификаторите за
VirtualServer
иUser
треба да бидат генерирани.
- Во пакетот
service
се веќе дефинирани интерфејсите за сервисната логика. За секој од методите имате опис што треба да биде имплементирано. Потребно е да се имплементираат овие интерфејси во соодветните класи во пакетотservice.impl
. Во коментарите на методите се објаснети дополнителни услови (доколку ги има) кои треба да ги исполни методот. - Класите од пакетот
repository
треба да ги дополните со потребните методи кои ви се потребни за да ја овозможите функционалноста на имплементацијата на сервисниот слој. Тие треба да се изведат од класатаJpaRepository
од Spring Data. - Потребно е да ја анотирате класата
DataInitializer
и нејзините соодветни методи, така што при стартување на апликацијата ќе се изврши методотinitData
. - Во класата
VirtualServerController
се дефинирани сите методи кои се потребни за да се имплементира менаџирањето со виртуелните сервери. За секој од методите имате опис што треба да биде имплементирано. Потребно е овие handler методи да ги мапирате со користење само на HTTP GET и POST барања. - Дополнете ги темплејтите со соодветните Thymeleaf атрибути за да се постигнат бараните функционалности.
Притоа, ако недостасуваат одредени елементи и атрибути, може да ги додадете, но НЕ СМЕЕ да ги менувате
id
иclass
својствата на тековните елементи. Во коментари се дадени описи за елементите кои треба да се повторуваат, како и кои методи од контролерот треба да се повикаат. - Потребно е да конфигурирате најава и одјава на корисници со Spring Security во класата
SecurityConfig
. Во самата класа има опис што треба да биде имплементирано.