Техническое задание
Цель:
Создать и развернуть на VPS полностью автоматизированный сервис, который по списку фраз выполняет поиск на указанных ресурсах, сохраняет результаты (скриншоты/текст), формирует единый PDF-отчёт и еженедельно отправляет его через Telegram-бота.
________________________________________
Обязательные пункты
1. Развёртывание и настройка на VPS (обязательно — выполнить фрилансеру)
• Фрилансер сам настраивает среду на предоставленном клиентом VPS.
• Установка всех зависимостей и инструментов (Python/Node, браузер и драйвер в headless-режиме, wkhtmltopdf/WeasyPrint и пр.).
• Настройка сервиса как фонового процесса:
o systemd unit или Docker-контейнер + systemd/docker-compose, либо cron + supervisor — на выбор исполнителя, но с обоснованием.
o Автозапуск при перезагрузке.
• Настройка расписания (cron/timers) для еженедельной генерации и отправки отчёта.
• Создание отдельного пользователя/среды для выполнения сервиса (не запускать как root).
• Настройка ротации логов и уровня логирования.
• Обеспечение устойчивости: перезапуск при падении, оповещения в логах.
2. Функционал поиска и сбора данных
• По очереди подставлять фразы в поле поиска на указанном сайте, включать опцию «строгое совпадение», собирать результаты (скриншот и/или текст — по решению исполнителя и согласованию с заказчиком).
• Аналогичный поиск в Google и Яндекс (соблюдать правила автоматизации/политику использования; использовать headless-браузер и разумные задержки).
• Поддержка пакетной обработки списка фраз (CSV/TXT).
3. Обработка результатов и PDF
• Для каждой фразы формировать блок: сам текст фразы + результаты с трёх источников (скриншоты и/или структурированный текст).
• Собрать всё в единый красиво форматированный PDF.
• Проверить пригодность PDF для чтения и сохранения.
4. Отправка через Telegram
• Отправлять PDF раз в неделю на заданный чат/пользователя через Telegram-бота.
• Логи отправки + обработка ошибок (повторная попытка, уведомление в логах).
________________________________________
Дополнительные требования и пожелания
• Возможность легко обновлять список фраз (замена CSV/папки).
• Опция выбора способа сохранения результатов: скриншоты vs текст.
• Режим тестового прогона (для проверки первых N фраз).
• README с пошаговой инструкцией: как перезапустить сервис, как поменять cron/расписание, где логи, как заменить token бота.
• Код в репозитории (Git) с коммитами и инструкцией по деплою.
________________________________________
Технические предпочтения
• Язык: Python (предпочтительно) или Node.js.
• Инструменты: Playwright или Selenium (headless), wkhtmltopdf / WeasyPrint / ReportLab для PDF, python-telegram-bot для отправки.
• Предпочтительно — контейнеризация (Docker) + systemd/docker-compose, но не обязательно — важно автоматическое и устойчивое выполнение.
________________________________________
Критерии приёмки (что должно быть показано/проверено)
1. Демо на рабочем VPS: запущенный сервис, обработка тестового списка фраз, сформированный PDF.
2. Отправка PDF в Telegram — проверяемая вручную.
3. Документация с инструкцией и учетными данными, логами и рекомендациями.
4. Сроки на устранение багов после передачи — оговорить (рекомендуется 7 дней поддержки).
5. Код и инструкции переданы в репозиторий/архиве.
________________________________________
Результат, который должен предоставить фрилансер
• Рабочий сервис, развернутый и настроенный на VPS клиента.
• Репозиторий с кодом и инструкцией.
• Доступы/инструкции по смене паролей/токенов.
• Краткая презентация/демо (видео или скриншоты): запуск, генерация PDF, отправка в Telegram.
• Период поддержки (фиксированный): минимум 7 дней после сдачи.
Опубликован 20.11.2025 в 16:07
Заказ находится в архиве