Тестовое задание для компании Egartech

Maintainability

Описание

Программа(компонент) для поиска конкретного документа (или списка документов) по имеющимся данным - по названию, номеру, дате или типу. Заранее реализован список базовых документов для демонстрации возможностей программы.

Реализовано

  • Создание сущности документа и полный цикл CRUD-операций для сущности
  • Добавлена фильтрация по параметрам - названию, номеру, типу или дате создания
  • Добавлена проверка на уникальность значений(уникальное поле title) - создание или изменения док-та невозможно, если существует другой документ с таким title
  • Программа имеет графический веб-интерфейс и две страницы - основная с отображением списка всех добавленных док-ов и страница добавления/редактирования док-та
  • Для хранения информации по документам используется внутренняя база данных H2, но также я привел код для подключения PostgreSQL(он закоментирован в .properties-файле - добавьте свои значения)
  • Реализованы тесты для контроллеров
  • Реализован общий обработчик ошибок
  • Для простоты и наглядности поля author и type реализованы, как строки, а не как объекты

Использующиеся технологии

  • Фреймворк: Spring Boot
  • Соедение и работа с БД Spring Data JPA
  • Автоматический маппинг: Mapstruct
  • Шаблон проектирования: DTO
  • Автоматическое наполнение данными Datafaker
  • Тесты: JUnit 5, Mockito,
  • Отчет о тестах: Jacoco
  • Базы данных: H2 | PostgreSQL

Использование локально

В терминале:
git clone git@github.com:DEGTEVUWU/testTaskForEgartech.git
cd testTaskForEgartech
make spring
В браузере:
localhost:8080

Вид приложения

img.png img_1.png