Кейс №5

"Электронный склад"

Условия

Разработать информационный сервис, обеспечивающий взаимодействие пользователей (операторов) с автоматизированным складом.

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

Имеется система автоматизированного склада стеллажного типа. Система имеет три типоразмера ячеек, В*Ш*Г: 1000*1000*1000, 2000*1000*1000 и 2000*2000*1000. Разработчики аппаратной части предоставили интерфейс прикладного программирования (API). Описание API доступно по ссылке. Необходимо реализовать сервис, позволяющий пользователям (операторам) работать со складом. Архитектура сервиса должна включать в себя как минимум два программных модуля, а именно: серверную часть (back-end) и клиентскую часть (front-end).

При инициализации сервис должен обратиться к API склада для получения схемы расположения ячеек.

Должна быть реализована функциональность, позволяющая добавлять несколько позиций из поставки, при этом информация о новых позициях должна быть направлена в аппаратную часть с указанием UID'а (необходимо предусмотреть генерацию уникального идентификатора) и ячейки склада, в которую необходимо разместить каждую позицию. Определение того, в какую ячейку поместить позицию производится исходя из габаритных размеров и массы позиции (см. пример товарной накладной). Перед отправкой информации на аппаратную часть на стороне сервиса должен быть произведен расчет того, в какую ячейку необходимо поместить товар. Допускается вращение позиции в одной плоскости. При выборе ячейки для позиции необходимо стремиться к тому, чтобы наиболее тяжелые позиции располагались как можно ниже. В пользовательском интерфейсе по запросу сервис должен отображать позиции (товары) в виде списка с указанием ячейки, в которой товар находится на складе. Также в пользовательском интерфейсе должна присутствовать функциональность для выбора определенного товара (позиции) и осуществления выдачи его аппаратной частью.

Не гарантируется, что добавляемая позиция поместится в свободную ячейку: возможно превышение габаритов или отсутствие свободных ячеек на складе. Если позицию невозможно разместить на складе, то ее следует направить на удаленный склад. Информация о позициях, отправленных на удаленный склад, не передается на аппаратную часть. Реализация отправки и/или хранения информации о позициях, отправленных на удаленный склад, осуществляется на усмотрение участников.

Пользовательский интерфейс рекомендуется делать кроссплатформенным, удобным и понятным пользователю.

Рекомендуется использовать СУБД для хранения собранных данных а также предоставить ER модель.

Проект рекомендуется вести с помощью системы контроля версий git.

Рекомендуется использовать unit-тестирование при разработке сервиса.

Пример товарной накладной:

№ п/п Наименование Размер, В*Ш*Г Масса
1 Системный блок 900*900*300 15
2 Монитор 900*1500*50 7
3 Доска маркерная 1900*1100*900 5

Пример схемы склада:

При данных полученных от аппаратной части:


{
  "size": 
    {
      "size_x": 3,
      "size_y": 3,
      "size_z": 1
    },
  "merged": 
    [
      ["A1", "A2", "B1", "B2"],
      ["B3", "C3"]
    ]
}
			

Схема склада будет иметь следующий вид:

Рис.1. Пример схемы склада

Индексация ячеек начинается в верхнем левом углу, по горизонтали обозначается буквами "A", "B" ..., по вертикали - цифрами "1", "2" ...

Минимальный размер по горизонтали и вертикали равен 3, максимальный — 9.

Регламент испытаний

Демонстрация испытаний осуществляется с использованием программной модели аппаратной части склада.

  • Производится запуск и инициализация сервиса, включающая в себя получения от API аппаратной части схемы ячеек.
  • Участники демонстрируют добавление накладной, посредством передачи сервису таблицы с позициями. Позиции в накладной определяются членами жюри. Формат накладной определяется участниками.
  • Участники демонстрируют список позиций, добавленных на склад. Жюри осуществляет проверку распределения позиций по размеру и массе.
  • Участники демонстрируют выбор позиции со склада для выдачи.
  • Участники демонстрируют список позиций на складе после выдачи.
  • Участники демонстрируют список позиций, отправленных на удаленный склад.

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

  • https://www.python.org/
  • https://nodejs.org/
  • https://sqlite.org/
  • https://www.postgresql.org/
  • https://pypi.org/project/requests/
  • https://reactjs.org/
  • https://vuejs.org/
  • https://poiskvps.ru/
Наверх