Требования

Обязательные: Многомодульный maven проект(3-level three-module development architecture) Система контроля версий - Git(Тестовый проект должен быть залит на GitHub и должен быть предоставлен к нему публичный доступ).

Технологии:

1 Java 11

2 Log4j2 как система логирования

3 Spring Boot 2(или Tomcat 9 + Spring 5)

4 Hibernate 5

5 MySQL 8

Опционально:

Использование Docker и Docker Compose для контейнеризации проекта

Unit и Integration тесты на приложение

Использование Liquibase/Flyway для миграции базы данных

API

Требования:

Формат: JSON

Архитектурный стиль: REST

Endpoint для добавления пользователя:

Основные поля:

Фамилия(40 символов, только латинские буквы)

Имя(20 символов, только латинские буквы)

Отчество(40 символов, только латинские буквы)

Email(50 символов, стандартный шаблон)

Role(Administrator, Sale User, Customer User, Secure API User)

Endpoint для получения всех пользователей:

Основные поля:

ФИО

Email

Role

Записи должны быть отсортированы по email в алфавитном порядке.

Опционально:

Обработка ошибок

Постраничный вывод записей по 10 для получения пользователя