| 106 | | ''Слика 4 - UML класен дијаграм на апликацијата'' |
| 107 | | |
| 108 | | |
| 109 | | |
| 110 | | === 3. Секвенцијален дијаграм === |
| 111 | | |
| 112 | | Секвенцијалните дијаграми се динамично решение за моделирање во UML бидејќи тие конкретно се фокусираат на процесите и објектите што живеат истовремено, и пораките што се разменуваат меѓу нив за да извршат функција пред да заврши животната линијата. |
| 113 | | |
| 114 | | Секвенцијалниот дијаграм е тип на дијаграм за интеракција, бидејќи опишува како - и по кој редослед - група објекти работат заедно. Овие дијаграми се користат од развивачи на софтвер и деловни професионалци за да ги разберат барањата за нов систем или да документираат постоечки процес. Секвенцијалните дијаграми понекогаш се познати како дијаграми на настани или сценарија за настани [9]. |
| 115 | | |
| 116 | | На сликата подолу е прикажан секвенцијален дијаграм за креирање на фолдер. Процесот за креирање на фолдер е следен: корисникот се најавува во системот со внесување на своето корисничко име и лозинка. Потоа ја верифицира најавата со внесување на OTP кодот кој го добива преку е-пошта. По автентикација се обидува да креира фолдер. Прв чекор е изброр на оддел. Потоа ја пополнува формата и ги прикачува датотеките. Со клик на submit се праќа барање да серверот и доколку помине валидацијата се креира фолдерот со тоа што се запишува во базата на податоци. |
| 117 | | |
| 118 | | |
| | 106 | ''UML класен дијаграм на апликацијата'' |
| | 107 | |
| | 108 | |
| | 109 | |
| | 110 | === 3. Структура на базата на податоци === |
| | 111 | |
| | 112 | Како што е напоменато и горе за базата на податоци користев MySQL 5.7. Конфигурацијата за конекцијата со базата е во .env конфигурациската датотека во главниот директориум на проектот. Базата е составена од вкупно девет табели и тоа: |
| | 113 | * roles |
| | 114 | * permissions |
| | 115 | * roles_permissions |
| | 116 | * users |
| | 117 | * password_resets |
| | 118 | * departments |
| | 119 | * folders |
| | 120 | * files |
| | 121 | * file_types |
| | 122 | |
| | 123 | На сликата подолу графички е прикажана структурата на базата со податоци, заедно со табелите и нивната взаемна поврзаност. |
| | 124 | |
| | 125 | [[Image(database_structure.png)]] |
| | 126 | ''Шематски приказ на базата со податоци'' |
| | 127 | |
| | 128 | == 3.1. Табели roles, permissions и roles_permissions == |
| | 129 | |
| | 130 | Табелата "roles" ги содржи ролјите во полето име додека "permissions" табелата името на пермисијата која се означува по тип на ролја во табелата "roles_permissions" која ги содржи ид-то на ролја и ид-то на пермисија. |
| | 131 | |
| | 132 | Полиња во табелата "roles": |
| | 133 | **id** - идентификациски број кој е запишан при конфигурација на базата на податоци |
| | 134 | **name** - име што означува ролја |
| | 135 | |
| | 136 | Примарен клуч: **id** |
| | 137 | |
| | 138 | Полиња во табелата "permissions": |
| | 139 | **id** - идентификациски број кој е запишан при конфигурација на базата на податоци |
| | 140 | **name** - име што означува дозволена пермисија |
| | 141 | |
| | 142 | Примарен клуч: **id** |
| | 143 | |
| | 144 | Полиња во табелата "roles_permissions": |
| | 145 | **role_id** - идентификациски број за ролја |
| | 146 | **permission_id** - идентификациски број за пермисија |
| | 147 | |
| | 148 | Примарен клуч: **role_id**, **permission_id** |
| | 149 | Надворешен клуч: **role_id** - референцира кон **id** во табелата "roles", **permission_id** - референцира кон **id** во табелата "permissions" |
| | 150 | |
| | 151 | == 3.2. Табела "users" == |
| | 152 | |
| | 153 | Во табелата "users" се содржат информации за профилот на корисникот и неговите податоци. Секој корисник има можност да ги менува своите податоци како и своите сетинзи како што се корисничко име, е-адреса или лозинка. |
| | 154 | |
| | 155 | Полиња: |
| | 156 | **id** - идентификациски број кој е генериран при регистрација на корисникот |
| | 157 | **name** - име |
| | 158 | **surname** - презиме |
| | 159 | **username** - корисничко име за најава |
| | 160 | **email** - е-адреса за добивање нотификации |
| | 161 | **phone_number** - контакт број за корисник |
| | 162 | **avatar** - патека на поставена слика за профилот |
| | 163 | **role_id** - идентификациски број за ролја |
| | 164 | **is_active** - дали профилот е активен |
| | 165 | **is_online** - дали во моментот е најавен |
| | 166 | **is_confirmed** - дали профилот е потврден |
| | 167 | **is_forgot_password** - дали е пуштено барање за промена на лозинка |
| | 168 | **created_by** - идентификациски број кој укажува од кого е креиран корисникот |
| | 169 | **security_code** - верификациски код за најава |
| | 170 | **verify_token** - хексадецимален стринг за верификација на најавата |
| | 171 | **password** - лозинка |
| | 172 | **remember_token** - хексадецимален стринг за зачување на податоците за најава |
| | 173 | **created_at** - време кога е креиран профилот |
| | 174 | **updated_at** - време кога последен пат се ажурирани податоците |
| | 175 | |
| | 176 | Примарен клуч: **id** |
| | 177 | Надворешен клуч: **role_id** - референцира кон **id** во табелата "roles", **created_by** - референцира кон **id** во табелата "users" |
| | 178 | |
| | 179 | == 3.3. Табела "password_resets" == |
| | 180 | |
| | 181 | Табелата "password_resets" претставува табела во која се зачува барањето кое корисникот го пушта за промена на лозинка. За барањето се чува е-адресата, токенот како и времето кога е пуштено со цел да се ограничи времетраењето на важност на барањето. |
| | 182 | |
| | 183 | Полиња: |
| | 184 | **email** - е-адреса за испраќање на нотификацијата |
| | 185 | **token** - хексадецимален стринг за верификација на профилот |
| | 186 | **created_at** - време кога е пуштено барањето |
| | 187 | |
| | 188 | == 3.4. Табела "departments" == |
| | 189 | |
| | 190 | Табелата "departments" претставува табела во која се зачувани сите оддели на компанијата кои се креирани од администраторот или референтот. |
| | 191 | |
| | 192 | Полиња: |
| | 193 | **id** - идентификациски број кој е генериран при креирање на оддел |
| | 194 | **name** - име |
| | 195 | **code** - код |
| | 196 | **user_id** - идентификациски број кој укажува од кого е креиран одделот |
| | 197 | **location** - локација на директориумот на одделот на сервер |
| | 198 | **no_of_folders** - број на фолдери асоцирани со одделот |
| | 199 | **created_at** - време кога е креиран одделот |
| | 200 | **updated_at** - време кога последен пат се ажурирани податоците |
| | 201 | |
| | 202 | Примарен клуч: **id** |
| | 203 | Надворешен клуч: **user_id** - референцира кон **id** во табелата "users" |
| | 204 | |
| | 205 | |
| | 206 | == 3.5. Табела "folders" == |
| | 207 | |
| | 208 | Табелата "folders" претставува табела во која се зачувани сите фолдери т.е. документи кои се креирани од администраторот или референтот. |
| | 209 | |
| | 210 | Полиња: |
| | 211 | **id** - идентификациски број кој е генериран при креирање на оддел |
| | 212 | **arch_id** - архивско ид на документот |
| | 213 | **name** - име |
| | 214 | **note** - текст за забелешка |
| | 215 | **location** - локација на директориумот на одделот на сервер |
| | 216 | **no_of_files** - број на датотеки асоцирани со документот |
| | 217 | **user_id** - идентификациски број кој укажува од кого е креиран фолдерот |
| | 218 | **department_id** - идентификациски број за припадност на документот во оддел |
| | 219 | **version** - верзија на документот |
| | 220 | **created_at** - време кога е креиран фолдерот |
| | 221 | **updated_at** - време кога последен пат се ажурирани податоците |
| | 222 | |
| | 223 | Примарен клуч: **id** |
| | 224 | Надворешен клуч: **department_id** - референцира кон **id** во табелата "departments", **user_id** - референцира кон **id** во табелата "users" |
| | 225 | |
| | 226 | == 3.6. Табела "files" == |
| | 227 | |
| | 228 | Во табелата "files" се зачувани сите датотеки т.е. податоци за локацијата на датотеките на сервер, нивното име и големина. |
| | 229 | |
| | 230 | Полиња: |
| | 231 | **id** - идентификациски број кој е генериран при креирање на оддел |
| | 232 | **name** - име |
| | 233 | **location** - локација на директориумот на одделот на сервер |
| | 234 | **folder_id** - идентификациски број за припадност на датотеката во фолдер |
| | 235 | **created_at** - време кога е закачена датотеката |
| | 236 | **updated_at** - време кога последен пат се ажурирани податоците |
| | 237 | |
| | 238 | Примарен клуч: **id** |
| | 239 | Надворешен клуч: **folder_id** - референцира кон **id** во табелата "folders" |
| | 240 | |
| | 241 | == 3.7. Табела "file_types" == |
| | 242 | |
| | 243 | Во табелата "file_types" се зачувани валидациските правила поставени од администраторот за прикачување на датотеки. |
| | 244 | |
| | 245 | Полиња: |
| | 246 | **id** - идентификациски број кој е генериран при креирање на оддел |
| | 247 | **name** - име |
| | 248 | **mimes** - типови на датотеки |
| | 249 | **max_size** - максимална дозволена големина по датотека |
| | 250 | **user_id** - идентификациски број кој укажува од кого е креиран записот |
| | 251 | **created_at** - време кога е креиран профилот |
| | 252 | **updated_at** - време кога последен пат се ажурирани податоците |
| | 253 | |
| | 254 | Примарен клуч: **id** |
| | 255 | Надворешен клуч: **user_id** - референцира кон **id** во табелата "users" |
| | 256 | |
| | 257 | |