Changes between Version 41 and Version 42 of Дизајн на системот


Ignore:
Timestamp:
12/21/21 13:37:54 (2 years ago)
Author:
151545
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Дизајн на системот

    v41 v42  
    1717
    1818=== Laravel ===
    19 Laravel е PHP рамка со отворен код, која е робусна и лесна за разбирање. Следи шема на model-view контролер. Laravel со повторување ги користи постојните компоненти на различните рамки што помага во креирање веб -апликација. Во тој начин дизајнираната веб -апликација е повеќе структуирана и прагматична.
    20 Laravel нуди богат сет на функционалности што ги вклучува основните карактеристики на PHP, рамките како CodeIgniter, Yii и други програмски јазици како Ruby on Rails. Laravel има многу богат сет на карактеристики што ќе ја зголемат брзината на веб -развој.
     19Laravel е PHP рамка со отворен код, која е робусна и лесна за разбирање. Следи шема на model-view контролер. Laravel со повторување ги користи постојните компоненти на различните рамки што помага во креирање веб -апликација. На тој начин дизајнираната веб -апликација е повеќе структуирана и прагматична.
     20Laravel нуди богат сет на функционалности што ги вклучува основните карактеристики на PHP, рамките како CodeIgniter, Yii и други програмски јазици како Ruby on Rails. Има многу богат сет на карактеристики што ќе ја зголемат брзината на веб -развој. За база на податоци се користи MySQL 5.7 [https://www.mysql.com/].
    2121
    2222Кога дизајнираме веб -апликација со Laravel,  тој ги нуди следниве предности [10]:
     
    104104
    105105[[Image(umlClassDiagram.png)]]\\
    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
    119258{{{#!box type=todo
    120259Ако ставате секценцијален дијаграм воопшто, наведете го прецизно онака како што е реализирано. Значи да бидат наведени конкретните класи кои влегуваат во интеракцијата од почеток до крај, од комуникација со корисник до запишување во база и фајл систем. Означете од кои пакети се класите, бидејќи се сите од различни пакети.
     
    123262
    124263{{{#!box type=comment
    125 /
    126 }}}
    127 
    128 [[Image(umlSequence_folder.png)]]\\
    129 ''Слика 5 - Секвенцијален дијаграм за креирање на нов фолдер''
    130 
    131 
    132 
    133 
    134 
    135 
     264Избришано
     265}}}
     266
     267
     268
     269
     270
     271
     272