Диплом: Разработка интерактивной информационной веб-системы для упрощения документооборота в инжиниринговой компании ООО НИПИИ ЭТ «ЭнергоТрансПроект»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
70
Авторизация
Работа со
справочниками
Выбор справочника
Работа с документами
Добавление записи
Изменение записи
Удаление записи Выбор документа
Просмотр входящих и
отправленных документов
Добавление нового
документа
Работа с данными
профиля
Ввод данных
Просмотр
обновленных данных
Добавление
комментария
Изменение статуса
Рисунок 21 – Сценарий диалога
Началом диалога является запрос логина и пароля пользователя для доступа в
систему. После успешного прохождения авторизации пользователю предлагается
выбрать задачу, которую он собирается решить: работа со справочниками, работа с
документами, работа с данными профиля пользователя. В зависимости от выбора
пользователя ему открываются различные формы пользовательского интерфейса,
предназначенные для решения выбранной задачи.
2.3.2. Характеристика базы данных
В качестве системы управления базой данный для разрабатываемой
информационной системы была выбрана СУБД MySQL.
Для хранения всех необходимых данных была спроектирована и создана база
данных, состоящая из 12 таблиц. ER-модель спроектированной базы данных
представлена на рисунке 22.
71
Рисунок 22 ER-модель базы данных
Описание все таблиц базы данных представлены в таблицах 9-20.
Таблица 9
Таблица users
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код пользователя
id
int
4
AI
ФИО пользователя
fio
varchar
120
Логин пользователя
login
varchar
120
Код отдела
пользователя
departmentid
integer
4
Код должности
пользователя
staffid
integer
4
Пароль
пользователя (в
зашифрованном
виде)
password
varchar
120
Email пользователя
email
varchar
120
User
id
fio
login
password
email
departmentid (FK)
staffid (FK)
Users_role
roleid (FK)
userid (FK)
Role
id
caption
Department
id
caption
Document
id
caption
description
authorid (FK)
recipientid (FK)
statusid (FK)
createdAt
deadline
typeid (FK)
Comment
id
commentext
createdat
authorid (FK)
documentid (FK)
Status
id
caption
UploadFile
id
createdat
pathfile
docid (FK)
TypeDoc
id
caption
Staff
id
caption
Departments_types
typeid (FK)
staffid (FK)
Staffs_types
typeid (FK)
staffid (FK)
72
Таблица 10
Таблица user_roles
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код пользователя
userid
int
4
Код роли
roleid
int
4
Таблица 11
Таблица role
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код роли
id
int
4
AI
Наименование роли
caption
varchar
120
Таблица 12
Таблица department
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код отдела
id
int
4
AI
Наименование
отдела
caption
varchar
120
Таблица 13
Таблица staff
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код должности
id
int
4
AI
Наименование
должности
caption
varchar
120
Таблица 14
Таблица status
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код статуса
id
int
4
AI
Наименование
статуса
caption
varchar
120
Таблица 15
Таблица typedoc
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код типа документа
id
int
4
AI
Наименование типа
документа
caption
varchar
120
73
Таблица 16
Таблица department_types
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код типа
typeid
int
4
Код отдела
departmentid
int
4
Таблица 17
Таблица staff_types
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код типа
typeid
int
4
Код должности
staffid
int
4
Таблица 18
Таблица document
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код документа
id
int
4
AI
Наименование
документа
caption
varchar
255
Описание
документа
description
longtext
255
NULL
Код пользователя-
автора документа
authorid
int
4
Код пользователя,
принявшего
документа
recipientid
int
4
Код статуса
statusid
int
4
Дата создания
createdat
datetime
10
Срок
deadline
datetime
10
Код типа
typeid
int
4
Таблица 19
Таблица uploadfile
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код файла
id
int
4
AI
Дата загрузки
createdat
datetime
10
Путь к файлу
pathfile
varchar
255
Код документа
docid
int
4
Код пользователя-
автора
authorid
int
4
74
Таблица 20
Таблица comment
Наименование
поля
Идентификатор
поля
Тип поля
Длина
поля
Прочее
Код комментария
id
int
4
AI
Текст комментария
commenttext
longtext
65655
Дата отправки
комментария
createdat
datetime
10
Код пользователя-
автора
authorid
int
4
Код документа
documentid
int
4
2.3.3. Структурная схема пакета
Популярность языка php обусловила появление большого числа фреймворков,
основанных на нем. Фреймворк – программная платформа, определяющая структуру
программной системы; программное обеспечение, облегчающее разработку и
объединение разных компонентов большого программного проекта.
Для написания информационной системы автоматизации документооборота
использовался фреймворк языка php Symfony 2. Данный фреймворк работает с
подходом к программированию, называемый Model-view-controller (MVC, «модель-
представление-контроллер», «модель-вид-контроллер»).
Основная идея данного подхода заключается в разделении данных, их
представлений и обработку действий пользователей на три больших группы:
Модель (англ. Model). Модель предоставляет знания: данные и методы
работы с этими данными, реагирует на запросы, изменяя своё состояние. Объекты
данной группы не содержат информации, как эти знания можно визуализировать.
Представление, вид (англ. View). Отвечает за отображение информации
(визуализацию). Часто в качестве представления выступает форма (окно) с
графическими элементами. Главная задача – представить информацию, хранимой в
модели в виде, воспринимаемым пользователем.
Контроллер (англ. Controller). Обеспечивает связь между пользователем и
системой: контролирует ввод данных пользователем и использует модель и
представление для реализации необходимой реакции.
Важно отметить, что как представление, так и контроллер зависят от модели.
Однако модель не зависит ни от представления, ни от контроллера. Тем самым
75
достигается назначение такого разделения: оно позволяет строить модель независимо
от визуального представления, а также создавать несколько различных представлений
для одной модели.
Общая схема архитектуры информационной системы согласно данной
парадигмы изображена на рисунке 23.
MODEL (Модель)
VIEW
(Представление)
CONTROLLER
(Контролер)
USER
Отображение
Воздействие
Управление
Обновления
Рисунок 23 – Архитектура ИС (Model-view-controller)
Список разработанных программных модулей и их назначений представлен в
таблице 21.
Таблица 21
Программные модули
Номер
Название
Описание
1
routing.yml
Файл с настройками маршрутов для
маршрутизатора Symfony 2
2
DefaultContoller.php
Класс контроллера, обрабатывающий
маршрут главной страницы информационной
системы
3
DepartmentController.php
Класс контроллера, содержащий методы для
отображения данных и форм об отделах
компании, обработки отправленных форм
4
DocController.php
Класс контроллера, содержащий методы для
отображения данных и форм работы с
документами, комментариями и файлами к
ним, обработки отправленных форм
5
StaffController
Класс контроллера, содержащий методы для
отображения данных и форм о должностях
компании, обработки отправленных форм
6
TypeDocController.php
Класс контроллера, содержащий методы для
отображения данных и форм о типах
документов, обработки отправленных форм
7
SecurityController.php
Класс контроллера, содержащий методы и
функции, необходимые для реализации
функций авторизации, выхода из сайта,
управления профилем пользователя
76
8
UsersController.php
Класс контроллера, содержащий методы для
отображения данных и форм о
пользователях, обработки отправленных
форм
9
User.php
Класс модели, содержащий атрибуты и
методы для работы с объектом пользователя
10
Department.php
Класс модели, содержащий атрибуты и
методы для работы с объектом отдела
11
Doc.php
Класс модели, содержащий атрибуты и
методы для работы с документом
12
Comment.php
Класс модели, содержащий атрибуты и
методы для работы с объектом комментария
к документу
13
Status.php
Класс модели, содержащий атрибуты и
методы для работы с объектом статуса
документа
14
Role.php
Класс модели, содержащий атрибуты и
методы для работы с объектом роли
пользователя
15
TypeDoc.php
Класс модели, содержащий атрибуты и
методы для работы с типом документа
16
Staff.php
Класс модели, содержащий атрибуты и
методы для работы с должностью
17
DepartmentFormType.php
Класс формы управления данными отдела
18
LoginFormType.php
Класс формы авторизации
19
DocFormType.php
Класс формы управления данными документа
20
CommentFormType
Класс формы отправки комментария
21
DocFilterFormType.php
Класс формы для реализации фильтра в
списке документов
22
StatusFormType.php
Класс формы управления данными статусов
документов
23
StaffFormType.php
Класс формы управления данными
должности
24
TypeDocFormType.php
Класс формы для управления данными типа
документа
25
ProfileFormType.php
Класс формы для реализации работы с
профилем пользователя
26
UserFormType.php
Класс формы для реализации работы с
данными пользователя
27
UserFilterType.php
Класс формы для реализации фильтра в
списке пользователей
2.3.4. Описание программных модулей
Каждый контролер обрабатывает запросы, отправляемые по соответствующему
маршруту. Описание того, какой контроллер должен обрабатывать тот или иной
маршрут оформляется в виде отдельного файла: routing.yml.
Пример записи (главная страница ИС):
index:
77
path: /
defaults: { _controller: "AppBundle:DefaultController:Index" }
Такая запись означает следующее:
первая строка – название маршрута (index);
вторая строка – путь, или URL-адрес маршрута (/);
третья строка – имя класса контроллера, который должен обрабатывать
маршрут, а также метод этого контроллера, ответственный именно за этот маршрут;
Обработка маршрута выполняется в контроллере DefaultController.php. При
переходе по маршруту (отправке запроса на url /) начинает свою работу метод
IndexAction. Данный метод проверяет наличие у пользователя открытой сессии
авторизации, и если такой нет, то перенаправляет пользователя на форму авторизации
(маршрут /login, Контроллер SecurityController.php).
Для обработки шаблонов и формирования на их основе html-страниц,
отображаемых пользователю, используется распространенный шаблонизатор twig.
Twigкомпилирующий обработчик шаблонов с открытым исходным кодом,
написанный на языке программирования PHP. Синтаксис, поддерживаемый
шаблонизатором позволяет использовать в шаблонах ветвления, циклы, а удобная
структура кода позволяет значительно сократить итоговый объем программного кода.
Также стоит отметить, что шаблонизатор генерирует на основе своих шаблонов чистый
php-код, который обрабатывается значительно быстрее.
При переадресации на маршрут открытия формы (/login), срабатывает метод
loginAction контроллера SecurityController.php. Он создает экземпляр формы
LoginFormType.php и обрабатывает её отправку. На рисунке 24 приведен алгоритм
работы данного метода.
78
Начало
Создание экземпляра класса
LoginFormType
Проверка наличия у посетителя
активной сессии авторизации
Переадресация на
главную страницу
раздела
Документы
(маршрут
documents)
Сессия имеется
Сессии не имеется
Переадресация на главную страницу
раздела Документы (маршрут
documents)
Конец
Форма была отправлена?
Да
Отправка запроса к модели
данных на выборку
информации о пользователе,
чей логин совпадает с
введенным
Создание сессии авторизации
Создание представления на
основе шаблона
login.html.twig
Отображение страницы
авторизации пользователю
НЕТ
Пароль верный?
ДА
НЕТ
Отображение сообщения
об ошибке
Рисунок 24 – Алгоритм работы метода loginAction
После успешного прохождения авторизации, пользователю отображается
страница со списком документов. Данную страницу формирует метод indexAction
контроллера DocController.php на основании шаблона Documents:index.html.twig.
Методы остальных контроллеров работают аналогичным образом.
Исходный код программных модулей приведен в приложении 2.
2.4. Контрольный пример реализации проекта и его описание
При открытии страницы сайта открывается форма авторизации (Рисунок 25).
79
Рисунок 25 – Форма авторизации
После прохождения авторизации открывается раздел работы с документами. В
данном разделе отображаются все документы, к которым имеет отношение
пользователь. Над списком документом отображается форма для поиска и фильтрации
документов (Рисунок 26).
Рисунок 26 – Раздел работы с документами
При нажатии на кнопку создания нового документа отображается
соответствующая форма (Рисунок 27).

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран