Необходимо разработать программное обеспечение, позволяющее упростить и сделать более эффективным и надёжным процесс управления небольшим складом товаров. Программное обеспечение (далее "ПО") предлагается разработать в виде Web-приложения на Ruby on Rails c использованием СУБД Postgresql. ПО должно автоматизировать учёт товаров, добавление, удаление товаров на склад, учёт дополнительных свойств товара, формирование списка имеющихся товаров (прайс-листа), а так же разграничение прав доступа для двух групп пользователей: менеджеров и администраторов.
Необходимо различать две группы пользователей:
- Менеджеры
- Администраторы
Основная сущность: "Партия товара". Свойства:
- Название товара
- Количество единиц товара на складе в данный момент
- Закупочная цена одной единицы товара
- Стоимость одной единицы товара
- Дополнительные свойства товара в форме (ключ: значение, например: цвет: белый, вес: 2кг., могут быть любыми)
- Виртуальная сущность, хранит данные о том, какой пользователь осуществил продажу некоторого товара, количество (шт.) товара. Кроме того, вычисляет закупочную цену для проданного товара, стоимость для покупателя и полученную от продажи прибыль (стоимость единицы товары * количество проданных единиц - закупочная стоимость * количество)
- Менеджер осуществляет поиск по товарам
- Пользователь с ролью "менеджер" входит в свой аккаунт
- Пользователь видит каталог товаров
- Пользователь вводит ключевое слово в форму поиска
- Пользователь видит товары, в названиях которых есть ключевое слово, причем только те товары, которые есть на складе (количество больше 0 штук)
- Менеджер не может удалить "партию товара" со склада или изменить закупочную стоимость.
- Менеджер может изменить стоимость единицы товара.
- Менеджер осуществляет продажу
- Пользователь с ролью "менеджер" входит в свой аккаунт
- Пользователь выбирает некоторый товар (из каталога или поиском)
- На странице товара пользователь видит форму "оформление заказа", указывает в ней количество единиц товара и подтверждает, что товар продан.
- После этого в БД сохраняется новый Заказ. Количество товар на складе соответственно уменьшается.
- Администратор управляет партиями товара
- Администратор входит в свой аккаунт
- Администратор имеет полный доступ к добавлению, удалению, редактированию партий товара.
- Администратор не может изменять уже сохранённые заказы, не может удалять заказы.
- Администратор просматривает историю заказов
- Администратор входит в свой аккаунт
- Администратор выбирает период времени, за который он хочет просмотреть историю заказов.
- История заказов содержит информацию о товарах, их количестве, общую сумму денег затраченных на закупку этого товара, общую выручку и прибыль от продажи за выбранный период.