Аннотация 2
ВВЕДЕНИЕ 5
1 Анализ предметной области 7
1.1 Описание предметной области 7
1.2 Концептуальная модель предметной области 8
1.3 Обзор существующих решений 10
2 Техническая часть 16
2.1 Функциональные и нефункциональные требования 16
2.2 Диаграммы вариантов использования 19
2.3 Сценарии вариантов использования 23
2.4 Архитектура системы 26
3 Программная реализация 31
3.1 Создание серверной части 31
3.2 Тестирование серверной части 43
ЗАКЛЮЧЕНИЕ 54
ЛИТЕРАТУРА 56
Актуальность. Актуальность данной работы обусловлена необходимостью эффективного управления задачами в современных условиях. С увеличением объемов информации и ростом количества различных проектов, организации сталкиваются с проблемой отслеживания и управления задачами. Существующие решения нередко не удовлетворяют таким требованиям, как масштабируемость, безопасность и удобство использования [1]. С увеличением тенденции перехода на удаленный формат работы, необходимость в надежных и гибких системах управления задачами становится особенно актуальной.
Кроме того, с учетом введения большого количества санкций в 2022 году в отношении Российской Федерации, страна стала придерживаться курса импортозамещения [2]. Это активизировало проблему разработки отечественного программного обеспечения, которое могло бы заменить импортные аналоги. В сфере информационных услуг существует ограниченное число российского программного обеспечения в виде приложения для управления задачами, что делает разработку такой системы особенно актуальной.
Таким образом, создание собственной специализированной системы для управления задачами становится необходимым. Такое приложение будет способствовать повышению качества управления проектами и обеспечивать более гибкий и настраиваемый подход к управлению поставленными задачами и отслеживанию прогресса у участников системы.
Цель работы. Целью данной работы является разработка серверной части системы управления задачами, которая обеспечивает создание, редактирование, просмотр и удаление задач, а также управление пользователями и их ролями.
Задачи работы. Для достижения поставленной цели необходимо выполнить следующие задачи:
а) изучить предметную область и проанализировать существующие решения, выделить их преимущества и недостатки;
б) описать требования к разрабатываемому приложению и спроектировать архитектуру приложения;
в) разработать серверную часть приложения, используя выбранные технологии и инструменты;
д) провести тестирование разработанного приложения и проверить его работоспособность.
В результате выполнения выпускной квалификационной работы успешно разработана серверная часть системы управления задачами, которая предоставляет полноценный REST API для работы с задачами и комментариями. Полученное решение полностью соответствует поставленным функциональным и нефункциональным требованиям.
Основные результаты, полученные в работе, заключаются
полноценной системе аутентификации и авторизации на основе JWT- токенов, CRUD-операциях для управления задачами с гибкой системой разграничения прав доступа, возможности комментирования задач авторизованными пользователями, а также расширенной фильтрация задач по статусу, приоритету, автору и исполнителю.
Ключевые технологические решения, заключающиеся в применении современного стека технологий (Java 17 + Spring Boot 3.2.0), реализации REST API с четким разделением слоев приложения (controller-service- repository), автоматической генерацией документации API с использованием Swagger UI обеспечили разработанной системе целый ряд преимуществ.
К преимуществам относятся поддержка развертывания на российских серверах, что обеспечивает соблюдение требований к локализации данных, а также гибкая и масштабируемая архитектура, позволяющая адаптировать систему под различные нагрузки. Открытая кодовая база (open-source решение) повышает безопасность и прозрачность решения. Возможность интеграции с фронтенд-приложениями, независимо от используемого стека технологий, позволяет адаптировать систему под конкретные нужды.
Разработанная система представляет собой готовое к внедрению решение. К возможным сферам использования можно отнести государственные организации, требующие соблюдение требований к локализации данных, образовательные учреждения для автоматизации управления учебными процессами, а также коммерческие компании в качестве инструмента для управления задачами и проектами.
Проведенные тесты подтвердили соответствие системы всем заявленным функциональным и нефункциональным требованиям. Использование современных технологий (Java 17, Spring Boot 3) обеспечило высокую производительность, безопасность и удобство дальнейшего сопровождения и развития системы.
Исходный код проекта доступен в открытом репозитории GitHub:
https://github.com/DenKhomyakov/JaTaskFlow