Веб-приложение для автоматизации учета правонарушений
Структура комитета государственной безопасности Республики Беларусь. Язык программирования PHP. Ограничения возможностей JavaScript. Архитектура клиент-сервер. Классы, реализующие непосредственно логику работы веб-приложения. Структура таблиц базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 01.08.2017 |
Размер файла | 4,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
3.1.8 Класс PreventivesController
Данный класс отвечает за работу с отчетами профучета.
Свойства класса PreventivesController, приведены в таблице 3.11.
Методы класса PreventivesController, приведены в таблице 3.12.
Таблица 3.11 - Свойства класса PreventivesController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. Обеспечивающий изменение внешнего вида страницы. |
Таблица 3.12 - Свойства класса PreventivesController
Метод |
Описание |
|
preventives |
Предоставляет страницу со списком отчетов профучета и связанными с ней функциями. |
|
createPreventive |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы «Отчеты профучет». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
viewPreventive |
Предоставляет страницу содержащей данные об отчете профучета. |
|
editPreventive |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Отчеты профучет». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
deletePreventive |
Осуществляет удаление данных о месте работы по переданному идентификатору. |
3.1.9 Класс PrivateCasesController
Данный класс отвечает за работу с делами правонарушителей.
Свойства класса PrivateCasesController, приведены в таблице 3.13.
Методы класса PrivateCasesController, приведены в таблице 3.14.
Таблица 3.13 - Свойства класса PrivateCasesController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. |
Таблица 3.14 - Свойства класса PrivateCasesController
Метод |
Описание |
|
privateCases |
Предоставляет страницу со списком дел правонарушителей и связанными с ней функциями. |
|
createPrivateCase |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы «Дела». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
viewPrivateCase |
Предоставляет страницу содержащей данные о деле правонарушителя. |
|
editPrivateCase |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Дела». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
deletePrivateCase |
Осуществляет удаление данных дела правонарушителя по переданному идентификатору. |
3.1.10 Класс UrlController
Данный класс отвечает за работу с адресами имеющихся в системе страниц.
Методы класса UrlController, приведены в таблице 3.15.
Таблица 3.15 - Методы класса UrlController
Метод |
Описание |
|
replaceCurrentUrl |
Осуществляет изменение текущего адреса страницы хранящегося в сессии. |
3.1.11 Класс UsersController
Данный класс отвечает за работу с данными о сотрудниках, зарегистрированных в системе.
Методы класса UsersController, приведены в таблице 3.16.
Таблица 3.16 - Свойства класса UsersController
Метод |
Описание |
|
users |
Предоставляет страницу со списком сотрудников и связанными с ней функциями. |
|
Метод |
Описание |
|
createUser |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы «Сотрудники». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
viewUser |
Предоставляет страницу содержащей данные о сотруднике инспекции. |
|
editUser |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Сотрудники». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
changePassword |
Предоставляет страницу с формой изменения пароля пользователя. |
|
deleteUser |
Осуществляет удаление данных сотрудника. |
3.1.12 Класс RelativesController
Данный класс отвечает за работу с данным о родственниках правонарушителя.
Свойства класса RelativesController, приведены в таблице 3.17.
Методы класса RelativesController, приведены в таблице 3.18.
Таблица 3.17 - Свойства класса RelativesController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. Обеспечивающий изменение внешнего вида страницы. |
Таблица 3.18 - Свойства класса RelativesController
Метод |
Описание |
|
relatives |
Предоставляет страницу со списком родственников и связанными с ней функциями. |
|
«Родственники». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
||
createRelative |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы |
|
viewRelative |
Предоставляет страницу содержащей данные о родственнике правонарушителя. |
|
editRelative |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Родственники». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
deleteRelative |
Осуществляет удаление данных о родственнике по переданному идентификатору. |
3.1.13 Класс ChangePinaltiesController
Данный класс отвечает за работу с данными об изменениях приговора.
Свойства класса ChangePinaltiesController, приведены в таблице 3.19.
Методы класса ChangePinaltiesController, приведены в таблице 3.20.
Таблица 3.19 - Свойства класса ChangePinaltiesController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. Обеспечивающий изменение внешнего вида страницы. |
Таблица 3.20 - Свойства класса PreventivesController
Метод |
Описание |
|
changePinalties |
Предоставляет страницу со списком изменений приговора и связанными с ней функциями. |
|
Метод |
Описание |
|
createChangePinalty |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы «Изменения приговора». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
viewChangePinalty |
Предоставляет страницу содержащей данные об изменения по приговору. |
|
editChangePinalty |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Изменения приговора». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
deleteChangePinalty |
Осуществляет удаление данных об изменении приговора по переданному идентификатору. |
3.1.14 Класс ViolationsController
Данный класс отвечает за работу с данными о нарушениях, совершенных по делу правонарушителем.
Свойства класса ViolationsController, приведены в таблице 3.21.
Методы класса ViolationsController, приведены в таблице 3.22.
Таблица 3.21 - Свойства класса ViolationsController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. |
Таблица 3.22 - Свойства класса ViolationsController
Метод |
Описание |
|
Violations |
Предоставляет страницу со списком нарушений и связанными с ней функциями. |
|
createViolation |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы |
|
«Нарушения». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
||
viewViolation |
Предоставляет страницу содержащей данные о совершенных нарушениях. |
|
editViolation |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Нарушения». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
deleteViolation |
Осуществляет удаление данных о нарушении по переданному идентификатору. |
3.1.15 Класс AmnistiesController
Данный класс отвечает за работу с данными амнистирования.
Свойства класса AmnistiesController, приведены в таблице 3.24.
Методы класса AmnistiesController, приведены в таблице 3.25.
Таблица 3.24 - Свойства класса AmnistiesController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. |
Таблица 3.25 - Свойства класса AmnistiesController
Метод |
Описание |
|
amnisties |
Предоставляет страницу со списком амнистий и связанными с ней функциями. |
|
createAmnisty |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы «Амнистии». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
viewAmnisty |
Предоставляет страницу содержащей данные об амнистии. |
|
editAmnisty |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Амнистии». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
deleteAmnisty |
Осуществляет удаление данных об амнистировании по переданному идентификатору. |
3.1.16 Класс PartnersController
Данный класс отвечает за работу с данными о соучастниках.
Свойства класса PartnersController, приведены в таблице 3.26.
Методы класса PartnersController, приведены в таблице 3.27.
Таблица 3.26 - Свойства класса PartnersController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. Обеспечивающий изменение внешнего вида страницы. |
Таблица 3.27 - Свойства класса PartnersController
Метод |
Описание |
|
partners |
Предоставляет страницу со списком соучастников и связанными с ней функциями. |
|
createPartners |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы «Соучастники». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
viewPartners |
Предоставляет страницу содержащей данные о соучастнике по делу. |
|
editPartners |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Соучастники». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
deletePartners |
Осуществляет удаление данных о соучастниках по переданному идентификатору. |
3.1.17 Класс PaymentsController
Данный класс отвечает за работу с данными о платежах.
Свойства класса PaymentsController, приведены в таблице 3.28.
Методы класса PaymentsController, приведены в таблице 3.29.
Таблица 3.28 - Свойства класса PaymentsController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. |
Таблица 3.29 - Свойства класса PaymentsController
Метод |
Описание |
|
payments |
Предоставляет страницу со списком платежей и связанными с ней функциями. |
|
createPayment |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы «Платежи». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
viewPayment |
Предоставляет страницу содержащей данные о платежах. |
|
editPayment |
Предоставляет страницу с формой редактирования, содержащей поля данные формы, будет запущен процесс записи информации в базу данных. |
|
deletePayment |
Осуществляет удаление данные о платеже по переданному идентификатору. |
3.1.18 Класс TreatmentsController
Данный класс отвечает за работу с данными о посещении правонарушителей уголовно-исполнительно инспекции.
Свойства класса TreatmentsController, приведены в таблице 3.30.
Методы класса TreatmentsController, приведены в таблице 3.31.
Таблица 3.30 - Свойства класса TreatmentsController
Свойство |
Описание |
|
layout |
Данное свойство отвечает за базовый шаблон представления. |
Таблица 3.31 - Свойства класса TreatmentsController
Метод |
Описание |
|
treatments |
Предоставляет страницу со списком посещений и связанными с ней функциями. |
|
createTreatment |
Предоставляет страницу с формой создания, содержащей поля соответствующие полям из таблицы «Посещения». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
viewTreatment |
Предоставляет страницу содержащей данные о посещениях. |
|
editTreatment |
Предоставляет страницу с формой редактирования, содержащей поля соответствующие полям из таблицы «Посещения». Передав в функцию данные формы, будет запущен процесс записи информации в базу данных. |
|
deleteTreatment |
Осуществляет удаление данные о посещении уголовно-исполнительной инспекции по переданному идентификатору. |
3.2 Структура таблиц базы данных
В проекте используется обращение к реляционной базе данных, работающей под управлением системы управления базами данных (СУБД) MySQL. Каждой таблице в базе данных соответствует класс доменной модели в приложении, который инкапсулирует всю необходимую для программы информацию об объекте предметной области. Для работы с базой данных используется ORM-решение собственной разработки.
Структура таблиц и связи между ними показаны на чертеже модели данных (ГУИР.400201.206 РР.2), а также подробно рассмотрены далее.
3.2.1 Таблица defendants
Таблица содержит данные о нарушителе.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор нарушителя.
Поля внешних ключей
– gender_id - поле содержащее идентификатор пола;
– issuing_passport - поле содержащее идентификатор органа выдавшего паспорт.
Поля:
– first_name - имя;
– second_name - фамилия;
– patronymic - отчество;
– date_birth - дата рождения;
– place_birth - место рождения;
– place_residence - место проживания;
– place_registration - место регистрации;
– passport_series - серия паспорта;
– passport_number - номер паспорта;
– passport_date_issue - дата выдачи паспорта;
– passport_personal_number - идентификационный номер паспорта;
– home_phone - домашний телефон;
– mobile_phone - мобильный телефон;
– citizenship - гражданство;
– nickname - прозвище;
– photo - фотография;
– note - примечание;
– edit_date - дата изменения записи;
– create_date - дата создания записи.
3.2.2 Таблица relatives
Таблица содержит данные о родственниках правонарушителя.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор родственника нарушителя.
Поля внешних ключей
– gender_id - поле содержащее идентификатор пола;
– issuing_passport - поле содержащее идентификатор органа выдавшего паспорт.
Поля:
– relation_degree - степень родства;
– first_name - имя;
– second_name - фамилия;
– patronymic - отчество;
– date_birth - дата рождения;
– place_reisdence - место проживания;
– place_work - место работы;
– passport_series - серия паспорта;
– passport_number - номер паспорта;
– passport_date_issue - дата выдачи паспорта;
– passport_personal_number - идентификационный номер паспорта.
программирование веб приложение javascript
3.2.3 Таблица places_work
Таблица содержит данные о метах работы правонарушителей.
Поле первичного ключа:
– id - содержит уникальный идентификатор дела правонарушителя.
Поля внешних ключей
– defendant_id - поле содержащее идентификатор правонарушителя.
– case_type - поле содержащее идентификатор типа дела.
Поля:
– company_name - название организации;
– company_address - адрес компании;
– accounting_phone - телефон бухгалтерии;
– personnel_department_phone - телефон отдела кадров;
– position - должность;
– admission_date - дата принятия на работу;
– dismissal_date - дата увольнения;
– note - примечание;
– create_date - дата создание записи;
– edit_date - дата изменения записи.
3.2.4 Таблица private_cases
Таблица содержит данные о делах правонарушителей.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор дела правонарушителя.
Поля внешних ключей
– defendant_id - поле содержащее идентификатор правонарушителя;
– case_type - поле содержащее идентификатор типа дела;
– card_filled_employee_id - поле содержащее идентификатор сотрудника.
Поля:
– case_number - номер дела;
– card_number - номер карты;
– outgoing_number - входящий номер;
– outgoing_date - входящая дата;
– incoming_number - исходящий номер;
– incoming_date - исходящая дата;
– opop_number - ОПОП номер;
– take_accounting_date - дата взятия на учет;
– withdrawn_accounting_date - дата снятия с учета;
– base_withdrawn_accounting - основания снятия с учета;
– note - примечание;
– taken_into_custody_from - дата взятия под стражу;
– taken_into_custody_to - дата освобождения из под стражи;
– taken_into_custody_note - основания освобождения;
– criminal_case_number - номер уголовного дела;
– presence_inspection_report - наличие отчета инспекции;
– copy_employment_record - копия рабочей книги;
– zzd - запрет занимать должности;
– create_date - дата создания записи;
– edit_date - дата изменения записи.
3.2.5 Таблица convictions
Таблица содержит данные о осуждениях вынесенных правонарушителю по делу.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор осуждения.
Поля внешних ключей
– private_case_id - поле содержащее идентификатор дела;
– punishment_extended_court_id - поле содержит идентификатор суда;
– conviction_court_id - поле содержит идентификатор суда;
– release_court_id - поле содержит идентификатор суда;
– released_article_id - поле содержит идентификатор статьи;
– conviction_article_id - поле содержит идентификатор статьи.
Поля:
– date_conviction - дата осуждения;
– conviction_term_years - срок осуждения (лет);
– conviction_term_months - срок осуждения (месяцев);
– conviction_term_days - срок осуждения (дней);
– conviction_term_hours - срок осуждения (часов);
– punishment - наказание;
– date_entry_into_force - дата вступления наказания в силу;
– released_from - место освобождения;
– init_released_date - дата принятия решения об освобождении;
– release_date - дата освобождения;
– conviction_postponed_years - осуждение отложено (лет);
– conviction_postponed_months - осуждение отложено (месяцев);
– conviction_postponed_days - осуждение отложено (дней);
– punishment_extended_date - дата продления наказания;
– punishment_extended_years - продление наказания (лет);
– punishment_extended_months - продление наказания (месяцев);
– punishment_extended_days - продление наказания (дней);
– prohibition_holding_positions - запрет занимать должности;
– prohibitions - запреты по приговору;
– note - примечания;
– create_date - дата создания записи;
– edit_date - дата изменения записи.
3.2.6 Таблица violations
Таблица содержит данные о нарушениях, совершенных правонарушителем по делу.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор нарушения.
Поля внешних ключей
– private_case_id - поле содержащее идентификатор дела.
Поля:
– violation - нарушение;
– type_violation - тип нарушения;
– date_making - дата совершения нарушения;
– main_violation - поле содержит значения, обозначающее является ли это нарушение главным;
– measure_recovery - компенсация ущерба;
– date_expiry - дата истечения срока действия;
– drawdown_date - дата снятия;
– officially - официальность.
3.2.7 Таблица amnesties
Таблица содержит данные об амнистиях.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор амнистии.
Поля внешних ключей
– private_case_id - поле содержащее идентификатор правонарушителя;
– article_id - поле содержит идентификатор статьи.
Поля:
– date_application - дата заявки;
– cancelled_years - отменено лет;
– cancelled_months - отменено месяцев;
– cancelled_days - отменено дней;
– note - примечание.
3.2.8 Таблица change_penalties
Таблица содержит данные об изменениях приговора.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор амнистии.
Поля внешних ключей
– private_case_id - поле содержащее идентификатор правонарушителя;
– new_article_id - поле содержит идентификатор статьи;
– changed_court_id - поле содержит идентификатор суда.
Поля:
– change_date - дата внесения изменения;
– new_term_years - новое количество лет;
– new_term_months - новое количество месяцев;
– new_term_days - новое количество дней;
– number_sentence - номер приговора;
– date_intoduction - дата введения;
– changes - изменения;
– additional_punishment - дополнительное наказание.
3.2.9 Таблица treatments
Таблица содержит данные об посещениях правонарушителя уголовно-исполнительной инспекции.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор посещения.
Поля:
– date - дата посещения;
– note - примечание.
3.2.10 Таблица reports_puku
Таблица содержит данные о отчетах профучета.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор посещения.
Поля:
– one - первое число месяца;
– two - второе число месяца;
– three - третье число месяца;
– four - четвертое число месяца;
– five - пятое число месяца;
– six - шестое число месяца;
– seven - седьмое число месяца;
– eight - восьмое число месяца;
– nine - девятое число месяца;
– ten - десятое число месяца;
– eleven - одиннадцатое число месяца;
– twelve - двенадцатое число месяца;
– therteen - тринадцатое число месяца;
– fourteen - четырнадцатое число месяца;
– fifteen - пятнадцатое число месяца;
– sixteen - шестнадцатое число месяца;
– seventeen - семнадцатое число месяца;
– eighteen - восемнадцатое число месяца;
– nineteen - девятнадцатое число месяца;
– twenty - двадцатое число месяца;
– twenty_one - двадцать первое число месяца;
– twenty_two - двадцать второе число месяца;
– twenty_three - двадцать третье число месяца;
– twenty_four - двадцать четвертое число месяца;
– twenty_five - двадцать пятое число месяца;
– twenty_six - двадцать шестое число месяца;
– twenty_seven - двадцать седьмое число месяца;
– twenty_eight - двадцать восьмое число месяца;
– twenty_nine - двадцать девятое число месяца;
– thity - тридцатое число месяца;
– thiry_one - тридцать первое число месяца;
– total - общее число дней;
– note - примечание;
– month - месяц;
– year - год;
– ky - наличие контручета;
– pu - наличие профучета;
– create_date - дата создания записи;
– edit_date - дата изменения записи.
3.2.11 Таблица partners
Таблица содержит данные о соучастниках по делу.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор амнистии.
Поля внешних ключей
– private_case_id - поле содержащее идентификатор правонарушителя;
– defendant_id - поле содержит идентификатор правонарушителя, на которого открыто дело;
– partner_id - поле содержит идентификатор правонарушителя, который является соучастником по делу.
3.2.12 Таблица payments
Таблица содержит данные о платежах совершенных при осуществлении возмещений ущерба.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор платежа.
Поля внешних ключей
– private_case_id - поле содержащее идентификатор правонарушителя;
– report_puku - поле содержит идентификатор отчета профучета.
Поля:
– payment_date - дата платежа;
– number_directory - номер каталога;
– number_PP - номер ПП;
– number_workong_days - количество рабочих дней;
– number_included_days - количество включенных дней;
– number_not_included_days - количество не включенных дней;
– reason - причина;
– earn_money - заработал денег;
– transferred_money - перечислено денег.
3.2.13 Таблица notices
Таблица содержит данные об извещениях, отправленных по месту работы.
Поля:
– name - название извещения;
– direction_date - дата отправки извещения;
– confirmation_date - дата подтверждения о получении.
3.2.14 Таблица additional_employees
Таблица содержит данные о сотрудниках.
Поле первичного ключа:
– id - поле содержит уникальный идентификатор платежа.
Поля внешних ключей
– gender - поле содержащее идентификатор пола;
– position - поле содержит идентификатор должности;
– title - поле содержит идентификатор звания.
Поля:
– first_name - имя;
– second_name - фамилия;
– patronymic - отчество;
– date_birthday - дата рождения;
– in_ovd - в ОВД;
– in_position - в должности;
– education - образование;
– vuz - закончил ли ВУЗ;
– cabinet - номер кабинета;
– work_phone - рабочий телефон;
– mobile_phone - мобильный телефон;
– card_number - номер карточки;
– note - примечание;
– login - логин;
– password - пароля;
– create_date - дата создания;
– edit_date - дата изменения.
3.3 Классы работы с базой данных и доступа к данным
К классам, работающим с базой данных и имеющим прямой доступ к данным, можно отнести классы моделей и менеджеров.
Менеджеры моделей представляют собой посредников между сервисами и моделями, предоставляющие дополнительные возможности при обработке данных. Родительским классом является ModelManager, предоставляющий следующий функционал:
– кэширование данных;
– формирование базовых запросов в базу данных, напрямую;
– построение модели данных;
– формирование запросов через класс модели данных;
– выполнение запросов;
– фильтрация данных.
Модели - это классы, являющиеся представлением таблиц базы данных, содержащие поля таблицы и расширяющие по мере необходимости возможности работы с данными, посредством добавления функций. Родительским классом моделей данных является класс DynamicModel, содержащий следующий функционал:
– формирование и выполнение запросов;
– представление данных;
– проверка данных.
Взаимодействие с базой данных осуществляется посредством стандартных SQL-запросов.
3.3.1 Класс ModelManager
Данный класс является родительским для все классов менеджеров. Он содержит базовый и основной набор функций для взаимодействия с моделями данных и базой данных используя для этого класс Db или Orm. Остальные менеджеры лишь расширяют его возможности по мере необходимости, например, в тех случаях, когда приходится написать специфический запрос для обращения к базе данных.
Свойства класса ModelManager, приведены в таблице 3.32.
Таблица 3.32 - Свойства класса ModelManager
Свойство |
Описание |
|
tableName |
Данное свойство является защищенным и содержит название таблицы используемого менеджера модели данных. |
|
id_field_name |
Данное свойство является защищенным, содержит название поля первичного ключа таблицы. По умолчанию имеет значение id. |
|
selected_fields |
Данное свойство является защищенным и содержит набор полей, которые будут выбираться из набора данных полученных при запросе. По умолчанию выбираются все. |
|
orm_model |
Данное свойство является защищенным и содержит объект класса Orm, предназначенный для работ с моделями данных, формированием запросов и их выполнения. |
|
modelName |
Данное свойство является защищенным и содержит название класса модели данных для используемого менеджера модели данных. |
|
db |
Данное свойство является защищенным и содержит объект класса Db, используемый для установки связи с базой данных, формирования и выполнения запросов к ней. |
|
fields |
Данное свойство является защищенным и содержит список полей, которые будут использоваться при выборке данных из полученного результата выполнения запроса. |
|
db_fields |
Данное свойство является защищенным и содержит список полей таблицы. |
|
db_field_types |
Данное свойство является защищенным и содержит типы полей таблицы. |
|
total_hits |
Данное свойство является защищенным и содержит общее число записей. |
|
is_cached |
Данное свойство является защищенным и содержит значение по которому можно судить о том, помещен ли результат выполнения метода в кэш или нет. |
Методы класса ModelManager, приведены в таблице 3.33.
Таблица 3.33 - Методы класса ModelManager
Метод |
Описание |
|
__construct |
Метод срабатывающий при создании объекта и инициализирует основные свойства. |
|
getGroupName |
Метод возвращающий название таблицы в зависимости от менеджера и принадлежности его к модели данных. |
|
getModelName |
Метод возвращающий название используемой модели данных. |
|
getNotCachedMethods |
Метода возвращающий название методов, которые не нужно кэшировать. |
|
getCachedMethods |
Метода возвращающий название методов, которые нужно кэшировать. |
|
isCached |
Метод проверяющий является ли метод закешированным. |
|
setCached |
Метод возвращает устанавливающим флаг кэширования. |
|
setNoCached |
Метод сбрасывает значение флага кэширование. |
|
getTotalHits |
Метод возвращающий общее число записей в таблице. |
|
getOneById |
Метод осуществляет запрос к базе данных, к таблице, имя которой задано в свойстве tableName используемого менеджера. Возвращает одну запись из базы данных полученному по переданному в функцию идентификатору. |
|
getSortedListByIdList |
Метод осуществляет запрос к базе данных, к таблице, имя которой задано в свойстве tableName используемого менеджера. Возвращает список записей из базы данных полученному по переданным в функцию идентификаторам и отсортированным в том порядке, в котором эти идентификаторы были переданы. |
|
getList |
Метод осуществляет запрос к базе данных, к таблице, имя которой задано в свойстве tableName используемого менеджера. Возвращает список записей таблицы. |
|
getSortedList |
Метод осуществляет запрос к базе данных, к таблице, имя которой задано в свойстве tableName используемого менеджера. Возвращает список записей таблицы отсортированных по полям, переданным в функцию. |
|
getFields |
Получает список заданных для данной модели полей. |
|
getListBySearchParams |
Метод осуществляет запрос к базе данных, к таблице, имя которой задано в свойстве tableName используемого менеджера. В качестве значения принимает объект SearchParams. Данный объект содержит данные о запросе в своих свойствах, по которым строит запрос, выполняемый в описываемой функции. |
|
initList |
Метод осуществляющий преобразование список массивов данных, извлеченных из таблицы в объекты, соответствующие им. |
|
initOne |
Метод осуществляющий преобразование массива данных, извлеченных из таблицы в объекты, соответствующие им. |
|
save |
Метод осуществляющий проверку данных и сохранение их в таблицу, путем добавления записи или обновления имеющейся, если передан ее идентификатор. |
|
create |
Метод осуществляющий создание записи в базе данных со значениями переданных в нее данных. |
|
delete |
Метод осуществляет удаление записи по идентификатору извлеченному из объекта модели данных. |
|
deleteById |
Метод осуществляет удаление записи по переданному в нее идентификатору. |
|
update |
Метод осуществляет обновление данных записи извлеченных из объекта модели данных. |
|
formParamsArrayFromModel |
Метод осуществляющий извлечение данных из модели. |
|
getDbFields |
Метод осуществляющий запрос к базе данных для получения полей, используемой таблицы. |
|
beforeSave |
Метод вызывающийся перед сохранением данных в таблицу. |
|
afterSave |
Метод вызывающийся после сохранения данных в таблицу. |
|
checkExistsById |
Метод проверяющий наличие записи в таблице по идентификатору. |
|
getListWithLimit |
Метод осуществляющий запрос к базе данных и возвращающий ограниченное число записей, количество которых равняется значению, переданному в функцию. |
|
getListWithPaging |
Метод осуществляющий запрос к базе данных и возвращающий ограниченное число записей, количество которых равняется номеру страницы и количеству записей, отображаемых не ней. Используется для построение постраничной навигации |
|
deleteAll |
Метод очищающий таблицу. |
|
resetAutoIncrement |
Метод сбрасывающий значение счетчика записей таблицы. |
|
truncateTable |
Метод осуществляющий пересоздание таблицы. |
|
getIdList |
Метод осуществляющий запрос к используемой таблице базы данных для получения списка идентификаторов. |
|
createModel |
Метод создает объект модели данных. |
|
getTableName |
Метод возвращающий имя таблицы. |
|
filter |
Метод осуществляющий фильтрацию полученных данных из базы данных, по заданным полям или полям таблицы. |
|
getParams |
Метод возвращающий данные таблицы извлеченные из объекта модели данных. |
3.3.2 Класс DynamicModel
Данный класс является родителем всех остальных моделей данных. Содержит базовый функционал для работы с базой данных. Осуществляет работу как с динамическими свойствами, заданными на этапе построения объекта, так и со свойствами, заданными для каждой из моделей данных. Особенность данных классов заключается в том, что они позволяют инкапсулировать в себе операции с различными классами для получения данных. Классы моделей данных предоставляют интерфейс для работы с ними посредством обращения к их свойствам, каждому из которых соответствует метод, осуществляющий обработку данных и возврат этих данных.
Свойства класса DynamicModel, приведены в таблице 3.34.
Таблица 3.34 - Свойства класса DynamicModel
Свойство |
Описание |
|
id |
Данное свойство является защищенным и содержит название таблицы используемого менеджера модели данных. |
|
params |
Данное свойство является защищенным и содержит данные выбранные из таблицы. |
|
validator |
Данное свойство является защищенным и содержит объект класса ModelValidator, используемый для проверки обрабатываемых в модели данных. |
|
validate |
Данное свойство является защищенным и содержит значение, по которому определяется, нужно ли проверять данные модели перед обработкой. |
|
save_process_flag |
Данное свойство является защищенным и содержит значение, по которому определяется будет ли вызван метод модели данных перед осуществлением сохранения данных. |
|
manager |
Данное свойство является защищенным и содержит объект менеджера текущей модели данных. |
|
is_new |
Данное свойство является защищенным и содержит значение, по которому можно определить является ли модель новой или уже была использована ранее |
|
is_need_to_filter |
Данное свойство является защищенным и содержит значение, по которому определяется осуществлять фильтр по полям или нет. |
|
fields_models |
Данное свойство является защищенным и содержит список полей таблицы. |
Методы класса DynamicModel, приведены в таблице 3.35.
Таблица 3.35 - Методы класса DynamicModel
Методы |
Описание |
|
setParams |
Метод осуществляющий установку списка полей модели данных, переданных в виде массива. |
|
setValidator |
Метод осуществляющий установку объекта, осуществляющего проверку данных. |
|
getValidator |
Метод возвращающий объект осуществляющий проверку данных. |
|
getId |
Метод осуществляющий возврат идентификатора текущей записи таблицы. |
|
setId |
Метод осуществляющий установку идентификатора текущей записи таблицы. |
|
isNeedToFilter |
Метод возвращающий значение свойства is_need_to_filter, которому определяется осуществлять фильтр по полям или нет. |
|
disableFilter |
Метод осуществляющий отключение фильтра данных для текущей модели данных. |
|
enableFilter |
Метод позволяющий использовать фильтр для данной модели. |
|
__get |
Метод осуществляющий обращаться к динамическим полям и заранее заготовленным методам, через обращение к свойствам модели данных. При первом обращении задействует функции, инкапсулированные в методы соответствующих свойств и сохраняет результат их работы. При повторном обращении к ним, берет данные из памяти. |
|
getParams |
Метод осуществляющий возврат данных полей текущей записи. |
|
validate |
Метод инициирующий проверку данных модели данных в соответствии с правилами, заданными в установленном для данной модели объекте ModelValidator. |
|
setFields |
Метод устанавливающий свойства модели данных по переданному в него ассоциативному массиву. |
|
disableValidation |
Метод осуществляющий отключение проверки данных. |
|
enableValidation |
Метод осуществляющий включение проверки данных. |
|
getManager |
Метод возвращающий объект менеджера данных. |
|
getUniqueId |
Метод возвращающий идентификатор текущей записи. |
|
getFields |
Метод возвращающий набор полей заданный для данной модели данных. |
|
save |
Метод осуществляющий сохранение данных заданных для текущей модели данных. |
|
update |
Метод осуществляющий обновление данных заданных для текущей модели данных. |
|
getSaveProcessFlag |
Метод возвращающий значение флага, влияющего на вызов функции перед сохранение данных. |
|
setSaveProcessFlag |
Метод предоставляющий возможность вызова метода модели данных перед выполнение сохранения данных. |
|
unsetSaveProcessFlag |
Метод запрещающий возможность вызова метода модели данных перед выполнение сохранения данных. |
|
setDefaultValue |
Метод задающий полям модели данных значения по умолчанию. |
|
clearParams |
Метод очищающий параметры, заданные для модели данных. |
|
isNew |
Метод возвращающий значение, по которому можно определить является ли модель данных новой. |
|
delete |
Метод осуществляющий удаление текущей записи. |
4. РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ
4.1 Программные модули
4.1.1 Авторизация
Работа с приложением начинается после того, как пользователь перешел по адресу http://ao.by. Перейдя по этому адресу, пользователь попадает на страницу авторизации.
Авторизация является важной частью системы. Она осуществляет идентификацию пользователя и предоставляет ему доступ к сайту и его данным. В тоже время, авторизация предотвращает несанкционированный доступ к данным, пользователя не зарегистрированными в система. В Вэб-приложении со стороны веб-сервера за это отвечает метод login контроллера AccountController.
При входе пользователя на сайт в первую очередь проверяется авторизован ли он. Это проверка происходит в методе beforeAction родительского класса BaseController, от которого наследуются все контроллеры.
public function beforeAction()
{
$actionWithoutAuthorization = array(
'clearData',
);
if(!in_array($this->action, $actionWithoutAuthorization)) {
$this->authorized = Acc::isAuthed();
if(!$this->authorized) {
RedirectManager::redirect('/login');
} else {
if(!$this->security->checkAccess($this->action)) {
if($this->request->isAjax()) {
JsonResponse::error('error', 0, $this->errorMessages['denied_access']);
} else {
RedirectManager::redirect404();
}
}
if(!in_array($this->action, $this->getNotRememberMethods())) {
$this->setSessionHistory();
}
}
$this->changePageEvent();
$this->transferToView();
$this->dataCleaning();
}
}
Метод beforeAction вызывается каждый раз при загрузке страницы и проверяет авторизован ли пользователь, который пытается попасть на страницу. Проверка прохождения пользователем авторизации осуществляется в следующем условии:
if(!$this->authorized) {
RedirectManager::redirect('/login');
}
Если пользователь не прошел авторизацию $this->authorized свойство будет иметь ложное значение и в этом случае пользователю будет предложено авторизовать, путем возврата его на страницу авторизации, представленной на рисунке 4.1.
Рисунок 4.1 - Форма авторизации
Это свойство примет истинное значение только в том случае, кода пользователь пройдет аутентификацию и авторизуется в базе данных, сервер приложений и веб-сервера.
Процесс аутентификации начинается с того, что пользователь пришедший на сайт вводит свои данные в виде логина и пароля в форме, представленной на рисунке 4.1. При нажатии на кнопку «Войти» осуществляется отправка данных POST-запросом на веб-сервер.
На веб-сервере данные принимаются методом login класса AccountController, листинг данного метода приведен ниже.
public function login()
{
/**
* @var AccountService $accountService
**/
$this->layout = 'account';
if($this->authorized) {
/*
* В случае если пользователь уже осуществил авторизцию, переадресовываем его на главную для него страницу
* или на страницу изменения пароля, в случае если действие его пароля истек.
*/
$this->redirectAuthUserPage(Acc::getAccountInfo());
}
if($this->request->isPost()) {
$accountService = ServiceFactory::getByName('account', $this, $this->request('login', array()));
$response = $accountService->login();
if(!$accountService->handleRequestError()) {
if($accountService->hasWarning()) {
Flash::set(ResponseStatuses::RESPONSE_WARNING, $accountService->getWarning());
}
$this->redirectAuthUserPage($response);
} else {
$error = $accountService->getError();
}
}
$this->addToJsData(
array(
'getKeyUrl' => LinkHelper::getUrl('getEncryptionKeyForElectronicKey')
)
);
$this->view->distributionPath = $this->siteCfg['distribution_path'] . $this->siteCfg['distribution_name'];
$this->view->error = !empty($error) ? $error : '';
}
В нем принимается решение повторить ли авторизацию или пропустить пользователя и задействовать его права на выполнение функций. Это метод вызывает метод login своего сервиса AccountService. В этом методе и находится основная логика, осуществляющая проверку данных полученных из
формы авторизации, отправку запроса и анализ результата работы метода.
public function login()
{
/**
* @var AdditionalEmployeesManager $additionalEmployeesManager
**/
$convertedData = $this->_fieldTypes->getConvertedFields($this->getAction(), $this->getData());
$this->validate($convertedData);
if(!$this->checkValidateStatus()) {
$this->setError($this->getValidateError());
} else {
$additionalEmployeesManager = ModelManagerFactory::getByName('additionalEmployees');
$employee = $additionalEmployeesManager->getEmployeesByLoginAndPassword(
$convertedData['login'],
$this->getSecurity()->getPasswordHash($convertedData['password'])
);
if(!empty($employee)) {
$response = $this->processedLoginResponse($employee);
} else {
$this->setError($this->getErrorMessage('auth_absent_account'));
}
}
return !empty($response) ? $response : array();
}
В данном методе данные пришедшие с клиентской части приводятся к нужному типу, что позволяет предотвратить внедрение постороннего кода и иных причин способных привести к некорректной работе.
$convertedData = $this->_fieldTypes->getConvertedFields($this->getAction(), $this->getData());
После этого осуществляется проверка логина и пароля на соответствие правилам для этих данных.
$this->validate($convertedData);
Если будет определено, что данные не прошли проверку, сообщение об этом будет отображено пользователю на странице авторизации. В ином случае, будет создан объект менеджера модели данных. После чего осуществляется попытка получения пользователя по логину и паролю, прошедшего шифрование алгоритмом sha512 используя соль, путем вызова метода getEmployeesByLoginAndPassword менеджера модели данных AdditionalEmployeesManager.
$additionalEmployeesManager = ModelManagerFactory::getByName('additionalEmployees');
$employee = $additionalEmployeesManager->getEmployeesByLoginAndPassword(
$convertedData['login'],
$this->getSecurity()->getPasswordHash($convertedData['password'])
);
В данном методе осуществляется построение запроса. Для этого используется класс Orm.
public function getEmployeesByLoginAndPassword($login, $password)
{
$data = $this->orm_model->select()->where(' login = ? AND password = ? ', $login, $password)->fetchOne();
return (count($data)) ? $this->initOne($data) : array();
}
Если по полученному логину и паролю будет найден пользователь, в таком случае считается что авторизация выполнена успешно.
Ответ на корректно обработанный запрос передается в метод login сервиса AccountService, где происходит завершающая стадия авторизации. Из ответа определяются общая информация о пользователе, которая была установлена ему в момент регистрации в базе данных. Эти данные сохраняются в сессии и могут быть использованы в дальнейшем для отображения их на сайте, а также для управления доступного ему функционала.
4.1.2 Заведение дела
Заведение дела начинается с введения данных о правонарушителе. За работу с данными правонарушителей отвечает контроллер DefendantController, а также его сервис DefendantService и менеджер DefendantManager модели данных, вместе с моделью данных DefendantModel.
Введение данных о правонарушителе осуществляется на странице «Создания правонарушителя», за работу данной страницы отвечает метод createDefendant контроллера DefendantController.
public function createDefendant()
{
/**
* @var DefendantsService $defendantsService
* @var ReferencesService $referencesService
**/
$params['formData'] = $this->request($this->action, array());
$params['files'] = $_FILES;
$fields = array();
$referencesService = ServiceFactory::getByName('references', $this, $params);
$defendantsService = ServiceFactory::getByName('defendants', $this, $params);
if($this->request->isPost()) {
$defendantsService->createDefendant();
if(!$defendantsService->handleRequestError()) {
$responseStatus = ResponseStatuses::RESPONSE_SUCCESS;
$responseParams = array(
'title' => $this->infoMessages['create_defendant_title'],
'message' => str_replace('%defendantName%', $defendantsService->getUserFio(), $this->infoMessages['create_defendant_message'])
);
if($defendantsService->hasWarning()) {
$responseStatus = ResponseStatuses::RESPONSE_WARNING;
$responseParams = $defendantsService->getWarning();
}
Flash::set($responseStatus, $responseParams);
RedirectManager::redirect(Ahist::getPrevUri());
} else {
$fields = $params['formData'];
}
}
$this->view->fields = $fields;
$this->view->inspections = $referencesService->getInspections();
$this->view->genders = $referencesService->getGenders();
$this->view->isCreate = TRUE;
$this->view->error = $defendantsService->getError();
$this->view->warning = $defendantsService->getWarning();
$this->render('/defendants/edit-defendant');
}
Этот метод предоставляет форму с полями таблицы defendants и принимает данные формы для последующей их записи в базу данных. Заполнив форму и передав данные формы в функцию, они подвергаются к приведению к типу и проверки переданных данных, в соответствии с установленными для полей формы правилами. Приведение к типу делается для того, чтобы устранить вероятность попадания в таблицу данных, которые могут нарушить работу Веб-приложения.
После успешного прохождения проверки данные передаются менеджеру данной таблицы DefendantManager. Тот совместно с моделью данных DefendantModel, осуществляет построение запроса на сохранение данных и его выполнение. За построение и выполнение отвечает класс Orm.
Далее проверяется успешность сохранения и при успешном сохранении запись появляется в таблице правонарушителей на странице «Правонарушители». Создав правонарушителя можно приступать к добавлению данных о правонарушителе, месте работы и родственниках.
С этого момента можно осуществлять заведение дела. Дело заводится путем вызова функции CreatePrivateCase контроллера PrivateCaseController.
public function createPrivateCase()
{
/**
* @var PrivateCasesService $privateCasesService
**/
$params['defendantId'] = $this->request('defendant_id', '');
$params['caseType'] = $this->request('case_type', '');
$fields = array();
$privateCasesService = ServiceFactory::getByName('privateCases', $this, $params);
if($this->request->isPost()) {
$privateCaseId = $privateCasesService->createPrivateCase();
if(!$privateCasesService->handleRequestError()) {
$responseStatus = ResponseStatuses::RESPONSE_SUCCESS;
$responseParams = '';
if($privateCasesService->hasWarning()) {
$responseStatus = ResponseStatuses::RESPONSE_WARNING;
$responseParams = $privateCasesService->getWarning();
}
Flash::set($responseStatus, $responseParams);
RedirectManager::redirect(LinkHelper::getUrl('editPrivateCase', array('caseType' => $params['caseType'], 'caseId' => $privateCaseId)));
} else {
Flash::set(ResponseStatuses::RESPONSE_ERROR, $this->errorMessages['site_update_error']);
RedirectManager::redirect(Ahist::getPrevUri());
}
}
$this->view->error = $privateCasesService->getError();
$this->view->warning = $privateCasesService->getWarning();
$this->render('/defendants/edit-defendant');
}
Принцип работы данного метода аналогичен предыдущему. Принимает данные, обрабатывает и записывает их в базу данных. Вместе с данными о деле в таблицу заносится идентификатор правонарушителя, являющего ссылкой на правонарушителя.
При создании дела есть небольшая особенность. Дело создается изначально пустым, и вызывает потом на редактирование. Это сделано для упрощения заведения дел и постепенного их наполнения.
На этом можно считать создание дела законченным. Далее необходимо переходить к напылению дела, вводу данных об нарушения, соучастниках, судимости и тому подобному.
После того как дело будет наполнено, можно будет приступать к формированию документов и отчетов.
5. ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ
5.1 Определение вида тестирования
Существуют различные виды тестирования, подразделяющиеся на группы, в зависимости от цели тестирования и от того, какая часть программного обеспечения подлежит тестированию, части либо всех частей веб-приложения на всех уровнях разработки. Система тестирования включает в себя следующие возможности:
1. Юнит-тесты, позволяющие быстро и автоматически протестировать отдельные участки кода независимо от остальной части программы. При надлежащем составлении юнит-тесты вполне могут покрыть большую часть кода приложения.
2. Интеграционные тесты. Даже если охватить юнит-тестами практически всю логику приложения, все равно могут быть моменты, которые будут работать не так, как надо. Подобные вещи тестируются с помощью интеграционных тестов, выполняющихся на уровне веб-браузера.
3. Нагрузочные тесты, которые призваны протестировать работу сайта в условиях высокой нагрузки. Подобные тесты позволяют выявить узкие места на различных уровнях, которые сложно выявить другими способами.
В виду желания заказчика, не один из выше перечисленных методов не был задействован в полной мере, предпочтение было отдано функциональному тестированию.
5.2 Объект тестирования
Объектом тестирования выступает «Веб-приложение для автоматизации учета правонарушений» (далее - Веб-приложение).
Веб-приложение обеспечивает следующую функциональность:
– ведение базы сотрудников;
– ведение базы мест работы;
– ведение базы личных дел правонарушителей;
– ведение базы правонарушений;
– ведение базы родственников правонарушителя;
– ведение базы профучета;
– обеспечение возможности просмотра и сортировки информации базы данных.
Функциональность, приведенная выше достигается за счет выполнения следующих функций:
– Вход в систему;
– Выход из системы;
– Добавить сотрудника;
– Просмотреть список сотрудников;
– Редактировать сотрудника;
– Изменить пароль сотрудника;
– Удалить сотрудника;
– Добавить правонарушителя;
– Просмотреть список правонарушителей;
– Просмотреть правонарушителя;
– Редактировать правонарушителя;
– Удалить правонарушителя;
– Добавить место работы правонарушителя;
– Просмотреть место работы правонарушителя;
– Редактировать место работы правонарушителя;
– Удалить место работы правонарушителя;
– Добавить родственника;
– Просмотреть список родственников;
– Просмотреть родственника;
– Редактировать родственника;
– Удалить родственника;
– Добавить дело;
– Просмотреть список дел;
– Просмотреть дело;
– Редактировать дело;
– Удалить дело;
– Добавить осуждение;
– Просмотреть список осуждений;
– Просмотреть осуждение;
– Редактировать осуждение;
– Удалить осуждение;
– Добавить нарушение;
– Просмотреть список нарушений;
– Просмотреть нарушение;
– Редактировать нарушение;
– Удалить нарушение;
– Добавить отчет профучета;
– Просмотреть список отчетов профучета;
– Просмотреть отчет профучета;
– Редактировать отчет профучета;
– Удалить отчето профучета;
– Формировать документ.
5.3 Цель тестирования
Предварительные испытания проводятся с целью проверки работоспособности Веб-приложения.
5.4 Средства и порядок испытаний
Испытания Веб-приложения осуществляются на собственном оборудовании и на данных, предоставленных заказчиком.
Запуск Веб-приложение осуществляется путем ввода в адресной строке браузера следующего адреса: http://ao.by.
5.5 Методы испытаний
5.5.1 Вход в систему
Доступ пользователей осуществляется через сеть интернет и обеспечивается архитектурой Веб-приложения. Вход пользователей возможен только для авторизованных пользователей.
Для проверки возможности авторизованного входа пользователя необходимо выполнить следующие действия:
1) Запустить Веб-приложение, перейдя по ссылке http://ao.by.
2) В форме авторизации осуществить ввод логина и пароля.
3) Нажать на кнопку «Войти».
Проверка считается выполненной, если:
1) Доступ к Веб-приложению обеспечивается через сеть интернет.
2) Зарегистрированному пользователю удалось зайти в Веб-приложение и отобразилась главная страница.
3) При попытке войти незарегистрированному пользователю выдалось сообщение «Введенное сочетание логин и пароль не найдено в системе»
5.5.2 Выход из системы
Для проверки возможности выхода пользователя из системы необходимо выполнить следующие действия:
1) Находясь на любой странице навести курсор на сое имя, находящееся в шапке сайта, тем самым открыв блок с информацией пользователя.
2) Нажать на кнопку «Выйти».
Проверка считается выполненной, если:
1) Если произошло перенаправление на страницу авторизации.
2) Если пропал доступ к внутренним страницам.
5.5.3 Добавить сотрудника
Для проверки функции добавления сотрудника необходимо выполнить следующие действия:
Подобные документы
Многоуровневые архитектуры клиент–сервер. Диаграммы классов, реализующих уровни презентации, бизнес–логики и базы данных приложения. Словесное описание процесса выполнения транзакций. Создание, изменение и удаление хранимых процедур, их выполнение.
курсовая работа [3,4 M], добавлен 23.03.2013Создание базы данных при помощи СУБД, разработка собственного приложения. Информационно-логическая модель рекламного агентства. Структура реляционной базы данных в Access. Заполнение таблиц информацией. Структура приложения и взаимодействия форм.
курсовая работа [12,6 M], добавлен 17.06.2014Исследование возможностей и областей использования языка программирования JavaScript. Сравнительный анализ языков программирования JavaScript и PHP. Разработка интерактивного Web-приложения на примере теста по теме "Программирование на языке Delphi".
практическая работа [26,0 K], добавлен 04.02.2015Архитектура клиент-сервер на основе сокетов Windows. Описание утилиты Ipconfig. Конфигурирование стека TCP/IP. Реализация сокетов через классы NET. Структура библиотечных и пользовательских классов. Схема интерфейса пользователя и работы приложения.
курсовая работа [419,5 K], добавлен 13.12.2012Обзор существующего программного обеспечения. Структура и отличительные особенности формата MP3. Сокеты TCP/IP, клиент-сервер. Язык программирования Visual Basic.net в среде разработки Visual Studio 2008. Разработка приложения "MP3_Catalogizator".
дипломная работа [2,1 M], добавлен 09.02.2015Назначение и возможности разработанного приложения. Определение ограничения на таблицу в среде MS SQL Server. Структура базы данных: состав и содержание таблиц, SQL-код. Диалог пользователей с разработанным приложением, корректировка таблиц-справочников.
курсовая работа [1,8 M], добавлен 30.04.2013Описание основных используемых технологий и языков программирования. Язык программирования JavaScript. Таблица стилей CSS. Общая схема работы web-приложения. API система "1С-Битрикс: Управление сайтом". Формирование требований к сценариям работы.
дипломная работа [186,4 K], добавлен 30.04.2014Проектирование базы данных для автоматизации деятельности по учету автотранспорта ГИБДД Вяземского района. Выбор инструментария для разработки базы данных и приложения по её ведению. Описание интерфейса и физической структуры приложения баз данных.
курсовая работа [2,2 M], добавлен 28.06.2011Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.
курсовая работа [1,0 M], добавлен 16.12.2012Представление данных в памяти компьютера. Обобщенные структуры и модели данных. Методы доступа к информации. Физическая организация системы управления базами данных, структура сервера. Архитектура "клиент-сервер". Создание базы данных с помощью "Денвер".
курсовая работа [770,3 K], добавлен 17.11.2014