Привет! Я ищу опытного разработчика Discourse, который поможет подготовить мою платформу сообщества к запуску. Инстанс уже работает, и в нём внедрена кастомная тема (core.scss, nav.scss, nav.js), поэтому это не разработка с нуля — задача в том, чтобы довести все детали до совершенства.
Я предлагаю $250 и готов структурировать оплату по этапам. Вот что мне нужно:
Существующая тема Уже есть полноценная кастомная тема с поддержкой светлой/тёмной темы, кастомным меню навигации, скрывающим стандартный заголовок Discourse, и фирменными цветами. Меню должно корректно отображаться на всех типах страниц, включая профиль участника, и мне нужен специалист, который проведёт аудит и исправит всё, что откатывается к настройкам по умолчанию. Также нужно заменить логотип (файл предоставлен).
Страница портала участника Мне нужна кастомная страница профиля, отображающая тип участника (Владелец, Участник или Дилер), его автомобиль, значок верификации и переключатель языка. Ссылки на ресурсы на этой странице должны быть условными: например, владельцы видят другие инструменты, чем потенциальные участники. Я предоставлю полный интерактивный макет, включающий состояния для светлой и тёмной тем, а также все варианты отображения для разных типов участников.
На странице также должен быть блок «Подключённые аккаунты», где участники могут авторизоваться через Discord и Facebook OAuth. После успешной авторизации их ID платформы и имя пользователя должны записываться в Supabase (учётные данные и схема предоставлены). OAuth-приложения уже настроены — мне нужен только компонент на стороне Discourse и корректная логика обратного вызова.
Язык и перевод Сообщество международное, поэтому это критически важно. Когда участник выбирает предпочитаемый язык (английский, тайский, чешский, голландский, немецкий, новозеландский английский), должен переключаться весь интерфейс Discourse: меню, уведомления, системные сообщения — всё. При первом посещении нужно определять страну участника по IP и предлагать подтвердить выбор. Также необходимо установить и настроить плагин Discourse Translator с использованием ключа API DeepL (предоставлен), активировать кнопки перевода для каждого сообщения и кэшировать переводы по ID сообщения, чтобы снизить затраты на API. Статические страницы, включая портал участника (который также должен быть доступен через нативные кнопки Discourse), должны отображаться на выбранном языке.
Уровни доверия, группы и интеграция с Tally Структура категорий будет готова до начала вашей работы. Мне нужно правильно настроить уровни доверия и группы: типы участников (Владелец, Участник, Дилер) должны назначаться при регистрации, группы должны соответствовать нужным правам доступа к категориям, а любые изменения должны синхронизироваться с Supabase. Также нужно обеспечить передачу discourse_user_id и discourse_username в виде параметров URL для встроенных форм Tally, чтобы они могли быть захвачены как скрытые поля предзаполнения.
Шлюз проверки DVLA Категория только для владельцев должна быть закрыта проверкой автомобиля. Когда неавторизованный участник пытается получить доступ, ему должно появляться предложение ввести регистрационный номер автомобиля. Я сам разрабатываю конечную точку проверки (Cloud Run, REST — полностью документирована и предоставлена), поэтому ваша задача здесь — только компонент темы Discourse: экран с ограниченным доступом, форма ввода VRM, а также состояния успеха/ошибки. Для этого этапа мне нужен специалист, уверенно работающий с JS-компонентами тем на базе Ember в Discourse.
Тема XCombo Ещё один компонент — одна тема Discourse, которая служит одновременно справочником и пространством для обсуждения набора данных, который я поддерживаю. Первое сообщение закреплено и содержит встроенный виджет поиска (фильтры в реальном времени на основе таблицы Supabase), кнопку «Отправить мне полный список по электронной почте» (вызывает предоставленный конечный пункт, Resend отправляет PDF на зарегистрированный адрес участника) и ссылку, ведущую к ветке обсуждения ниже. Снова: логика поиска, конечный пункт и интеграция с Resend уже предоставлены — вам нужно только подключить контейнер на стороне Discourse. Это также даст вам представление о полном пути участника: портал → ссылка на ресурс → тема → поиск → электронная почта.
Все файлы, учётные данные, доступ к Supabase и документацию я предоставлю после присуждения контракта. Готов обсудить детали, если потребуется. Пожалуйста, расскажите о вашем опыте интеграции OAuth именно в Discourse и о том, работали ли вы ранее с компонентами тем на базе Ember.
Большое спасибо