Задание: Веб-программист. Разработка веб-сервиса под ключ: ИИ-парсинг PDF-спецификаций + Скрапинг цен (ЭТМ) + Выгрузка в Excel (Дистанционная работа)
Необходимо разработать небольшой, легкий веб-сервис (скрипт с веб-интерфейсом) для автоматизации создания строительных/электрических смет. Логика работы линейная, стек на выбор исполнителя (предпочтительно Python / FastAPI/ Flask или Node.js / Express).
Основные этапы работы сервиса:
Фронтенд (Простейший single-page):
Чистая, аккуратная HTML-страница (можно использовать Tailwind CSS).
Поле для загрузки PDF-файла (проектная документация до 20 МБ).
Кнопка «Запустить расчет».
Текстовый индикатор прогресса (например: «Шаг 1: Анализ ИИ...», «Шаг 2: Сбор цен (обработано 5 из 40)...»).
Кнопка автоматического скачивания готового Excel-файла.
Бэкенд — Этап 1: Распознавание через ИИ:
Сервер принимает PDF, переводит в Base64 и отправляет в API Gemini (ключ предоставлю).
С помощью системного промпта Gemini извлекает спецификацию материалов и возвращает её в виде строгого JSON-массива.
Поля в массиве: Категория, Наименование, Бренд, Артикул, Ед. изм., Количество.
Бэкенд — Этап 2: Фоновый скрапинг цен:
Получив массив элементов, скрипт должен в фоне (порциями или в потоках) найти актуальные цены на сайте ЭТМ (etm.ru).
Поиск осуществляется по связке Артикул + Бренд или Наименование.
Из карточки товара нужно забрать: Актуальную цену и Прямую ссылку на товар.
Важно: Предусмотреть обход базовых блокировок (user-agent, задержки или интеграция с прокси-сервисом, если потребуется).
Бэкенд — Этап 3: Формирование стилизованного Excel:
Скрипт собирает все данные (включая найденные цены) и генерирует файл .xlsx.
Данные должны быть сгруппированы по Категориям.
Внутри каждой категории должна быть строка «ИТОГО», считающая сумму по формуле (Количество * Цена).
Ссылки на ЭТМ должны быть оформлены как кликабельные гиперссылки.
Дизайн таблицы должен быть аккуратным и корпоративным (заголовки выделены цветом, границы проставлены, шрифты выровнены).
Пример таблица приложен