Корпоративный планировщик задач – это удобное web-приложение, которое позволяет использовать данные, независимо от выбранной платформы, и решать такие задачи, как планирование, коммуникации с сотрудниками, отслеживание прогресса, а также, что немаловажно, мобильность.
Главным преимуществом данного планировщика является то, что любой сотрудник, независимо от того, находится ли он непосредственно за рабочим местом в офисе или же в командировке в другом городе, всегда сможет быстро получить всю необходимую информацию, используя компьютер, планшет или мобильное устройство. Корпоративный планировщик оснащен виртуальной доской задач, которая позволит всем сотрудникам получить визуальное представление задания в удобной для себя форме, а также следить за процессом работы, отслеживать прогресс и
количество оставшегося для решения задачи времени. Еще одной особенностью данного приложения является онлайн-чат, в котором сотрудники одного проекта смогут делиться своими результатами, обсудить те или иные вопросы или непосредственно связаться с руководителем проекта.
Использование данного приложения позволит существенно уменьшить количество времени, затрачиваемого на собрания, встречи с сотрудниками, поиск свободных людей, а также поможет в любое время оценить текущий прогресс каждой задачи. Снизится риск возникновения непредвиденных обстоятельств, ведь начальник всегда сможет оценить объём и скорость выполнения задач в удобном визуальном виде.
Безопасности данных уделяется особенное внимание, ведь для любой компании важно сохранить свои задачи и результаты в строгой конфиденциальности. Корпоративный планировщик задач оснащен комплексной системой безопасности, которая не только предотвратит возможность различного рода атак, но и обеспечит безопасное хранение и передачу всех используемых данных.
Целью данной выпускной квалификационной работы является создание такого кроссплатформенного приложения, которое позволит повысить эффективность компаний с помощью качественного планирования процессов, а также грамотного распределения задач между сотрудниками.
В ходе анализа предметной области корпоративного управления, для реализации удобного и эффективного приложения были поставлены следующие задачи:
- продумать и реализовать качественную архитектуру клиентской и серверной части, учитывая специфику приложения;
- реализация real-time чата для коммуникации сотрудников по задачам;
- функционал управления сотрудниками;
- функционал управления проектами в компании;
- функционал управления задачами;
- реализация разделения функционала для разных групп пользователей;
- реализация виртуальной доски задач;
- сделать систему адаптивной и удобной для использования как на ПК, так и на мобильных устройствах;
- реализовать надежный комплекс мер по защите аккаунтов пользователей и секретных данных компании;
1. Проектирование архитектуры приложения............................................... 7
1.1. Клиент-серверная архитектура............................................................. 9
1.2. Протоколы передачи данных.............................................................. 10
1.2.2. WebSocket....................................................................................... 11
1.3. Архитектура сервера........................................................................... 12
1.3.1. Виртуальный сервер Ubuntu 18.04............................................... 12
1.3.2. Фреймворк Laravel......................................................................... 14
1.3.3. Концепция MVC............................................................................. 14
1.3.4. Eloquent ORM................................................................................ 15
1.3.5. Миграции базы данных................................................................. 16
1.3.6. Микросервис WebSocket Laravel echo.......................................... 16
1.4. Архитектура клиентского приложения.............................................. 18
1.4.1. Фреймворк vue.js........................................................................... 18
1.4.2. Single Page Application (SPA)........................................................ 18
1.4.3. Progressive Web Application (PWA).............................................. 19
1.5. Определение структуры базы данных................................................ 21
2. Реализация программной части................................................................ 26
2.2. Двухфакторная аутентификация......................................................... 28
2.3. Управление задачами.......................................................................... 29
2.3.1. Просмотр списка задач.................................................................. 29
2.3.2. Виртуальная доска задач.............................................................. 30
2.3.3 Просмотр выбранной задачи........................................................ 31
2.3.4. Создание задач............................................................................... 32
2.3.5. Редактирование задач.................................................................... 34
2.3.6. Удаление задач............................................................................... 34
2.4. Управление проектами........................................................................ 34
2.4.1. Просмотр списка проектов............................................................ 34
2.4.2. Создание проектов......................................................................... 35
2.4.3. Редактирование проектов.............................................................. 36
2.4.4. Архивирование проектов.............................................................. 37
2.5. Управление пользователями............................................................... 37
2.5.1. Просмотр списка пользователей................................................... 37
2.5.2. Просмотр профиля пользователя................................................. 38
2.5.3. Создание пользователя.................................................................. 39
2.5.4. Архивирование сотрудников........................................................ 41
2.6. Профиль пользователя........................................................................ 41
2.6.1. Изменение аватара......................................................................... 42
2.6.2. Изменение пароля.......................................................................... 43
2.6.3. Настройка двухфакторной аутентификации................................. 43
2.7. Реализация онлайн-чата по задаче..................................................... 46
2.7.1. Загрузка истории сообщений........................................................ 46
2.7.2. Подключение к каналу и получение сообщений.......................... 47
2.7.3. Отправка сообщений..................................................................... 47
3. Безопасность системы................................................................................ 49
3.1. Хеширование паролей bcrypt............................................................. 49
3.2. Защита от SQL инъекций..................................................................... 50
3.3. Защищённое соединение с использованием протокола SSL (TLS).... 50
3.4. Защита от CSRF атак........................................................................... 51
3.5 , Защита от XSS атак............................................................................. 52
ЗАКЛЮЧЕНИЕ............................................................................................. 53
СПИСОК ЛИТЕРАТУРЫ............................................................................. 54
ПРИЛОЖЕНИЕ............................................................................................. 56
1. Масштабирование Web приложений [Электронный ресурс]. – URL: https://dspace.spbu.ru/bitstream/11701/4171/1/st011472.pdf (дата обращения: 13.04.2020).
2. Single Page Application (SPA) и Multi Page Application (MPA): преимущества и недостатки [Электронный ресурс]. – URL: https://merehead.com/ru/blog/single-page-application-vs-multi-page-application/ (дата обращения 19.03.2020).
3. What makes a good Progressive Web App? [Электронный ресурс]. – URL: https://web.dev/pwa-checklist/ (дата обращения 20.03.2020).
4. Laravel - The PHP Framework for Web Artisans [Электронный ресурс]. – URL: https://laravel.com/ (дата обращения 22.03.2020).
5. Vue.js - The Progressive JavaScript Framework [Электронный ресурс]. – URL: https://vuejs.org/ (дата обращения 24.03.2020).
6. Laravel — Функции безопасности [Электронный ресурс]. – URL: https://webformyself.com/laravel-funkcii-bezopasnosti/ (дата обращения 26.03.2020).
7. Википедия. Статья «WebSocket» [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/WebSocket (дата обращения 26.03.2020).
8. AWS. Что такое Docker? [Электронный ресурс]. – URL: https://aws.amazon.com/ru/docker/ (дата обращения 27.03.2020).
9. Википедия. Статья «Laravel» [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/Laravel (дата обращения 28.03.2020).
10. Хабр. MVC для веб: проще некуда [Электронный ресурс]. – URL: https://habr.com/ru/post/181772/ (дата обращения 28.03.2020).
11. Википедия. ORM. [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/ORM (дата обращения 29.03.2020).
12. Laravel по-русски. Миграции. [Электронный ресурс]. – URL: https://laravel.ru/docs/v5/migrations (дата обращения 10.04.2020).
13. Знакомство с Laravel Echo: подробный разбор. [Электронный ресурс]. – URL: https://laravel.ru/posts/655 (дата обращения 11.04.2020).
14. Официальный сайт vue.js. Что такое Vue.js? [Электронный ресурс]. – URL: https://ru.vuejs.org/v2/guide/index.html (дата обращения 12.04.2020).
15. Википедия. Прогрессивное веб-приложение. [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/Прогрессивное_веб-приложение (дата обращения 12.04.2020).
16. Официальный сайт PostgreSQL. [Электронный ресурс]. – URL: https://www.postgresql.org/ (дата обращения 15.04.2020).
17. Википедия. Time-based One-time Password Algorithm [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/Time-based_One- time_Password_Algorithm (дата обращения 20.04.2020).
18. GitHub. Vue.Draggable [Электронный ресурс]. – URL: https://github.com/SortableJS/Vue.Draggable (дата обращения 20.04.2020).
19. GitHub. GoogleAuthenticator [Электронный ресурс]. – URL: https://github.com/sonata-project/GoogleAuthenticator (дата обращения 21.04.2020).
20. Безопасность информационных систем [Электронный ресурс]. – URL: http://ssofta.narod.ru/admis/1.htm (дата обращения 22.04.2020).
21. Википедия. Bcrypt. [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/Bcrypt (дата обращения 24.04.2020).
22. Википедия. Межсайтовая подделка запроса. [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/Межсайтовая_подделка_запроса (дата обращения 26.04.2020).