Разработать модуль социальной интеграции
Задача состоит в том, чтобы создать следующий механизм, используя Laravel в качестве серверной части и FomanticUI и AlpineJS для интерфейса: https://elfsight.com/social-feed-widget/#demo
Представление Mansory с макетом Grid: https://www.evernote.com/l/AeypLllbGKpMjLN9Zqr0G0n...
Он должен быть полностью адаптивным и использовать компоненты пользовательского интерфейса Fomantic С точки зрения источников, требуется один и тот же механизм настройки источников, включая все социальные сети и их варианты (личные / деловые Instagram и т. Д.).
Остальные функции (цвета, другие макеты, стили и т. д.) не требуются.
Технический стек: Laravel 8.x, FomanticUI, AlpineJS 3.x, JavaScript ES6, PHP 8.2.x
Требования к оформлению и качеству кода: https://github.com/alexeymezenin/laravel-best-prac... , По возможности всегда используйте доступную функциональность фреймворков и старайтесь избегать использования внешних библиотек, cоздавайте чистый, читаемый код, осмысленные имена переменных/методов/работ/классов.
## Предлагаемая схема
## Требования к функциональности
Две страницы этого проекта:
- Страница администратора:
- Будет использоваться, чтобы позволить пользователю подключать свои учетные записи в социальных сетях и отображать предварительный просмотр каналов.
- С точки зрения вида это должно быть очень похоже на форму в приведенном выше примере.
- Аутентификация должна требоваться только для распознавания пользователя и связанного с ним веб-сайта.
- В приведенных примерах кода это называется областью администратора/администратора.
- Страница сайта:
- Будет использоваться для отображения каналов.
- С точки зрения вида, он должен быть очень похож на вид Mansory с макетом Grid в приведенном выше примере.
- Аутентификация не требуется.
Что касается javascript, следует использовать AlpineJS, вероятно, должно быть два компонента:
- Компонент управления социальной сетью
- Этот компонент будет использоваться для управления учетными записями социальных сетей.
- Его следует использовать на странице администратора.
- Он должен позволять пользователю подключать свои учетные записи в социальных сетях.
- Он должен позволять пользователю отключать свои учетные записи в социальных сетях.
- Социальные каналы
- Этот компонент будет использоваться для отображения каналов.
- Наверное, так:
- Получить список всех моделей социальных каналов, связанных с веб-сайтом.
- Для каждой модели социальных каналов извлеките связанные с ней элементы социальных каналов morphs.
- Каждая социальная лента должна быть загружена с помощью собственного запроса к нашему «Маршрутизатору» социальных лент.
- Ошибки должны обрабатываться
- Объедините все элементы социальных каналов в один массив и отсортируйте его по дате.
- Отображение элементов социальных каналов с помощью представления Mansory с макетом сетки.
- Его следует использовать на странице веб-сайта, а также на странице администратора в качестве предварительного просмотра.
Должно быть запланированное задание, которое автоматически обновит токен доступа учетных записей социальных сетей.
Токен обновления должен храниться в базе данных, и обновление должно выполняться с использованием токена обновления.
В случае сбоя пользователь должен быть уведомлен.
Вам нужно будет предоставить документацию о том, что потребуется от меня для настройки учетных записей социальных сетей, необходимых для доступа к API, я предполагаю, что каждая сеть потребует от меня создания приложения или чего-то подобного, чтобы мои пользователи могли подключать свои Счета.
## Предлагаемая структура кода
В этом репозитории вы найдете проект Laravel с кратким обзором того, что, по моему мнению, должно быть структурой кода: https://disk.yandex.ru/d/3kh4DiHO1m9k-g
У меня было время написать в основном внутреннюю структуру, но я думаю, этого должно быть достаточно, чтобы дать вам представление о том, чего я ожидаю.
Код не завершен, это просто краткий обзор того, что, по моему мнению, должно быть структурой кода.
Он не тестировался и, вероятно, не будет работать, я написал его только для того, чтобы продемонстрировать некоторые идеи и ожидаемые стандарты кодирования.
Проверьте следующие каталоги для примера кода/предлагаемой структуры:
- /app/Http/Controllers/
- /app/Interfaces/
- /app/Jobs/
- /app/Models/
- /app/Rules/
- /routes/web.php
- /resources/js/
- /resources/sass/