andrew0149 / UssJuniorTask

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Описание задания

В компании "X" работает некоторое количество людей. Компания приняла решение за свой счет возить людей по их потребности. Компания не хочет пользоваться сторонними сервисами такси, поэтому решила сама закупить автопарк и нанять водителей. Автомобили не закреплены за конкретным водителем. Каждый водитель может водить любую свободную машину. Данные о поездках необходимо хранить и получать эти данные в человекочитаемом виде, чтобы руководитель компании мог понимать текущую ситуацию, следить за водителями и их работой.

Для этого имеется "сервис", который хранится в данном репозитории. Сервис держит в себе информацию о водителях, автомобилях и поездках. Каждая поездка содержит информацию о временном интервале вождения определенным человеком определенного автомобиля.

В проекте реализовано InMemory хранилище данных (без необходимости поднимать БД). Необходимые модели данных уже имеются, имеется интерфейс для доступа к данным. Тестовые данные также имеются.

Необходимо реализовать endpoint, который будет возвращать некоторую коллекцию объектов, содержащих информацию о:

  • Водителе (имя, возраст)
  • Автомобиле (производитель, модель)
  • Сколько времени этот водитель провел за рулем этого автомобиля (дней, часов, минут)

Входные аргументы нужно описать самостоятельно. Известно, что на вход должен приходить желаемый промежуток времени, по которому будет собрана информация. Конкретный вид возвращаемого объекта не регламентирован, но он должен содержать в себе всю нужную информацию.

Существующий код проекта можно изменять. Если вам кажется, что что-то не совсем так, то "рефакторинг" приветствуется.

Тестировать новый endpoint лучше пользуясь Swagger-ом. Он не подключен, это нужно сделать.

Задача "со звёздочкой" (не обязательная): предусмотреть фильтрацию по имени человека/автомобиля, пагинацию, сортировку по имени человека/автомобиля

Как сдавать задание

  1. Необходимо сделать новый проект в личном репозитории, используя этот как шаблон (зедёная кнопка сверху "Use this template")
  2. В этом новом репозитории сделать ветку, в которой вести всю разработку.
  3. По окончании - сделать PullRequest в основную ветку личного репозитория.
  4. Прислать ссылку на PR в качестве артефакта.

About


Languages

Language:C# 100.0%