ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 134

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Авторизация 

При запуске приложения окно входа – первое, что видит пользователь. На ней пользователю предлагается ввести свой логин и пароль или есть возможность перейти на экран просмотра товаров в роли гостя.

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

  • авторизованный клиент может просмотреть товары;

  • менеджер может просматривать товары;

  • администратор может добавлять/редактировать/удалять товары.

Реализуйте необходимые интерфейсы для всех пользователей системы. После входа в любую учетную запись должна быть реализована возможность выхода на главный экран – окно входа. При переходе в любую учетную запись в интерфейсе (правый верхний угол) должны отображаться ФИО пользователя.

После первой попытки неуспешной авторизации система выдает сообщение о неуспешной авторизации, а затем помимо ввода логина и пароля просит ввести captcha, состоящую из 4 символов (цифры и буквы латинского алфавита) и графического шума. 

CAPTCHA - должна содержать минимум 4 символа (буква или цифра), которые выведены не в одной линии. Символы должны быть либо перечеркнуты либо наложены друг на друга.

После попытки неудачной авторизации с вводом captcha, система блокирует возможность входа на 10 секунд. 
Список товаров

Очень важно постоянно получать актуальную информацию об остатках товаров на складах, поэтому необходимо реализовать вывод товаров, которые хранятся в базе данных, согласно предоставленному макету. При отсутствии изображения необходимо вывести картинку-заглушку из ресурсов (picture.png) .

Вывод должен осуществляться списком.








Наличие на складе


Фото


Обратите внимание, должна выводится вся информация о товаре из базы данных.

Товары, которых нет на складе, должны отображаться на сером фоне.

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


Пользователь должен иметь возможность отсортировать товары (по возрастанию и убыванию) по стоимости.

Кроме этого, пользователь должен иметь возможность отфильтровать данные по производителю. Выбор производителя должен быть из выпадающего списка. Первым элементом в выпадающем списке должен быть “Все производители”, при выборе которого настройки фильтра сбрасываются.

Поиск, сортировка и фильтрация должны происходить в реальном времени, без необходимости нажатия кнопки “найти”/ ”отфильтровать” и т.п. Фильтрация и поиск должны применяться совместно. Параметры сортировки, выбранные ранее пользователем, должны сохраняться и во время фильтрации с поиском.

В верхней части окна необходимо показывать количество выведенных данных и общее количество записей в базе. Например, 15 из 37 . В случае, если данные в таблицу выводятся после фильтрации или поиска, количество выведенных данных необходимо обновить исходя из размера выборки.

Реализуйте удаление товара. Товар, который присутствует в заказе, удалить нельзя. Товар, у которого есть дополнительные товары, удаляется из базы данных вместе с информацией о дополнительных товарах, если ни один из товаров (даже дополнительный) не заказан.

Реализуйте переход на окно добавления товара и окно редактирования выбранного товара.
Добавление/ редактирование товаров

Необходимо реализовать возможность добавления и редактирования исходных товаров (сырья) для всей продукции компании. Редактировать данные может только администратор.

Необходимо добавить возможность редактирования данных существующего товара, а также добавление нового товара в новом окне - форме для добавления/ редактирования товара. Переходы на данное окно должны быть реализованы из формы списка: для редактирования - при нажатии на конкретный элемент, для добавления - при нажатии кнопки “Добавить товар”.

На форме должны быть предусмотрены следующие поля: наименование, категория (выпадающий список), количество на складе, единица измерения, поставщик, стоимость за единицу, изображение и подробное описание (с возможностью многострочного ввода) . Стоимость товара может включать сотые части, а также не может быть отрицательной. Минимальное количество также не может принимать отрицательные значения.



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

ID товара при добавлении не отображается, автоматически вычисляется +1 к имеющемуся в БД, при редактировании ID доступно только для чтения.

Пользователь может добавить/ заменить изображение у товара. Изображение, которое загружает пользователь при добавлении или редактировании, должно сохраняться в папку с приложением. Для оптимального объема реализуйте ограничение на размер фото: 300Х200 пикселей. В базе данных необходимо хранить путь к изображению. При замене изображения, старое фото из папки должно быть удалено.

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

После редактирования/добавления/удаления товаров данные в окне списка товаров должны быть обновлены.