Разработка на 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. К рассылке только нужно будет подключить поддержку отправки по конкретной группе пользователей. Также в другом приложении есть примеры дефолтных таблиц/форм для добавления редактирования элементов. Можно будет также взять их за основу и переделать под механику розыгрышей.
Похожие заказы
Разработка на PHP
дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Здравствуйте, коллеги! Я сам программирую уже больше 35 лет, но нуждаюсь в делегировании задач по JS/HTML/PHP/MySQL. Подзабыл тонкости, сейчас программирую для другой платформы) Нужно сделать web-"морду" на HTML/JS, из 12 кнопок и 4 вертикальных слайдеров/движков При нажатии на кнопку, отдается код кнопки в MySQL. При передвижении одного из движков-тоже. Для всех запросов из mysql используется поле Телефон и Пин-код, как логин и пароль для запросов из базы. Далее потребуется считывание из БД статусов и отрисовки положений движков/кнопок. Это для начала. Подробное ТЗ прилагаю, оно подробно умещается на одном листе A4. Есть конечно больше планов и все это надо реализовывать, хочу подписаться на постоянное сотрудничество после выполнения этого оплачиваемого тестового ТЗ, объем работ немаленький) По программированию, предпочитаю процедурное) Из последующих задач - усложнение этого web-интерфейса, добавление других web-морд с кнопками настроек, вводом значение и прочем. И еще допилка joomla/virtuemart корзины до более простой одностраничной.
Москва
Фрилансеры
2025-03-31
Разработка на PHP
дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Нужна помощь по php. Есть сайт, перестало заходить в админку, нужно найти проблему и исправить.
Москва
Фрилансеры
2025-03-31
Разработка на Laravel
дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Требуется доработка сайта на laravel.
Москва
Фрилансеры
2025-03-31
Разработка на PHP
дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Есть сайт: https://ardo.78-remont.info/ при попытке отправить заявку через форму выходит 404, ибо пытается загрузить страницу: ardo.78-remont.info/трекинг-заявок? за эту страницу отвечает файл send.php https://disk.yandex.ru/d/cksQXl-fc16vKA там есть функция выбора, какой url трекинга заявки, в зависимости от доменной зоны в данном случае должен был вызвать: ardo.78-remont.info/treking-zayavok? не в силах исправить, я захардкодил - в этом файле руками везде прописал /treking-zayavok - теперь вызывается верный адрес странность в том, что если в заявке заполнено поле района - она не доходит до CRM + код в трекинге не присваивается задача - разобраться, почему так странно работает и починить, чтобы я растиражировал на другие сайты. пожелание - разбираться при мне через anydesk, для учебных целей.
Москва
Фрилансеры
2025-03-30
Разработка на PHP
дистанционно
договорная
Веб-разработка. Доработка существующего продукта. Пожелания и особенности: Нужен Backend-разработчик. Есть ERP система для типографии. Система стоит на друпале, нужна доработка.
Москва
Фрилансеры
2025-03-30
Разработка на PHP
дистанционно
договорная
Нужна помощь по php. Доработка существующего продукта. Есть сайт, перестало заходить в админку, нужно найти проблему и исправить.
Москва
Фрилансеры
2025-03-30
Разработка на PHP
дистанционно
договорная
Онлайн игра. Доработка существующего продукта. Есть движок игры, из него нужно сделать другую игру, по мотивам сталкер.
Москва
Фрилансеры
2025-03-29