- Spring Modulith
url: jdbc:postgresql://localhost:5432/jira
username: jira
password: JiraRush
- Есть 2 общие таблицы, на которых не fk
- Reference - справочник. Связь делаем по code (по id нельзя, тк id привязано к окружению-конкретной базе)
- UserBelong - привязка юзеров с типом (owner, lead, ...) к объекту (таска, проект, спринт, ...). FK вручную будем проверять
- Выполнено
- Выполнено
Вынести чувствительную информацию в отдельный проперти файл:
- логин
- пароль БД
- идентификаторы для OAuth регистрации/авторизации
- настройки почты
Значения этих проперти должны считываться при старте сервера из переменных окружения машины. Easy task
- Выполнено
Переделать тесты так, чтоб во время тестов использовалась in memory БД (H2), а не PostgreSQL. Для этого нужно определить 2 бина, и выборка какой из них использовать должно определяться активным профилем Spring. H2 не поддерживает все фичи, которые есть у PostgreSQL, поэтому тебе прийдется немного упростить скрипты с тестовыми данными.
- Выполнено
Написать тесты для всех публичных методов контроллера ProfileRestController. Хоть методов только 2, но тестовых методов должно быть больше, т.к. нужно проверить success and unsuccess path.
- Выполнено
Сделать рефакторинг метода com.javarush.jira.bugtracking.attachment.FileUtil#upload чтоб он использовал современный подход для работы с файловой системмой. Easy task
- Выполнено
Добавить новый функционал: добавления тегов к задаче (REST API + реализация на сервисе). Фронт делать необязательно. Таблица task_tag уже создана.
- Выполнено
Добавить подсчет времени сколько задача находилась в работе и тестировании. Написать 2 метода на уровне сервиса, которые параметром принимают задачу и возвращают затраченное время:
- Сколько задача находилась в работе (ready_for_review минус in_progress ).
- Сколько задача находилась на тестировании (done минус ready_for_review).
insert into ACTIVITY ( ID, AUTHOR_ID, TASK_ID, UPDATED, STATUS_CODE ) values ...
Со статусами:
- время начала работы над задачей – in_progress
- время окончания разработки - ready_for_review
- время конца тестирования - done
- Выполнено
- Выполнено
Написать docker-compose файл для запуска контейнера сервера вместе с БД и nginx. Для nginx используй конфиг-файл config/nginx.conf. При необходимости файл конфига можно редактировать. Hard task
- Клонировать себе на машину проект
- Убедиться, что свободны следующие порты:
- 80 - Nginx
- 8080 - Java - приложение
- 5050 - pgAdmin
- 5432 - PostgreSQL
- Выполнить команду в консоли docker-compose up
- Дождаться билда приложения (1-3 минуты) и запуска всех контейнеров
- Открыть приложение в браузере по адресу http://localhost или http://localhost:80
- Доступ к приложению напрямую через порт: 8080 закрыт. Доступ возможен только через nginx порт
- pgAdmin находится по адресу http://localhost:5050
- login: admin@admin.com
- password: root
- Во время запуска приложения произойдет популяция БД для работы. Если точнее – накатится структура и словари. Чтоб «посмотреть» как работает приложение нужно выполнить скрипт data.sql из resources/data4dev.
- При изменении кода необходимо пересобрать приложение командой docker-compose down и docker-compose build
- Выполнено
Добавить локализацию минимум на двух языках для шаблонов писем (mails) и стартовой страницы index.html.
- Выполнено
Переделать механизм распознавания «свой-чужой» между фронтом и беком с JSESSIONID на JWT. Из сложностей – тебе придётся переделать отправку форм с фронта, чтоб добавлять хедер аутентификации. Extra-hard task
- В процессе