| 1 | = Имплементација на кориснички сценарија = |
| 2 | === Клиент |
| 3 | ||= ID =||= Use case =|| |
| 4 | || 1 || Прави резервација || |
| 5 | || 2 || Прави нарачка || |
| 6 | || 3 || Прави преглед на резервации || |
| 7 | || 4 || Прави преглед на нарачки || |
| 8 | || 5 || Откажува резервација || |
| 9 | || 6 || Откажува нарачка || |
| 10 | |
| 11 | === Администратор |
| 12 | ||= ID =||= Use case =|| |
| 13 | || 1 || Прави резервација || |
| 14 | || 2 || Прави нарачка || |
| 15 | || 3 || Прави преглед на резервации || |
| 16 | || 4 || Прави преглед на нарачки || |
| 17 | || 5 || Откажува резервација || |
| 18 | || 6 || Откажува нарачка || |
| 19 | || 7 || Блокира термин || |
| 20 | || 8 || Менува статус на нарачка || |
| 21 | |
| 22 | == Корисничко сценарио "Клиент прави резервација" |
| 23 | [[Image("scenario1.png",80%,align=center)]] |
| 24 | \\ |
| 25 | \\ |
| 26 | Корисникот оди на страната за резервации и најпрво избира датум и тип на резервација. Системот ги покажува слободните термини за соодвената услуга и корисникот избира од понудените |
| 27 | \\ |
| 28 | \\ |
| 29 | [[Image("reservation1.PNG",80%,align=center)]] |
| 30 | \\ |
| 31 | \\ |
| 32 | [[Image("reservation2.PNG",80%,align=center)]] |
| 33 | \\ |
| 34 | \\ |
| 35 | Најпрво се повикува методот 'getFreeReservations' од контролерот за резервации, при што тој прима параметри за датум и тип на услуга. Системот преку методот 'getFreeReservations' кој се наоѓа во сервисниот слој(service layer) ги наоѓа слободните термини за соодвениот датум и тип на услуга и му ги враќа назад на клиентот преку моделот. Откако клиентот ќе избере соодветен термин и ја направи резервацијата, се повикува методот 'make-reservation' од контролерот за резервации, при што тука се примаат сите параметри за резервацијата. Системот преку методот 'makeReservation' кој се наоѓа во сервисниот слој(service layer), прави објект од 'Reservation Entity' и го зачувува во базата. Во самиот објект, ги имаме сите информации за резервацијата(датум,тип,време,од кој корисник е направена резервацијата итн.) |
| 36 | \\ |
| 37 | \\ |
| 38 | == Корисничко сценарио "Клиент прави нарачка" |
| 39 | [[Image("scenario3-1.png",80%,align=center)]] |
| 40 | \\ |
| 41 | \\ |
| 42 | [[Image("scenario3-2.png",80%,align=center)]] |
| 43 | \\ |
| 44 | \\ |
| 45 | Корисникот оди на страната за нарачки, ги избира посакуваните продукти и во ShoppingCart ја избира количината на продуктите и прави нарачка |
| 46 | \\ |
| 47 | \\ |
| 48 | [[Image("order1.PNG",80%,align=center)]] |
| 49 | \\ |
| 50 | \\ |
| 51 | [[Image("order2.PNG",80%,align=center)]] |
| 52 | \\ |
| 53 | \\ |
| 54 | [[Image("order3.PNG",80%,align=center)]] |
| 55 | \\ |
| 56 | \\ |
| 57 | [[Image("order4.PNG",80%,align=center)]] |
| 58 | \\ |
| 59 | \\ |
| 60 | [[Image("order5.PNG",80%,align=center)]] |
| 61 | \\ |
| 62 | \\ |
| 63 | За секој избран продукт од страна на корисникот се повикува методот 'add-to-cart' од контролерот за кошничката , при што се испраќа ИД на продуктот што го избрал корисникот и тој се зачувува во сесијата. При нарачка се повикува методот 'order' од контролерот за нарачки, при што прво се валидираат квантитетите за секој продукт и потоа се повикува методот 'saveOrder' од сервисниот слој, при што се креира објект од тип 'Order Entity' и се зачувува во базата на податоци. Во самиот објект имаме информации за нарачката(од кој е направена, кога е направена, вкупната цена на нарачката, статусот на нарачката итн.). Исто така, во базата се зачувуваат и деталите на нарачките, кој производ е нарачан и квантитетот за тој производ.На крајот, се бришат сите информации за нарачката од сесијата на самиот корисник |
| 64 | \\ |
| 65 | \\ |
| 66 | == Корисничко сценарио "Администратор прави преглед на резервации" |
| 67 | [[Image("scenario5.png",80%,align=center)]] |
| 68 | \\ |
| 69 | \\ |
| 70 | Администраторот прави преглед на резервации за соодветен тип на услуга и датум |
| 71 | \\ |
| 72 | \\ |
| 73 | [[Image("admin-reservation-1.PNG",80%,align=center)]] |
| 74 | \\ |
| 75 | \\ |
| 76 | [[Image("admin-reservation-2.PNG",80%,align=center)]] |
| 77 | \\ |
| 78 | \\ |
| 79 | [[Image("admin-reservation-3.PNG",80%,align=center)]] |
| 80 | \\ |
| 81 | \\ |
| 82 | Администраторот најпрво избира соодветен датум и тип на услуга и потоа се повикува методот 'admin-get-scheduled-reservations' од контролерот за резервации. Од тука, се повикува методот 'getScheduledReservations' од сервисниот слој, при што се прави пребарување во базата на податоци според датум и тип на услуга. Резултатот се сместува во моделот и се враќа назад на администраторот. Администраторот исто така може да откаже резервација преку копчето 'Cancel Reservation' при што се повикува методот 'admin-cancel-reservation' од контролерот за резервации, при што се испраќа ИД на резервацијата,датумот и типот на резервацијата. Потоа се повикува 'cancelReservationAdmin' методот од сервисниот слој, при што резервацијата се брише од базата на податоци. |