На основе индивидуального задания произвести разработку бизнес-логики бэкэнда entriprise-системы.
В ходе реализации необходимо использовать возможности современных версий языка Java:
- Pattern matching для switch
- строковые шаблоны))))))))))))))
- расширенные возможности стандартной библиотеки Java
- sealed классы и record
- программирование в функциональном стиле
- preview как project Valhalla, structured concurrency...
- и т.д.
- Использование системы сборки Gradle
- Код должен быть отлажен и протестирован
Бизнес-логика для системы управления проектами. Система позволяет группе разработчиков управлять разработкой программных проектов. В ней определены следующие объекты:
- Проект. У каждого проекта есть определенная команда разработчиков, тестировщиков и один менеджер. Также к проекту может быть привязан тимлидер. У проекта определены различные майлстоуны. К каждому проекту могут быть привязаны сообщения об ошибках.
- Майлстоун. Одна из итераций цикла разработки проекта. Привязан к определенным датам. К майлстоунам привязаны определенные тикеты (задания). Майлстоун имеет определенный статус: открыт, активен или закрыт. Майлстоун может быть закрыт только когда все его тикеты выполнены. В каждый момент времени у проекта может быть только один майлстоун.
- Тикет. Определенное задание для разработчиков. Может быть выдано определенной группе разработчиков. Привязан к определенному проекту и майлстоуну. Имеет статус: новый, принятый, в процессе выполнения, выполнен.
- Сообщение об ошибке. Отчет о найденной ошибке в проекте. Привязан к определенному проекту. Имеет статус: новый, исправленный, протестированный, закрытый.
В системе определены следующие роли для пользователей:
- менеджер;
- тимлидер;
- разработчик;
- тестировщик. Для каждого проекта у пользователя определена своя роль (если он участвует в разработке данного проекта).
У всех пользователей системы есть возможность:
- зарегистрироваться;
- просмотреть все проекты в которых они участвуют;
- посмотреть список заданий, который был им выдан;
- посмотреть список отчетов об ошибках, которые ему надо исправить;
- создать новый проект.
Функции менеджера проекта:
- Управление пользователями:
- назначение тимлидера
- добавление разработчика к проекту
- добавление тестировщика к проекту
- Управление майлстоунами:
- создание нового майлстоуна
- изменение статуса майлстоуна
- Управление тикетами
- создание нового тикета
- привязка разработчика к тикету
- проверка выполнения тикета
Функции тимлидера:
- Управление тикетами
- создание нового тикета
- привязка разработчика к тикету
- проверка выполнения тикета
- Выполнение тикетов
Функции разработчика:
- Выполнение тикетов
- Создание сообщений об ошибках
- Исправление сообщений об ошибках
Функции тестировщика:
- Тестирование проекта
- Создание сообщений об ошибках
- Проверка исправления сообщений об ошибках