Требования к функционалу веб-портала (даны для ориентира, это не "техническое задание", нет цели реализовать всё это как в приведенных примерах):
1) краудсорсинговый каталог с возможностью авторизованным пользователям предлагать описания для карточек-продуктов и комментировать их (пример:
https://www.discogs.com/search/?ev=em_rs),
2) маркетплейс
(пример страницы продавца
https://www.etsy.com/shop/KolenkoToys?ref=hp_recs_shop_module-shop-3пример карточки товара
https://www.etsy.com/listing/1032912406/puistyj-se...),
3) страница пользователя с избранным, альбомами, подписками на других пользователей, управление страницей через личный кабинет пользователя (пример
https://www.pinterest.com/lovecraftscrochet/_creat..),
4) админка.
Требования к разработчику:
1) По возможности использовать готовые библиотеки и packages покрывающие функционал проекта. Это не высоконагруженный проект, максимальная посещаемость до 10'000 пользователей в день. Достаточно использования базовых настроек кэширования memcached и индексов в mysql, базового полнотекстового поиска в mysql. И mysql для хранения ссылок на фотографии.
2) Выбрать пакеты, которые будут использоваться при разработке. Знать структуру базы данных в этих пакетах. Исходя из выбранных пакетов и имеющихся в них структур баз данных подготовить общую структуру базы данных проекта.
3) На основе подготовленной БД разработать бизнес-логику по требованиям менеджера проекта, интегрируя пакеты в проект и дописывая на чистом php то, чего нет в пакетах.
4) Подготовить restAPI по требованиям frontend разработчика.