Skip to content

ArtemBurlachkov/project-final

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Концепция:

  url: jdbc:postgresql://localhost:5432/jira
  username: jira
  password: JiraRush
  • Есть 2 общие таблицы, на которых не fk
    • Reference - справочник. Связь делаем по code (по id нельзя, тк id привязано к окружению-конкретной базе)
    • UserBelong - привязка юзеров с типом (owner, lead, ...) к объекту (таска, проект, спринт, ...). FK вручную будем проверять

Аналоги

Тестирование

Список выполненных задач:

Задача 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. Для nginx используй конфиг-файл config/nginx.conf. При необходимости файл конфига можно редактировать. Hard task

Запуск приложения через Docker

  1. Клонировать себе на машину проект
  2. Убедиться, что свободны следующие порты:
    • 80 - Nginx
    • 8080 - Java - приложение
    • 5050 - pgAdmin
    • 5432 - PostgreSQL
  3. Выполнить команду в консоли docker-compose up
  4. Дождаться билда приложения (1-3 минуты) и запуска всех контейнеров
  5. Открыть приложение в браузере по адресу 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
  • Выполнено

Задача 11

Добавить локализацию минимум на двух языках для шаблонов писем (mails) и стартовой страницы index.html.
  • Выполнено

Задача 12

Переделать механизм распознавания «свой-чужой» между фронтом и беком с JSESSIONID на JWT. Из сложностей – тебе придётся переделать отправку форм с фронта, чтоб добавлять хедер аутентификации. Extra-hard task
  • В процессе

About

JavaRush University final project template

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 65.3%
  • HTML 18.4%
  • JavaScript 11.1%
  • CSS 5.1%
  • Dockerfile 0.1%