Skip to content

Hetig/DeliveryStorage

Repository files navigation

DeliveryStorage

О проектах

DeliveryStorage — это группа проектов для службы доставки. Решение включает в себя API разработанное с использованием ASP.NET Core и консольное приложение, которое является клиентской частью для API. Решение сделано на основании тестового задания.

Техническое задание:

Разработать консольное .NET приложение для склада, удовлетворяющее следующим требованиям:

  • Построить иерархию классов, описывающих объекты на складе - паллеты и коробки:
    • Помимо общего набора стандартных свойств (ID, ширина, высота, глубина, вес), паллета может содержать в себе коробки.
    • У коробки должен быть указан срок годности или дата производства. Если указана дата производства, то срок годности вычисляется из даты производства плюс 100 дней.
      • Срок годности и дата производства — это конкретная дата без времени (например, 01.01.2023).
    • Срок годности паллеты вычисляется из наименьшего срока годности коробки, вложенной в паллету. Вес паллеты вычисляется из суммы веса вложенных коробок + 30кг.
    • Объем коробки вычисляется как произведение ширины, высоты и глубины.
    • Объем паллеты вычисляется как сумма объема всех находящихся на ней коробок и произведения ширины, высоты и глубины паллеты.
    • Каждая коробка не должна превышать по размерам паллету (по ширине и глубине).
  • Консольное приложение:
    • Получение данных для приложения можно организовать одним из способов:
      • Генерация прямо в приложении
      • Чтение из файла или БД
      • Пользовательский ввод
    • Вывести на экран:
      • Сгруппировать все паллеты по сроку годности, отсортировать по возрастанию срока годности, в каждой группе отсортировать паллеты по весу.
      • 3 паллеты, которые содержат коробки с наибольшим сроком годности, отсортированные по возрастанию объема.
  • (Опционально) Покрыть функционал unit-тестами.
  • (Очень желательно) Код должен быть написан в соответствии с https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions
  • (Совершенно не обязательно) Вместо консольного приложения сделать полноценный пользовательский интерфейс. На оценку решения никак не влияет.

Функциональные возможности

Основное приложение

  • Маппинг данных с использованием AutoMapper
  • Контейнеризация Docker
  • База данных: PostgreSQL

Установка и запуск

Предварительные требования

Шаги установки

  1. Клонируйте репозиторий:

    git clone https://github.com/Hetig/DeliveryStorage.git
    cd DeliveryStorage
  2. Поднимите контейнер с приложением используя команду в терминале:

    docker-compose up -d --build
  3. Запустите клиентское консольное приложение

Использованные технологии

  • ASP.NET Core Web API
  • Entity Framework Core
  • PostgreSQL
  • AutoMapper

Контрибьютинг

Если вы хотите внести свой вклад в проект, пожалуйста, создайте форк репозитория, создайте новую ветку, внесите свои изменения и отправьте pull request.

Лицензия

Данный проект не лицензирован.

Автор

Hetag Hachirov

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors