Для допуска к работе сотрудникам занятым на участках с повышенной опасностью необходимо иметь квалификационное удостоверение.
В настоящее время контроль сроков действия квалификационных удостоверений сотрудников происходит вручную. В этом случае играет роль человеческий фактор и поэтому некоторых сотрудников могут не успеть оповестить, и они не получат допуск к работе.
Наша задача – создать приложение, которое будет отслеживать сроки действия квалификационных удостоверений сотрудников и информировать их, в случае если срок действия истекает через 1 или 3 месяца.
Требования к разрабатываемой системе
- Защищенная авторизация пользователя
- Возможность загружать документы
- Возможность скачивать документы
- Автоматическая отправка оповещения на электронную почту сотрудника
- Создание отчётных форм
Для реализации приложения необходимо выбрать ту СУБД, которая больше всего подойдет под поставленные задачи.
1. MySQL – Это база данных с реляционной структурой. Данная СУБД находится в открытом доступе и имеет открытый код, что позволяет убедиться в отсутствие уязвимостей и так же имеется возможность его совершенствования. Реляционная структура – означает, что можно при создании таблиц установить связи с другими совпадающими значениями столбцов других таблиц [4].
Благодаря данной системе упрощается взаимодействие с другими таблицами в одной базе.
MySQL легкая в установке и простая в использовании, но в некоторых случаях может замедлять работу сайта и увеличивать время обращения к файлам. Подходит для структурных и табличных данных и имеется во многих фреймворках что делает её наиболее распространенной. Подойдет для задач, где нет больших объёмов данных со множеством пользователей так как пропускная скорость ограничен. Так же из минусов можно выделить сложность изменения структуры базы данных из-за множества связей в таблице. К тому же имеется возможность испортить таблицы при неправильном завершении обращения к таблице на программном уровне.
Достоинства:
- Простота установке и использовании. MySQL имеет достаточно много плагинов и вспомогательных приложений что упрощает работу с базами данных.
- Масштабируемость. Являясь весьма универсальной СУБД, MySQL может быть гибко использована в различных проектах.
- Скорость. Высокая скорость обработки запросов.
Недостатки:
- Недостаточная надежность. В вопросах надежности некоторых процессов по работе с данными. MySQL уступает некоторым другим СУБД.
- Редкие обновления.
Выбор не пал на данное СУБД, потому что, если данный web-сервис разрастётся, и заполнится множеством сотрудников, и другой различной информацией то будет заметно увеличенное время задержки и отклика web-приложения.
2. MangoDB. Так же как довольно хорошая альтернатива для массивных данных возможно база данных по принципу NoSQL. У неё имеется огромная пропускная способность, которая будет ограниченна только скоростью интернет-соединения. Имеется легкая установка и работа с ней.[5]
Главные особенности MangoDB:
- Это база данных с открытым кодом, ориентированная на документооборот.
- Нет зависимости как в реляционных базах, что позволяет её гибко использовать. Данные хранятся в виде коллекций и документов.
- Между коллекциями нет сложных соединений типа JOIN, как между таблицами реляционных БД.
А из минусов на фоне весомых плюсов для этой работы выделяются:
- Нет простых операций, а также при добавлении множества зависимых данных появится сложность в обработке данных, которую можно будет решить только в самом коде СУБД.
MangoDB не будет решением для разрабатываемого сайта, из-за того, что при наличии множества таблиц, необходимо будет постоянно связывать данные на программном уровне, и что затруднит дополнение таблиц в будущем.
3. Redis. Обычная эта система используется как кеш, для другой менее быстрой СУБД. Редко используется в качестве самостоятельно СУБД, без дополнений других баз данных.
Работает в памяти, очень быстрая, умеет сохранять данные на диске, причем, не перезаписывая всю таблицу, а только необходимые поля.[6]
Из минусов можно выделить следующее:
- Из-за работы в памяти ОЗУ, ограничивается размер разрабатываемой базы. Большие затраты для хранения больших баз данных.
- Слабая защита информации.
4. Microsoft SQL сервер. Это система управления базами данных, которая находится в облачном сервисе, а также на локальных серверах. Присутствует возможность использовать сразу два вида хранения данных. При этом существуют значительные минусы данной базы данных.
- Большая цена для юридических лиц, что для многих предпринимателей будет слишком высока.
- Любит занимать всю свободную память, даже при менеджменте свободного места и оптимизации.
- Проблемы с интеграцией файлов.
Исходя из недостатка в большой цене, выходит неприемлемой для нашего предприятия, так как есть довольно хорошие альтернативы.
5. PostgreSQL. Как альтернативу можно использовать PostgreSQL. Эта база обладает довольно хорошей защищённостью, имеются структурированные данные, которые имеют небольшую гибкость, и так же при помощи сторонних библиотек можно с легкостью увеличивать таблицы. Будучи основанным на мощной технологии Postgres отлично справляется с большими объёмами данных [7].
Достоинства:
- Полная SQL-совместимость.
- Сообщество: PostgreSQL поддерживается опытным сообществом.
- Объектно-ориентированность: PostgreSQL – не только реляционная, но и объектно-ориентированная СУБД.
Недостатки:
- Производительность: В простых операциях чтения PostgreSQL может уступать своим соперникам.
- Популярность: из-за своей сложности инструмент не очень популярен.
- Хостинг: из-за вышеперечисленных факторов проблематично найти подходящего провайдера.
Особенности PostgreSQL:
- Целостность данных: если приоритет стоит на надёжность и целостность данных, PostgreSQL – лучший выбор.
- Сложные процедуры: если ваша БД должна выполнять сложные процедуры, стоит выбрать PostgreSQL в силу её расширяемости.
- Интеграция: если в будущем вам предстоит перемещать всю базу на другое решение, меньше всего проблем возникнет с PostgreSQL.
В результате сравнения систем управлений баз данных остановили свой выбор на PostgreSQL. Данная СУБД хорошо подходит под поставленные задачи.
Также для того, чтобы разделить структуру сайта и удобно использовать эти данные, а в будущем модифицировать и дорабатывать это приложение, в том числе дизайн и функционал выбран язык PHP.
Из плюсов использования PHP можно так же выделить то, что этот язык является кроссплатформенным, т.е. может быть запущен на любой операционной системе. Имеет довольно хорошую производительность и непрерывно совершенствуется для избавления от недостатков. Так же для доступа к свойствам и методам используется разный синтаксис, но невозможно это записать в плюс или в минус. Из его недостатков можно выделить только некоторые проблемы в безопасности. Они исходят из-за его небывалой популярности в разработке сайтов. Уязвимости находят быстрее чем разработчики успевают их устранить.
Как альтернативу PHP можно использовать язык сверх высокого уровня программирования Ruby. Его основные преимущества это:
- Простой и понятный синтаксис.
- Простое и понятное подключение к базам данных.
- Легкое и простое сопровождение проектов и встроенный отладчик.
- Многопоточность приложений.
Из его минусов следует выделить:
- Большие затраты процессорного времени, вследствие чего более медленная работа приложения.
- Медленная разработка приложения разработчиками.
- Менее защищённый по сравнению с другими языками.
Благодаря введению данных средств разработки появляется возможность разделения приложения на 2 вида авторизации, таких как:
- Учетная запись сотрудника.
- Администратор приложения.
Эти окна должны различаться функционалом и распределяться по уровню доступа, чтобы пользователь с уровнем доступа “Сотрудник” не мог просматривать и редактировать данные других сотрудников или же вносить изменения в само WEB приложение.
Разработка приложения так же включает в себя отладку и тестирование приложения. В отладку входят:
- Тестирование приложения в различных браузерах.
- Тестирование различных операционных систем и их версий.
- Использование мобильного варианта приложения.
- Поиск уязвимостей способных нарушить работу приложения.
- Поведение приложения при больших нагрузках.
- Поиск уязвимостей нарушения конфиденциальности данных.
- Возможные улучшения приложения.
Для введения приложения в работу необходимо организовать его поддержку с интернетом. Для этого необходимо зарегистрировать домен, или же использовать уже доступные организации средства. Так же после внедрения приложения необходимо еще раз его протестировать.
Итогом данной работы будет создание приложения, которое будет способствовать усовершенствованию существующего рабочего процесса.