Code Monkey home page Code Monkey logo

reminder's Introduction

Reminder

В этом документе изложены требования к испытательной задаче для позиции разработчика 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.

Описание приложения

Приложение для напоминания позволяет пользователям:

  • Создание: Создание новых напоминаний с заголовком, описанием, датой и временем.
  • Удалить: Удалить ранее созданные напоминания.
  • РЕДАКТИРОВАТЬ: Измените существующие напоминания.
  • Поиск: Поиск напоминаний на основе имени, описания, даты или времени.
  • Сортировка: Сортировать список напоминаний по имени, дате или времени.
  • Фильтр: Напоминания о фильтре на основе даты или времени.
  • Парень: Покажите напоминания с страницей.
  • Уведомления: Отправить уведомления по электронной почте и телеграмме при достижении даты и времени напоминания.Настройки уведомления должны быть настраиваются в профиле пользователя.

Entity

У объекта напоминания есть следующие атрибуты:

Атрибут Тип данных Описание
Id Bigint Уникальный идентификатор
Название Varchar (255) Краткое описание
Описание Varchar (4096) Полное описание
Напомнить DateTime Дата и время напоминания
User_id Bigint Пользовательский идентификатор (привязан к пользовательской таблице)

ПРИМЕЧАНИЕ: Каскадные отношения должны быть настроены при миграциях.

конечные точки API

  • Создать новое напоминание: 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.

Мы с нетерпением ждем возможности просмотреть ваше представление!

reminder's People

Contributors

petrovich-a avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.