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 | |