Бюджет: 1111 UAH Срок: 1 день
Добрый день!
Детально изучил оба документа, аудит и ТЗ. Проект понятен, задачи сформулированы грамотно. Ниже моя оценка и предложение.
Обо мне: Backend/fullstack разработчик, основной стек: Laravel, MySQL, Redis, Vue 3, Docker. Опыт с каталогами +10k+ позиций, понимание технического SEO (canonical, Schema.org, sitemap, редиректы).
Оценка сроков (full-time):
| Задачи 1-2: Стабилизация (500-е, бренды, Cloudflare, Redis, поиск) | 5-7 дней |
| Задачи 3-4: SEO-инфраструктура (редиректы, canonical, sitemap, Schema.org) | 5-8 дней |
| Задачи 5-7: Медиа, бренды-лендинги, модуль экспертов | 7-10 дней |
| Задачи 8-10: Q&A, отзывы, AI-консультант, мониторинг | 4-7 дней |
Это без миграции сервера и обновления Laravel, их оцениваю отдельно после аудита кода.
Ставка: $15/час.
Как предлагаю работать:
1. Начать с аудита кодовой базы (1-2 дня), получить доступ к репо и серверу, оценить реальное состояние, уточнить сроки.
2. Поэтапно по приоритетам из ТЗ (красные, оранжевые, жёлтые, зелёные), с приёмкой после каждого блока.
3. Миграцию на Contabo сделать первой. Нет смысла оптимизировать код на нестабильном сервере.
4. Обновление Laravel после завершения основных задач, отдельным этапом. Обновление параллельно с разработкой фич на легаси это путь к проблемам.
Что предлагаю сделать иначе (улучшения к ТЗ):
- Поиск: Meilisearch вместо TNTSearch. TNTSearch хранит индекс в файлах, на 120k товаров будут проблемы с памятью и скоростью. Meilisearch это тот же Scout-драйвер, но отдельный сервис, мгновенный поиск, typo-tolerance и фасеты из коробки. Один Docker-контейнер, трудозатраты те же.
- AI-консультант: RAG вместо голого промпта. Системный промпт "не выдумывай товары" не работает, LLM будет галлюцинировать. Нужно при вопросе пользователя сначала искать по каталогу через Scout, передавать 10-15 релевантных товаров в контекст API. Доп. затраты ~1 день, но результат из игрушки превращается в рабочий инструмент.
- top_category_id: MySQL CTE вместо PHP-рекурсии. Рекурсивный PHP на 120k товаров это сотни тысяч запросов. Один WITH RECURSIVE CTE делает то же за секунды.
- Schema.org: Blade-компоненты. Вместо копипасты JSON-LD в каждый шаблон, переиспользуемые "x-schema.product", "x-schema.breadcrumb" . Проще поддерживать на 5-6 типах страниц.
- WebP: Cloudflare Polish покрывает 80% задачи. Раз Cloudflare уже подключается, Polish автоматически конвертирует в WebP при доставке. Queue job нужен только для thumbnail-ов конкретных размеров.
Готов к долгосрочному сотрудничеству.