По договоренности
Цель индивидуального проекта создание агрегатора товаров для различных продавцов (мультибрендового интернет-магазина).
Требования к технической части итогового проекта:
Проект необходимо разработать на фреймворке Symfony, и он должен быть легкопереносимым. Это значит, что проект должен запускаться путём клонирования репозитория, установки необходимых .env-опций, выполнения миграции.
Для проекта должен использоваться отдельный Git-репозиторий в сервисе gitlab.com (или github.com).
Разработка проекта делится на этапы, все задачи каждого этапа сливаются на отдельную релизную ветку, и на ветку master создаётся Merge Request, который сдаётся преподавателю. Преподаватель оставляет замечания в этом Merge Request, и только после его одобрения запрос сливается в ветку master. Таким образом, в момент сдачи этапа проекта у вас должен быть активный Merge Request (или Pull Request) релизной ветки на ветку master и в репозитории должны присутствовать все тематические ветки.
Разработка задач участниками проекта происходит по стандарту Git workflow.
Если используются определённые нестандартные конфигурации веб-серверов (сервер очередей, nginx, FPM, Docker и тому подобные), они должны быть под контролем версий внутри проекта в отдельной директории.
Установка БД проекта должна полностью осуществляться командой миграции. Если необходимо выполнить и другие команды/действия, то нужно создать файл Readme.md и указать в нём шаги для развёртывания проекта. При этом миграции должны быть корректными, то есть их можно последовательно применить и отменить.
В проекте должна быть миграция, которая устанавливает следующие обязательные данные на проекте: администратора, роли пользователей на сайте, а также, если требуется, другие данные.
В проекте должен быть реализован Seeder данных, добавляющий покупателя (-ей) с простым паролем (123456), а также товары, категории товаров, продавцов, цены, заказы, скидки и другие данные, которые могут пригодиться для полноценных демонстрации и тестирования проекта.
Базовый процесс разворачивания проекта:
git clone;
изменение файла .env;
php bin/console doctrine:database:create;
php bin/console doctrine:migrations:migrate;
php bin/console doctrine:fixtures:load;
другие шаги по настройке (конфигурирование очередей и других сервисов проекта, yarn);
а также, например, symfony serve для запуска проекта.
Какие разделы должен содержать итоговый проект (сайт)
Структура сайта
Главная страница.
Каталог с блоком «Популярные товары», фильтром, сортировкой, скидками:
Сам каталог товаров.
Сравнение.
Детальная страница товара с отзывами и сравнением цен продавцов.
Страница о продавце.
Страница о скидках:
Детальная страница скидки.
Оформление заказа:
Корзина.
Оформление заказа.
Оплата.
Личный кабинет:
Личный кабинет.
Профиль.
История просмотров.
История заказов.
Административный раздел:
Просмотр и редактирование товаров.
Просмотр и редактирование заказов.
Просмотр и редактирование категорий каталога.
Просмотр и редактирование скидок.
Страница проведения импорта.
Роли на сайте
Роли пользователей:
Администратор. Имеет полный доступ к админке.
Покупатель любой авторизованный пользователь. Может пользоваться всеми публичными возможностями системы.
Незарегистрированный пользователь. Может просматривать каталоги и собирать корзину.
Состав страниц
Из чего состоит шапка сайта:
ссылки на соцсети;
ссылки на регистрацию и авторизацию;
логотип-название сайта;
меню авторизованного пользователя, в том числе иконка перехода на страницы сравнения и корзины;
меню для навигации по сайту;
меню категорий товаров;
строка для поиска; поиск ведёт на страницу каталога с предустановленным значением фильтра по названию.
Если пользователь авторизован, то ссылки на авторизацию и регистрацию заменяются на ссылку, ведущую в личный кабинет.
Меню содержит навигационное меню, состоящее из ссылок на различные страницы сайта.
Меню категорий содержит категории товаров для удобной навигации по сайту. В это меню попадают все активные категории товаров на сайте. Для каждой категории в меню отображается текст и иконка, если она есть у этой категории. Максимальный уровень вложенности 2.
Внешний вид и состав страниц соответствуют приложенной вёрстке.
Из чего состоит футер сайта:
название сайта;
навигационное меню по статичным страницам;
другая статичная информация.