RENZZY / Меню
Ко всем работам

Браузерная автоматизация / Демопроект

PortalPilot

Робот переносит заказы из CSV в кабинет поставщика и проверяет итог отправки после сбоя браузера.

  • Python
  • Playwright
  • FastAPI
  • PostgreSQL
  • Jinja2
  • Docker Compose
Панель PortalPilot с пакетом из 25 подтверждённых заказов.

Задача

Оператор переносит заказы из таблицы в веб-кабинет. Если ответ на отправку потерялся, заявка могла сохраниться. Повторный клик в такой ситуации рискует создать дубликат.

Решение

PortalPilot проверяет CSV, ставит заказы в очередь и заполняет формы через Playwright. После сбоя робот ищет заявку по её номеру во внешнем кабинете и сверяет шесть полей. Неоднозначные случаи или изменившиеся поля отправляются на ручной разбор.

Как это работает

Результат

В двух демопакетах подтверждены 49 заявок, одна строка оставлена для ручного разбора. Независимая сверка базы демопортала подтвердила номера и поля заявок. В контейнерной приёмке прошли 69 тестов. Для кабинета другого поставщика потребуется свой адаптер и проверка его поведения при повторной отправке.

Мой вклад

Я связал кабинет оператора, PostgreSQL и браузерный обработчик. Состояние фиксируется перед отправкой формы, а право обработчика записать итог привязано к действующему токену задачи. Это проверено на параллельных запусках, остановках и поздних ответах.

Архитектура

Кабинет, очередь и внешний портал разделены, чтобы восстановление можно было проверить независимо.

Описание компонента

Кабинет оператора

Оператор проверяет CSV и запускает пакет.

Связи компонентов
  • Кабинет оператора: Оператор проверяет CSV и запускает пакет.
  • Очередь PostgreSQL: В базе хранятся состояния заказов и право обработчика завершить задачу.
  • Браузерный адаптер: Playwright заполняет форму и сверяет сохранённую заявку по номеру.
  • Кабинет оператора → Очередь PostgreSQL
  • Очередь PostgreSQL → Браузерный адаптер
  • Браузерный адаптер → Очередь PostgreSQL

Следующий шаг

Есть задача? Давайте решим.

СвязатьсяКо всем работам