From 5f6933dbe1fac7822965feb51d0a3cfd0b0d340e Mon Sep 17 00:00:00 2001
From: sergeyzelentsov <_sharapov_@mail.ru>
Date: Sun, 14 Jun 2026 09:11:24 +0300
Subject: [PATCH 1/7] Task 1 and 2
---
.gitignore | 2 +
README.md | 48 +++++++++++++++++++
resources/view/login.html | 8 ----
resources/view/unauth/register.html | 8 ----
.../handler/VkOAuth2UserDataHandler.java | 35 --------------
.../handler/YandexOAuth2UserDataHandler.java | 21 --------
src/main/resources/application.yaml | 24 ----------
7 files changed, 50 insertions(+), 96 deletions(-)
delete mode 100644 src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java
delete mode 100644 src/main/java/com/javarush/jira/login/internal/sociallogin/handler/YandexOAuth2UserDataHandler.java
diff --git a/.gitignore b/.gitignore
index cd38e2e7b..78f7b0ccf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,5 @@ attachments
*.patch
+pgdata/
+pgdata-test/
diff --git a/README.md b/README.md
index 719b268f5..a4f7b3ef5 100644
--- a/README.md
+++ b/README.md
@@ -27,4 +27,52 @@
- https://habr.com/ru/articles/259055/
Список выполненных задач:
+## Команды запуска
+```bash
+docker run -p 5432:5432 --name postgres-db -e POSTGRES_USER=jira -e POSTGRES_PASSWORD=JiraRush -e POSTGRES_DB=jira -e PGDATA=/var/lib/postgresql/data/pgdata -v $(pwd)/pgdata:/var/lib/postgresql/data -d postgres
+```
+```bash
+docker run -p 5433:5432 --name postgres-db-test -e POSTGRES_USER=jira -e POSTGRES_PASSWORD=JiraRush -e POSTGRES_DB=jira-test -e PGDATA=/var/lib/postgresql/data/pgdata -v $(pwd)/pgdata-test:/var/lib/postgresql/data -d postgres
+```
+
+1. Разобраться со структурой проекта (onboarding).✅
+
+2. Удалить социальные сети: vk, yandex. `Easy task`✅
+
+3. Вынести чувствительную информацию в отдельный проперти файл:
+ - логин
+ - пароль БД
+ - идентификаторы для OAuth регистрации/авторизации
+ - настройки почты
+
+ Значения этих проперти должны считываться при старте сервера из переменных окружения машины. `Easy task`
+
+4. Переделать тесты так, чтоб во время тестов использовалась **in memory БД (H2)**, а не PostgreSQL. Для этого нужно определить 2 бина, и выборка какой из них использовать должно определяться активным профилем Spring. H2 не поддерживает все фичи, которые есть у PostgreSQL, поэтому тебе прийдется немного упростить скрипты с тестовыми данными.
+
+5. Написать тесты для всех публичных методов контроллера `ProfileRestController`. Хоть методов только 2, но тестовых методов должно быть больше, т.к. нужно проверить success and unsuccess path.
+
+6. Сделать рефакторинг метода `com.javarush.jira.bugtracking.attachment.FileUtil#upload` чтоб он использовал современный подход для работы с файловой системмой. `Easy task`
+
+7. Добавить новый функционал: добавления тегов к задаче (REST API + реализация на сервисе). Фронт делать необязательно. Таблица `task_tag` уже создана.
+
+8. Добавить подсчет времени сколько задача находилась в работе и тестировании. Написать 2 метода на уровне сервиса, которые параметром принимают задачу и возвращают затраченное время:
+ - Сколько задача находилась в работе (ready_for_review минус in_progress).
+ - Сколько задача находилась на тестировании (done минус ready_for_review).
+
+ Для написания этого задания, нужно добавить в конец скрипта инициализации базы данных `changelog.sql` **3 записи** в таблицу `ACTIVITY`:
+ ```
+ insert into ACTIVITY ( ID, AUTHOR_ID, TASK_ID, UPDATED, STATUS_CODE ) values ...
+ ```
+Со статусами:
+- время начала работы над задачей – **in_progress**
+- время окончания разработки - **ready_for_review**
+- время конца тестирования - **done**
+
+9. Написать `Dockerfile` для основного сервера
+
+10. Написать `docker-compose` файл для запуска контейнера сервера вместе с БД и [nginx](https://nginx.org/ru/docs/). Для nginx используй конфиг-файл `config/nginx.conf`. При необходимости файл конфига можно редактировать. `Hard task`
+
+11. Добавить локализацию минимум на двух языках для шаблонов писем (mails) и стартовой страницы `index.html`.
+
+12. Переделать механизм распознавания «свой-чужой» между фронтом и беком с `JSESSIONID` на `JWT`. Из сложностей – тебе придётся переделать отправку форм с фронта, чтоб добавлять хедер аутентификации. `Extra-hard task`
...
\ No newline at end of file
diff --git a/resources/view/login.html b/resources/view/login.html
index 8765ca8ff..d49ce5691 100644
--- a/resources/view/login.html
+++ b/resources/view/login.html
@@ -48,14 +48,6 @@
Sign in
type="button">
-
-
-
-
-
-
diff --git a/resources/view/unauth/register.html b/resources/view/unauth/register.html
index 2ba955045..52a892bd3 100644
--- a/resources/view/unauth/register.html
+++ b/resources/view/unauth/register.html
@@ -77,14 +77,6 @@ Registration
type="button">
-
-
-
-
-
-
diff --git a/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java b/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java
deleted file mode 100644
index e8e05be05..000000000
--- a/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.javarush.jira.login.internal.sociallogin.handler;
-
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-@Component("vk")
-public class VkOAuth2UserDataHandler implements OAuth2UserDataHandler {
- @Override
- public String getFirstName(OAuth2UserData oAuth2UserData) {
- return getAttribute(oAuth2UserData, "first_name");
- }
-
- @Override
- public String getLastName(OAuth2UserData oAuth2UserData) {
- return getAttribute(oAuth2UserData, "last_name");
- }
-
- @Override
- public String getEmail(OAuth2UserData oAuth2UserData) {
- return oAuth2UserData.getData("email");
- }
-
- private String getAttribute(OAuth2UserData oAuth2UserData, String name) {
- List