В этом документе изложены требования к испытательной задаче для позиции разработчика Java. Задача включает в себя разработку бэкэнд приложения напоминания с использованием Java Spring Boot.
Вы разработаете API Restful для приложения для напоминания, используя следующие технологии:
- Java Spring Boot: Framework для построения приложения.
- Liquibase: для управления схемами базы данных.
- Hibernate: для картирования объекта (ORM).
- Postgresql: Система баз данных.
- YAML: Формат файла конфигурации.
- Spring Security OAuth2: для авторизации пользователя.
- Gradle (или Maven): Инструмент сборки.
- Кварц планировщик: для планирования напоминаний.
- Docker: для контейнеризации.
- Docker Compose: для организации приложения и зависимостей.
Общие требования:
- Функциональные и интеграционные тесты: Все API должны быть покрыты комплексными функциональными и интеграционными тестами.
- Изображение Docker: Приложение должно быть упаковано в изображение Docker для развертывания.
- Docker Compose: Для запуска приложения должен быть предусмотрен файл Docker.
Приложение для напоминания позволяет пользователям:
- Создание: Создание новых напоминаний с заголовком, описанием, датой и временем.
- Удалить: Удалить ранее созданные напоминания.
- РЕДАКТИРОВАТЬ: Измените существующие напоминания.
- Поиск: Поиск напоминаний на основе имени, описания, даты или времени.
- Сортировка: Сортировать список напоминаний по имени, дате или времени.
- Фильтр: Напоминания о фильтре на основе даты или времени.
- Парень: Покажите напоминания с страницей.
- Уведомления: Отправить уведомления по электронной почте и телеграмме при достижении даты и времени напоминания.Настройки уведомления должны быть настраиваются в профиле пользователя.
У объекта напоминания есть следующие атрибуты:
Атрибут | Тип данных | Описание |
---|---|---|
Id | Bigint | Уникальный идентификатор |
Название | Varchar (255) | Краткое описание |
Описание | Varchar (4096) | Полное описание |
Напомнить | DateTime | Дата и время напоминания |
User_id | Bigint | Пользовательский идентификатор (привязан к пользовательской таблице) |
ПРИМЕЧАНИЕ: Каскадные отношения должны быть настроены при миграциях.
- Создать новое напоминание: https - forbidden - domain/api/v1/reminder/create
- Удалить ранее созданное напоминание: https - forbidden - domain/api/v1/reminder/delete
- Сортировать напоминания: https - forbidden - domain/api/v1/sort? By = {name | date | time}
- Напоминания фильтра: https - forbidden - domain/api/v1/filter? {Date | time}
- Получить лицензированный список напоминаний: https - forbidden - domain/api/v1/list? Total = {total} & current = {current}
ПРИМЕЧАНИЕ: Эти конечные точки предоставляются в качестве примеров.Вы должны реализовать необходимую логику для обработки этих запросов.
Пожалуйста, отправьте свое решение в качестве репозитория GIT, содержащего следующее:
- Исходный код для приложения Spring Boot.
- Файлы конфигурации (YAML).
- Dockerfile для построения изображения Docker.
- Docker Compose File для развертывания приложения.
- Тестовый код для всех конечных точек API.
Мы с нетерпением ждем возможности просмотреть ваше представление!