В свободное время мне захотелось сделать какой-нибудь небольшой полезный проект. Я работаю удаленно не первый год, и меня часто спрашивают, где найти проекты — поэтому и пришла в голову мысль сделать список сайтов для поиска фриланс-заказов с отзывами и рейтингом.
Главная страница
Список всех сервисов с сортировкой и фильтрами. Это Views c раскрытыми аргументами и сортировкой. Почему были использованы аргументы, а не раскрытые фильтры? Причина в желании получить красивые адреса страниц вида "/язык/страна/специализация". При использовании аргументов нет автоматической формы выбора, как в случае раскрытых фильтров. Поэтому все же пришлось написать простой модуль, добавляющий форму, с редиректом на страницу с нужными параметрами.
Страница сайта
Для страниц фриланс-сайтов добавлен новый тип материала. Вывод полей сделан через Twig-шаблон, Layouts не использовался, чтобы получить полную свободу в верстке.
Для понимания, какой сервис лучше, нужно иметь объективную метрику. Было решено использовать данные из Alexa, SimilarWeb, Ahrefs. Все три сервиса имеют API. Для получения данных сделан простой модуль. Данные счетчика — это обычные числовые поля. При сохранении материала (ноды) запускается hook_node_presave, где отправляются запросы на получение информации через API и далее сохранение в поле. Для сокращения больших чисел используется модуль Number Abbreviation.
Отзывы
Используется стандартный модуль Comment. Добавлен новый тип комментариев. Для поля выставления оценки используется модуль Fivestar. Я работаю с ним еще с 6-й версии и не имею нареканий к его работе. 9-я версия пока нестабильна, но работает отлично, а все возможные проблемы и сценарии использования описаны в трекере проекта.
Регистрация
Добавлен вход через аккаунты Google и Facebook. Используются модули Social Auth, Social Auth Facebook и Social Auth Google.
Оптимизация и производительность
Advanced CSS/JS Aggregation — сжимает и объединяет css и js.
Webp — преобразует все загруженные изображения в формат WebP, который очень любит "Гугл". С этой комбинацией удалось быстро получить значение 98 в Page Speed для десктопов и 80 для мобильных.
Обновление с 8 на 9
Первую версию сайта я сделал в 2020 году, когда Drupal 9 еще был в статусе беты. В августе 2021-го мне захотелось перейти на новую версию. При обновлении обнаружилось что некоторые модули не имеют версии под "девятку", но это легко решилось: в большинстве случаев оказалось достаточно добавить одну строку в .info файл модуля.
Комментарии
Количества оценок не хватает в списке бирж.
Да и ссылки прямые лучше давать, а не пропущенные через искривитель!
Согласен. Счетчика оценок пока нет, потому что мало отзывов, для многих ресурсов их нет. Не хочется показывать 0. В будущем обязательно сделаю.
Ссылки на некоторые сервисы реферальные, а не прямые, монетизация тоже нужна.
Сайт сделан хорошо, но вот информацию стоит слегка по другому подавать. С описанием правил площадок и возможностей работы если человек из той или другой страны. Хотя сайт ваш - пишите что хотите.