В книжном магазине у пользователей есть три роли: покупатель, сотрудник и администратор. Покупатель может добавить книгу в корзину и офрмить заказ, а система должна проверять доступность книги и вести учет заказов. Сотрудник может зарегистрироваться так же, как пользователь, и подать заявку на получение прав сотрудника администратору. Администратор рассматривает заявку и присваивает сотруднику его должностные права.
-
Регистрация пользователя. Пользователь может создать учетную запись, указав имя, фамилию, адрес электронной почты и пароль. Система будет проверять, существует ли учетная запись с данным адресом электронной почты. По итогу каждому пользователю будут присвоены поля id, name, surname, email, password, is_admin, is_employee (опционально, так как можно реализовать отдельную форму регистрации для сотрудника и администраторов).
-
Логин, логаут пользователя. Пользователь может авторизоваться, указав логин (почта) и пароль. Система должна проверять правильность введенных данных. При успешном входе в систему пользователю присваивается сессия. Пользователь может выйти из системы, уничтожив свою сессию.
-
INDEX. Покупатель может просматривать список всех доступных книг. Список должен быть отсортирован по заданным критериям (по названию, автору, цене и т. д.). Также пользователь может просматривать информацию о конкретной книге (ее описание, обложка, информация об авторе и т. д.).
-
CREATE. Добавлять книги в каталог могут только сотрудники и администраторы. Форма добавления книги должна содержать все необходимые поля (название, автор, цена, обложка и т. д.). Система должна проверять корректность введенных данных.
-
UPDATE. Обновлять информацию о существующих книгах могут только сотрудники и администраторы. Должна быть реализована механика изменения полей книги.
6.DELETE. Удалять книгу из каталога могут только сотрудники и администраторы, а система должнв подтверждать удаление книги у пользователя из каталога перед ее окончательным удалением.
