Вход Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Уход за животными
Тренеры
Автоинструкторы

Разработка на PHP — удалённая работа в Москве

Дата: 2025-03-21
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-03-21
Описание
Веб-разработка. Доработка существующего продукта. Есть бот@vtb_priz_bot для проведения розыгрышей в TG-канале. Задача: разработать админ-панель для автоматизации проведения розыгрышей. Как сейчас работает бот В БД есть таблица giveaways, в которой хранятся все розыгрыши: code (уникальный идентификатор розыгрыша, который устанавливается в метку ?start= для запуска бота) hello_text - текст в формате html, который приходит пользователям при входе в розыгрыш hello_image - путь к файлу изображения, которое приходит вместе с текстом при входе в розыгрыш hello_image_fileid - заполняется автоматически при первой отправке изображения, представляет собой ID файла в Telegram participant_text - текст, который отправляется пользователю при успешном выполнении критериев участия (добавился в список) is_enabled - статус конкурса (активен / не активен) В таблице channels хранятся каналы, подключенные к боту для розыгрышей В таблице giveaway_channels хранится связка каналов и гивов Для текущих задач достаточно будет к созданному гиву подвязывать дефолтный канал с ID №1. В будущем может понадобится интерфейс для администрирования и добавления дополнительных каналов к розыгрышу. В таблице giveaway_participants хранятся участники всех розыгрышей: giveaway_id - ID розыгрыша bot_user_id - ID пользователя is_winner - флаг выигрыша Нужно создать админку, в которой можно: Посмотреть список всех розыгрышей Добавить новый розыгрыш (прикрепить к нему картинку, текст с HTML форматированием, текст для успешного участия) Посмотреть статистику по розыгрышу (сколько участников и тд) Подвести итоги розыгрыша (сгенерировать список победителей и разослать рассылку, об этом ниже) Есть ряд стандартных текстов в боте, которые хочется редактировать в админке Помимо текстов, привязанных к конкретному гиву (стартовое сообщение и сообщение об успешном участии), есть ряд стандартных текстов, например: 'Розыгрыш завершён. Поздравляем победителей.' '🔵 Участвовать' 'Произошла ошибка. Кажется, сейчас большая нагрузка. Пожалуйста, попробуйте позже.' 'Похоже, что вы еще не подписались на наш канал. Подпишитесь, чтобы принять участие в розыгрыше! %s' '🔵 Проверить снова' 'Вы уже участвуете в этом розыгрыше. Дождитесь подведения итогов.' 'Розыгрыш не найден. Возможно он закончился.' Эти стандартные тексты раскиданы по 2 файлам: Telegram/Commands/StartCommand.php, Telegram/Commands/ParticipateCommand.php. Эти тексты хочется также вынести в админку, чтобы из отдельной страницы можно было их отредактировать. Как сейчас работает подведение итогов Для подведения итогов реализованы 2 команды artisan: php artisan giveaway:get_winners и php artisan giveaway:send_winners Подведение итогов устроено следующим образом: Вручную запускается команда get_winners, в которой указывается: ID розыгрыша, кол-во победителей. Команда в случайном порядке перемешивает участников, и набирает из них N победителей. Для выбранных победителей устанавливается пометка “is_winner = 1” Далее вручную в обязательном порядке проверяется сгенерированный список победителей - мы отсматриваем чтобы у них были логины и нормальные имена, вручную открываем их в ТГ смотрим аватарки. Если кто-то из победителей выглядит как бот, мы меняем его в ручном режиме (убираем ему is_winner = 1, запускаем повторно get_winners на недостающее число участников) После того как все победители выбраны и список согласован, мы готовим рассылку Для этого мы прописываем ее в коде команды send_winners - прописываем туда текст сообщения и картинку сообщения. Далее запускаем рассылку через консоль - рассылка уходит только тем пользователям, которые что-то выиграли. Подведение итогов в админке: К карточке конкретного розыгрыша вывести таблицу “Список победителей” Вывести кнопку “Выбрать победителей”, указывается сколько победителей выбрать, и система рандомно их выбирает. Напротив каждого победителя предусмотреть кнопку “Выбрать другого” - система рандомно заменяет именно этого победителя по клику на кнопку, других не трогает. Для списка победителей нужно выводить: id, telegram_id, telegram_username, telegram_first_name, telegram_last_name Ниже нужно вывести кнопку “Разослать сообщение по победителям”, которая ведет на страницу рассылки, где можно указать текст+изображение. Далее рассылка планируется и запускается по всем победителям. Результат задачи Админка, в которой есть ключевые разделы: Список розыгрышей, Рассылка В список розыгрышей можно добавить розыгрыш Можно редактировать уже идущий розыгрыш или вкл/выкл его Можно подвести итоги из админки, выбрать победителей, заменить конкретного победителя на другого По итоговым победителям можно разослать рассылку Также по всем пользователям в системе можно разослать рассылку —---------- Код который можно взять за основу Конкретно в этом боте у нас не реализована админ-панель вообще. Нужно будет развернуть дефолтную систему авторизации Laravel, закрыть доступ к регистрации и восстановлению пароля. В коде других приложений у нас есть реализованная система рассылки (на скрине), туда уже интегрирован html редактор с поддержкой всех тегов telegram, валидацией длины текста, загрузкой картинок. И также уже есть реализация для cron, которая из БД отправляет всех пользователей которым эта рассылка была запланирована. Мы расшарим код этого приложения, фактически рассылку можно будет перенести из него, т.е. не кодить с 0. К рассылке только нужно будет подключить поддержку отправки по конкретной группе пользователей. Также в другом приложении есть примеры дефолтных таблиц/форм для добавления редактирования элементов. Можно будет также взять их за основу и переделать под механику розыгрышей.
Похожие заказы

Разработка на Yii

дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Пожелания и особенности: Ищу разработчика для регулярной поддержки текущего продукта на YIi2. Оформление по договору как ИП, оплата по часам. Постоплата раз в месяц по актам, ЭДО. Система ИСПДн, подписание поручения на обработку ПДн, соглашений о неразглашении и тп.
Москва Фрилансеры

Разработка на PHP

дистанционно
договорная
Веб-разработка. Разработка с нуля, доработка существующего продукта. Интеграция AI-агента (чат-бота) с самописной CRM через REST API Что уже есть: AI-агент: Работает и принимает сообщения через соц сети. Самописная CRM: Написана на (PHP). У CRM есть свое REST API. Что нужно сделать: Настроить обмен данными между AI-агентом и CRM в реальном времени. При входящем запросе клиента AI-агент должен дергать API CRM, чтобы: Проверить, есть ли клиент в базе (по телефону/email). Подтянуть историю покупок/обращений клиента для контекста разговора. После завершения диалога AI-агент должен отправить обратно в CRM: Итог разговора (теги, категорию вопроса). Создать задачу/лид/заявку в CRM. (Опционально) Настроить вебхуки со стороны CRM для уведомления AI-агента о смене статуса клиента.
Уфа Фрилансеры

Разработка на PHP

дистанционно
договорная
Форма обратной связи настройка. Настройка. Форма обратной связи настройка.
Москва Фрилансеры

Разработка на PHP

дистанционно
договорная
Веб-разработка. Разработка с нуля, доработка существующего продукта. Требуется разработчик php для создания веб проектов (разработка и поддержание веб игры) работа удалённая оплата от дохода %.
Москва Фрилансеры

Разработка на PHP

дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Требуется программист Php, фреймворк codeigniter, MYSQL. Вести и дорабатывать существующий проект.
Москва Фрилансеры

Разработка на PHP

дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Нудно дописать Смарт процесс в битрикс24 используя php код - добавить возможность отображения новых комменатари в карточке заявки.
Москва Фрилансеры

Разработка на Laravel

дистанционно
договорная
Веб-разработка. Настройка, доработка существующего продукта. Добрый день. Необходима поддержка и сопровождение сайта на laravel. Доработка работы прайс листов. Подключение поставщиков по API. Другие мелкие задачи. Возможна ли оплата от юр. лица? Подписание договора.
Москва Фрилансеры